如何在打印队列中获取文档

How to get document in print queue

在 C# 中是否有任何方法可以将文档从另一个程序发送到打印机并再次将这些文档用于其他用途?

我想构建一个应用程序,它可以通过某个销售点系统将发票发送到打印机,并提供将该发票发送到客户电子邮件的机会。

好吧,您可以 打印到 XPS 打印机并让它创建一个文件。然后,让系统使用标准应用程序打印 XPS 文件。这可能有效,也可能无效,具体取决于某些因素:

  1. 系统是否支持 XPS?
  2. 用户是否更改了处理 XPS 文件的默认应用程序?可能打印不了了...
  3. XPS 是您要发送给用户的文件格式吗?
  4. 等等

也就是说,您当然可以对 PDF 执行相同的操作,但您必须能够访问能够实际打印 PDF 的应用程序。这里已经多次询问如何 "send PDF bytes" 到打印机 - 你不能。有个解决方案,但最后你必须自己回答这个问题:

真的值得这么麻烦吗?还是打印文档然后将其重新创建为 PDF(例如)发送给用户不是更容易吗?