我正在尝试使用一些在 Delphi 2007 中使用 shellExecute 启动的 Pdf 阅读器来打印多个 PDF 文件。
这种方法的可靠性可能不是很好,因为实际打印可能会由于多种原因而失败。我想知道是否有办法让我的程序知道文件是否或何时实际发送到打印后台处理程序?
最佳答案
要监视打印机作业,您可以使用 FindFirstPrinterChangeNotification
在 fdwFilter
参数中传递 PRINTER_CHANGE_WRITE_JOB
的 API 调用。每次通过 FindNextPrinterChangeNotification
将作业数据写入打印机时,这都会让您知道。
完成后,别忘了调用 FindClosePrinterChangeNotification
关闭所有 handle 并清理。
使用可能会变得相当复杂。 Peter Below 博士 TeamB不久前,在旧的 Borland Code Central 页面(现在可以在 Embarcadero 站点上找到)的一个名为 PBPrintersMonitorU.pas
的单元中发布了一个对此进行包装的单元。可以找到here ,如果您有 EDN (Embarcadero 开发者网络)帐户。
关于delphi - 来自 Windows 的文件打印反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14046060/