WPF 转 XPS 转 PDF

标签 wpf pdf .net-4.0 xps pdfsharp

我已经在标准 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/

相关文章:

c# - WPF:ContentPresenter 上的 TextTrimming

WPF:是否有一种 XAML 标记的行为类似于 HTML 跨度元素?

language-agnostic - 有什么解决方案可以在没有详细内容比较的情况下知道两个 pdf 的相似性

pdf - 如何将文本对象添加到现有的pdf

vba - 无论如何以编程方式优化pdf?

.net-4.0 - 为什么 .NET 4 中的变体只支持引用类型?

WPF 以编程方式实例化用户控件以将其呈现为 PNG

c# - WPF MVVM : how to Update UI controllers based on Event

C# 异步逻辑到同步调用

c# - WPF数据绑定(bind)问题