通过将文件(即 docx、xlsx、txt)发送到“Microsoft XPS Document Writer”打印机,以编程方式将文件(即 docx、xlsx、txt)转换(保存)为 XPS

Posted

技术标签:

【中文标题】通过将文件(即 docx、xlsx、txt)发送到“Microsoft XPS Document Writer”打印机,以编程方式将文件(即 docx、xlsx、txt)转换(保存)为 XPS【英文标题】:Programmatically convert (save) files (i.e. docx, xlsx, txt) to XPS by sending them to the “Microsoft XPS Document Writer” printer 【发布时间】:2011-11-27 21:13:01 【问题描述】:

使用 C# 3.5,我尝试通过将 XPS 文件发送到“Microsoft XPS Document Writer”打印机以编程方式创建它们。我可以设置打印队列,但我无法使用 PrintQueue.AddJob() 将作业添加到打印队列,因为它需要一个 XPS 文件。我也尝试将 PrintSystemInfo JobStream 设置为字节数组,但无济于事。

基本上我想模仿用户在打印到“Microsoft XPS Document Writer”时的手动操作: 1. 从打印机列表中选择“Microsoft XPS Document Writer”。 2. 指定新的 XPS 文件名。 3. 打印(将其保存为 .xps 文件)

我认为使用 System.Printing 和 System.Windows.Xps 命名空间会有一种简单的方法来做到这一点。我花了很多时间对此进行研究,并看到其他人试图完成相同的任务,但没有人能够提供一个优雅的解决方案。

任何见解将不胜感激。

谢谢。

【问题讨论】:

【参考方案1】:

您应该寻找的是如何让知道如何读取这些文件的应用程序打印它们。我的意思是,Excel 可以渲染 xslt,所以您应该让 Excel 将其打印到 XPS 编写器(可能通过 COM)。

System.Windows.Xps 命名空间如果知道如何读取和呈现文档会有所帮助 - 然后您对类似于 https://***.com/a/352551/332528 的 XpsDocuments 方法进行相应调用,将您的文档呈现到 xps 和然后打印出来。

【讨论】:

以上是关于通过将文件(即 docx、xlsx、txt)发送到“Microsoft XPS Document Writer”打印机,以编程方式将文件(即 docx、xlsx、txt)转换(保存)为 XPS的主要内容,如果未能解决你的问题,请参考以下文章

怎样在Android中解析doc,docx,xls,xlsx格式文

docx, xlsxwriter 库,用 python 来操作 docx, xlsx 格式文件

用java如何将xlsx docx 格式转换为 html?

docx怎么转换成word文档

安卓手机如何打开.xlsx;文件

如何使用 Python 发送 .docx 附件