Winrt 8.1 PDF render
在 windows 8.1 之後內建 PDF render,可以讓我們很容易地顯示 PDF。
程式碼非常簡單,主要的核心如下
1: PdfDocument doc = await PdfDocument.LoadFromFileAsync(file);
2: PdfPage page = doc.GetPage(num);
3: InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream();
4: await page.RenderToStreamAsync(stream);
5: BitmapImage bitmap = new BitmapImage();
6: bitmap.SetSource(stream);
第一行開啟一個 PDF 檔案。
第二行讀取一頁,其參數為頁碼,從零開始。
第四行就是畫到 stream 裡。
而 RenderToStreamAsync 有一個多載
1: public IAsyncAction RenderToStreamAsync(IRandomAccessStream outputStream, PdfPageRenderOptions options)
其第二個參數傳入 PdfPageRenderOptions 物件
他有幾個常用到的設定可以使用,
像是 PdfPageRenderOptions.DestinationWidth、PdfPageRenderOptions.DestinationHeight 這兩個屬性可以決定要畫出來的 PDF 檔案的 DIP 大小,
若是要顯示縮圖就設定小一點,這會影響到 render 的速度和使用的記憶體大小
再來是 PdfPageRenderOptions.SourceRect 可以定要繪出來源檔案的哪個部分,在顯示大型 PDF 檔案的時候會使用到。