我已经在标准 WPF 控件中实现了一个报告,并且还实现了一个DocumentPaginator
来获取这些控件并将它们转换为用于打印的文档。
我还实现了一些代码,它使用文档分页器将页面呈现为图像并使用PDFSharp将它们写入 PDF ,但是这不允许复制和粘贴,图像质量也值得怀疑。
我已经尝试过GhostXPS实用程序,并正在考虑通过保存到 XPS 文档然后使用GhostXPS将其转换为 PDF 来使用它,这很有希望,但是当前版本包含一个错误,该错误会呈现从生成的 PDF 复制的数据无用...
所以我想我会在这里要求尝试找到一种有效的方法来执行此操作,有人可以提出一个好的方法来获取DocumentPaginator
并直接将其保存为 PDF,具有复制/粘贴功能或将其从 XPS 文档转换到具有此功能的 PDF?
谢谢,亚历克斯。
编辑 - PDFSharp 修复:好的,按照这里的要求,我为 PDFSharp 1.31 XPS 转换器编译修复:
1)我从这里下载了源代码:
2)我按照这篇文章中的说明进行操作:
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 修复的更多详细信息:在 WPF 中输出到 PDF