gpt4 book ai didi

Python 的 win32api 只打印到默认打印机

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:38 25 4
gpt4 key购买 nike

我正在尝试使用 win32api 将 PDF 文档输出到特定打印机。

win32api.ShellExecute(0, "print", filename, '/d:"%s"' % printername, ".", 0)

filename 是文件的完整路径名,printname 是我通过 win32api.EnumPrinters( 6)

即使 printername 是不同目标的名称,文件也会被发送到 Windows 默认打印机(我的期望是传递特定打印机会将指定的文件发送到该打印机,而不是默认)。

关于我做错了什么的任何提示?是否有不同的方式将 PDF 文件打印到特定打印机?排除所有其他因素,有没有办法从我的程序中临时更改默认打印机?

最佳答案

MikeHunter 的回答是一个不错的起点。

建议的解决方案是调用 Acrobat 或 Acrobat Reader 进行实际打印,而不是通过 win32api。就我而言,这就足够了:

from subprocess import call

acrobat = "C:\Program Files\Adobe\Acrobat 7.0\Acrobat.exe" ## Acrobat reader would also work, apparently
file = "C:\path\to\my\file.pdf"
printer = "Printer Name Goes Here"

call([acrobat, "/T", file, printer])

这将启动 Acrobat,并将给定的文件打印到指定的打印机,即使它不是 Windows 的默认打印机。以这种方式处理的第一个打印作业需要几秒钟(我假设这是正在启动并缓存在内存中的 Acrobat 服务),后续作业会立即打印。我没有对此进行任何类型的负载测试,但我认为调用不是微不足道的,所以不要相信它会产生巨大的吞吐量。

关于Python 的 win32api 只打印到默认打印机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12626918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com