我正在尝试使用模块 win32print
从 Python 打印一个 pdf 文件,但我可以打印成功的唯一方法是文本。
hPrinter = win32print.OpenPrinter("\\\\Server\Printer")
filename = "test.pdf"
try:
hJob = win32print.StartDocPrinter(hPrinter, 1, ('PrintJobName', None, 'RAW'))
try:
win32api.ShellExecute(0, "print", filename, None, ".", 0)
win32print.StartPagePrinter(hPrinter)
win32print.WritePrinter(hPrinter, "test") # Instead of raw text is there a way to print PDF File ?
win32print.EndPagePrinter(hPrinter)
finally:
win32print.EndDocPrinter(hPrinter)
finally:
win32print.ClosePrinter(hPrinter)
所以我不需要打印文本,而是打印“test.pdf”文件。
我也尝试过 win32api.ShellExecute(0, "print", filename, None, ".", 0)
但它不起作用,经过一些测试后(getprinter、getdefault、setprinter、setdefaultprinter)它似乎没有连接打印机。所以这样我就无法工作了。
这是我使用的代码!
win32print.SetDefaultPrinter(hPrinter)
win32api.ShellExecute(0, "print", filename, None, ".", 0)
原文由 ndAR 发布,翻译遵循 CC BY-SA 4.0 许可协议
笔记:
虽然不是直接回答问题,但我无法抗拒使用
tkinter
制作 GUI 的机会。它可以很容易地更改为选择一个目录 - 以及其中的所有文件 - 而不是单个文件。要旨
资料来源:
PS:我可能没有赢得赏金,但我确实很喜欢制作 GUI。
tkinter
布局是最难的部分!