【问题标题】:Programmatically convert (save) files (i.e. docx, xlsx, txt) to XPS by sending them to the “Microsoft XPS Document Writer” printer通过将文件(即 docx、xlsx、txt)发送到“Microsoft XPS Document Writer”打印机,以编程方式将文件(即 docx、xlsx、txt)转换(保存)为 XPS
【发布时间】: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 命名空间会有一种简单的方法来做到这一点。我花了很多时间对此进行研究,并看到其他人试图完成相同的任务,但没有人能够提供一个优雅的解决方案。

任何见解将不胜感激。

谢谢。

【问题讨论】:

    标签: .net printing xps xps-generation


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 2012-10-15
      • 2016-09-08
      • 2011-07-08
      • 1970-01-01
      • 2010-12-02
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多