C# WPF PDF查看器
最近有个需求是查看pdf的报告,网上找了不少大多是转换为图片再显示出来,但是这样会降低清晰度,现在这个还是有一些问题,分享出来供大家参考
实现的思路是将PDF转换为XPS,再通过WPF中的DocumentViewer控件查看
引用的包是Free Spire.PDF,但是免费版有限制,只能操作不超过10页的PDF文件
还有一个限制就是,只能将PDF的前3页转换为XPS,但是对我倒没什么影响,我的需求只需要查看2页PDF就够了(笑)
核心代码:
<DocumentViewer Background="red" Width="800" Height="1123" Grid.Column="0" x:Name="documentViewer" VerticalAlignment="Top"/>
doc = new Spire.Pdf.PdfDocument();
doc.LoadFromFile(localPath);
stream = doc.SaveToStream(FileFormat.XPS)[0];
Package package = Package.Open(stream, FileMode.Open, FileAccess.ReadWrite);
Uri documentUri = new Uri($"pack://{report.Guid}.xps");
PackageStore.AddPackage(documentUri, package);
xps = new XpsDocument(package, CompressionOption.Normal, documentUri.AbsoluteUri);
packageUri=$"pack://{report.Guid}.xps";
documentViewer.Document = xps.GetFixedDocumentSequence();
PDF查看器效果图:
最后,源代码在这里
链接:https://pan.baidu.com/s/1MczSr8FLpomx8kEyWnRuJw
提取码:ucby
复制这段内容后打开百度网盘手机App,操作更方便哦