Winrt 8.1 PDF render

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 檔案的時候會使用到。