2014-02-05 185 views
3

我正在創建能夠讀入並顯示多種不同文件類型(jpg,wmv,pdf等)的Windows應用商店應用程序(以前稱爲Metro應用程序)。每種文件類型都使用適當的XAML控件顯示(例如,jpg使用Image,wmv使用MediaElement)。我遇到的一個問題是顯示PDF。看來我將不得不將其轉換爲圖像來顯示。我調查了使用Magick.NET,但目標.NETFramework而不是.NETCore。我找到的其他框架需要許可證。有沒有解決方案在我的應用程序中顯示PDF?Windows商店應用程序 - 顯示PDF

回答

3

在觀看由Nate Diamond提供的視頻的前10分鐘後,渲染PDF是一項簡單的任務。這是Windows 8.1的解決方案,因爲PdfDocumentPdfPage類是該版本的新增功能。以下將StorageFile(這是一個.pdf文件)呈現爲圖像並將它們放入垂直滾動堆棧面板(imagePanel)中。

private async void renderPdf(StorageFile file) 
    { 
     imagePanel.Children.Clear(); 

     PdfDocument pdf = await PdfDocument.LoadFromFileAsync(file); 

     for (uint pageNum = 0; pageNum < pdf.PageCount; pageNum++) 
     { 
      PdfPage page = pdf.GetPage(pageNum); 

      InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream(); 
      await page.RenderToStreamAsync(stream); 

      BitmapImage source = new BitmapImage(); 
      source.SetSource(stream); 

      Image pdfPage = new Image(); 

      pdfPage.HorizontalAlignment = HorizontalAlignment.Center; 
      pdfPage.VerticalAlignment = VerticalAlignment.Center; 
      pdfPage.Height = page.Size.Height; 
      pdfPage.Width = page.Size.Width; 
      pdfPage.Margin = new Thickness(0, 0, 0, 5); 
      pdfPage.Source = source; 

      imagePanel.Children.Add(pdfPage); 

     } 
    } 

如果等待是不可取的,異步方法也可以作爲任務運行。

PdfDocument pdf = PdfDocument.LoadFromFileAsync(file).AsTask().Result; 
+0

因此,它基本上只是創建一個PDF內容的圖像,然後顯示它。不知道是否有任何方式沒有涉及圖像。 –

3

Checkout this video來自Build 2013,用於在Windows應用商店應用中呈現PDF內容。如果有辦法做到這一點,就是這樣。

相關問題