c# - 将 FlowDocument 转换为 PDF 的最佳方式是什么

标签 c# .net wpf pdf flowdocument

您会如何建议我将 FlowDocument 转换为 PDF 以附加到电子邮件?

FlowDocument 是动态的,而不是静态的。

我希望能够将 PDF 作为字节 [] 存储在内存中,而不是存储在磁盘上,但这是可以协商的。

感谢您的帮助!

最佳答案

我假设您希望以编程方式而不是手动过程进行此操作。

方法 1: 安装 PDF 驱动程序,例如 AmyuniPrimoPDF .将具有所需 PrintTicket/页面大小的 FlowDocument 打印到打印驱动程序。您从中获得的 PDF 应该是一个相当不错的转换。其中一些驱动程序(例如 Amyuni)具有 SDK,您可以通过编程方式控制此过程。

方法 2:使用没有“另存为”对话框的 XPS 驱动程序以编程方式打印到 XPS;在 Windows DDK 中有一个示例,您可以很容易地自己构建。然后使用 XPS 到 PDF 转换器,例如 NiXPS或 Adob​​e SDK(太贵了,我不会发布链接)或 GhostXPS将 XPS 直接转换为 PDF。

方法三:使用This one等方法将流文档直接转换成XPS然后使用 XPS 到 PDF 转换器,例如上面提到的转换器。

免责声明:我不为任何这些公司或其竞争对手工作。我使用过 Adob​​e SDK、Amyuni 打印机和各种 XPS 技巧,并取得了相当大的成功。没有任何方法可以 100% 准确地转换。

关于c# - 将 FlowDocument 转换为 PDF 的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9182137/

相关文章:

c# - 使用@符号时如何在字符串中使用双引号?

c# - 查询主体必须以 select 子句或 group 子句结尾为什么这里会出错?

c# - 在 WPF 中的运行时调整 TextBox 的大小

c# - 以编程方式将 LayoutAnchorable 添加到 DockManager

c# - WPF - 更改数据绑定(bind) DataGrid 上的列名

wpf - WinForm 用户控件和 WPF

c# - TryGetValue - 传递未初始化的值好吗?

c# - 没有从列表中获得预期的索引

c# - 检查是否安装了 MS Access 2010

c# - C# 中的元组和解包赋值支持?