【发布时间】:2012-09-19 13:34:50
【问题描述】:
我正在尝试使用 win32api 将 PDF 文档输出到特定打印机。
win32api.ShellExecute(0, "print", filename, '/d:"%s"' % printername, ".", 0)
filename 是文件的完整路径名,printname 是我通过 win32api.EnumPrinters(6) 的输出得到的目标打印机的名称。
即使printername 是不同目标的名称,文件也会发送到 Windows 默认打印机(我的期望是传递特定打印机会将命名文件发送到该打印机,而不是默认打印机)。
关于我做错了什么的任何提示?是否有不同的方法可以将 PDF 文件通用地打印到特定的打印机?除非其他一切,有没有办法从我的程序中临时更改默认打印机?
【问题讨论】:
-
我发现它取决于文件类型... *.html 将提示您选择的打印机,*.pdf 只是默认...我没有任何“解决方法”已经看到实际工作......我们在许多研究人员/农民使用的软件包中使用它......
-
@JoranBeasley - 嗯。您当时知道的任何其他方法,或者就您所知,我是 SOL?
-
SOL 我认为...它会变得更糟,这取决于您的默认 PDF 处理程序(例如 PDFComplete 根本不起作用)...另一种方法是在他们的默认 pdf 查看器中打开它并让他们从那里打印
-
如果您将其保存为 HTML 而不是 PDF,您可以获得打印机选择窗口...我们花费了大量的工程时间来得出这个结论...
-
@JoranBeasley - 这没有帮助。该程序的重点是在没有监督的情况下路由打印作业;首先必须每次都选择打印机,这违背了使用
ShellExecute的目的。
标签: python winapi pdf printing shellexecute