使用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命名空间可以很容易地执行此操作。我花了很多时间研究这个,看到其他人试图完成同样的任务,但没有能够提供一个优雅的解决方案。
非常感谢任何见解。
感谢。
答案 0 :(得分:1)
您应该寻求的是如何询问知道如何阅读此文件的应用程序以进行打印。我的意思是,Excel可以渲染xslt,所以你应该让Excel将它打印到XPS编写器(也可以通过COM)。
如果你知道如何阅读&amp ;; System.Windows.Xps命名空间可以提供帮助呈现文档 - 然后您对XpsDocuments方法进行相应的调用,类似于此https://stackoverflow.com/a/352551/332528,将文档呈现为xps然后打印它。