Windowsapp store应用 – 显示PDF

我正在创建一个Windows应用程序(以前称为Metro应用程序),它能够读入并显示几种不同的文件类型(jpg,wmv,pdf等)。 使用适当的XAML控件显示每种文件类型(例如,jpg使用Image,wmv使用MediaElement)。 我遇到的一个问题是显示PDF。 我似乎必须将其转换为要显示的图像。 我使用Magick.NET进行了调查,但它的目标是.NETFramework而不是.NETCore。 我找到的其他框架需要许可证。 有没有在我的应用程序中显示PDF的解决方案?

在Build Store中查看有关在Windowsapp store应用中呈现PDF内容的video 。 如果有办法做到这一点,就是这样。

在观看Nate Diamond提供的video的前10分钟后,渲染PDF是一项简单的任务。 这是Windows 8.1的解决方案,因为PdfDocument和PdfPage类是该版本的新增function。 下面将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;