我正在创建一个Windows商店应用程序(以前称为Metro应用程序),该应用程序可以读取并显示几种不同的文件类型(jpg,wmv,pdf等)。每种文件类型都使用适当的XAML控件显示(例如jpg使用Image,wmv使用MediaElement)。我遇到的一个问题是显示PDF。看来我将不得不将其转换为图像进行显示。我已经研究过使用Magick.NET,但它的目标是.NETFramework而不是.NETCore。我寻求的其他框架都需要许可证。有没有在我的应用程序中显示PDF的解决方案?
观看Nate Diamond提供的视频的前10分钟后,渲染PDF是一项简单的任务。这是Windows 8.1的解决方案,因为PdfDocument和PdfPage类是该版本的新增功能。下面在图像中渲染了一个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;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句