我已经在标准 WPF 控件中实现了一个报告,并且还实现了一个 DocumentPaginator
获取这些控件并将它们转换为用于打印的文档。
我还实现了一些使用文档分页器将页面呈现为图像并使用 PDFSharp 将它们写出到 PDF 的代码。 ,但是这不允许复制和粘贴,图像质量也有问题。
我已经尝试过 GhostXPS实用程序,并考虑通过保存到 XPS 文档然后使用 GhostXPS 来使用它。将其转换为 PDF,这是有希望的,但是当前版本包含一个错误,该错误会使从生成的 PDF 复制的数据无用......
所以我想我会在这里要求尝试找到一种有效的方法来做到这一点,有人可以提出一个很好的方法来采取 DocumentPaginator
并使用复制/粘贴功能将其直接保存为 PDF 或使用此功能将其从 XPS 文档转换为 PDF?
谢谢,
亚历克斯。
编辑 - PDFSharp 修复:
好的,这里是我为 PDFSharp 1.31 XPS 转换器编译修复程序所做的工作:
1)我从这里下载了源代码:
PDFSharp - SourceForge
2)我按照这篇文章中的说明进行操作:
PSFSharp Fix
XpsParser.ImageBrush.cs (ln 22, added): brush.Opacity = 1;
PdfContentWriter.cs (ln 526, changed): if (opacity <= 1)
3)然后只需编译源代码,首先打开'PdfSharp-WPF.csproj'并构建它,然后打开'PdfSharp.Xps.csproj'并构建它,相关库是'PdfSharp-WPF.dll'和'PdfSharp.Xps.dll'
请注意,在尝试构建源代码时,您可能会收到一些错误,具体取决于您所针对的 .NET 版本,如果您只是阅读错误消息,这些错误很容易修复。
编辑(2):NJones 创建了一篇博客文章,其中包含有关 PdfSharp 修复的更多详细信息:Output to PDF in WPF
最佳答案
PDFsharp 1.31 中包含一个 XPS 转换器。这是一个测试版,但 AFAIK 几乎支持所有内容,并且可以满足您的需求。
PDFsharp 1.31 可以从 SourceForge 或 CodePlex 下载。
关于WPF 转 XPS 转 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13848223/