Python静默打印PDF到特定打印机 [英] Python silent print PDF to specific printer
问题描述
我有一个PDF文档,我想用我的python应用程序打印它.
我已经在此处(使用python的win32print模块打印PDF文档)中尝试了该解决方案?),但是当我安装实际版本的Ghostscript 9.15时,它没有gsprint.exe
我使用该方法的方式是使用命令os.startfile('PDFfile.pdf', "print")
,但是它会打开默认查看器(我的是Adobe Reader),并且在打印后它仍然保持打开状态,尝试使用os.system("TASKKILL /F /IM AcroRD32.exe")
杀死该进程会杀死其他打开的窗口,我不想要.
使用下一个命令,它也会打印,但是它也允许Adobe Reader打开
currentprinter = win32print.GetDefaultPrinter()
win32api.ShellExecute(0, "print", 'PDFfile.pdf', '/d:"%s"' % currentprinter, ".", 0)
我也看到了这个答案,但他们建议使用gsprint.exe
再次
有人拥有gsprint.exe
文件或任何其他解决方案吗?.
注意::当我使用其他默认程序打开诸如Chrome或Windows Reader之类的PDF文件时,在'(31, 'ShellExecute', 'A device attached to the system is not functioning.')'
或[Error 1155] No application is associated with the specified file for this operation: 'PDFfile.pdf'
上方的命令中执行startfile
命令
最后,经过几个小时的搜索,找到正确的文件.
您可以在 HERE
中下载GSPRINT您可以在 HERE
中下载Ghostscript GPL.在PC(Windows)中使用此提取的文件后,您可以使用此命令打印PDF
GHOSTSCRIPT_PATH = "C:\\path\\to\\GHOSTSCRIPT\\bin\\gswin32.exe"
GSPRINT_PATH = "C:\\path\\to\\GSPRINT\\gsprint.exe"
# YOU CAN PUT HERE THE NAME OF YOUR SPECIFIC PRINTER INSTEAD OF DEFAULT
currentprinter = win32print.GetDefaultPrinter()
win32api.ShellExecute(0, 'open', GSPRINT_PATH, '-ghostscript "'+GHOSTSCRIPT_PATH+'" -printer "'+currentprinter+'" "PDFFile.pdf"', '.', 0)
还可以在官方页面此处
中找到GhostScript.我找到了64位的gsprint.exe 此处 >
我希望这会有所帮助.
I have a PDF document and I want to print it with my python app.
I have tried the solution in here (Print PDF document with python's win32print module?) but when I install Ghostscript 9.15 that is the actual version, it has no gsprint.exe
The way I am using that works is with the command os.startfile('PDFfile.pdf', "print")
but it opens default viewer (mine is Adobe Reader) and after printing it stills open, trying to kill the process with os.system("TASKKILL /F /IM AcroRD32.exe")
kills other opened windows and I dont want it.
With the next command, it also prints, but it let the Adobe Reader opened too
currentprinter = win32print.GetDefaultPrinter()
win32api.ShellExecute(0, "print", 'PDFfile.pdf', '/d:"%s"' % currentprinter, ".", 0)
I have seen this answer too but they recommend using gsprint.exe
again
Anybody has the gsprint.exe
file or any other solution?.
NOTE: When I used another default program to open PDF files like Chrome or Windows Reader, I always get an Exception in the execution of the commands above '(31, 'ShellExecute', 'A device attached to the system is not functioning.')'
or [Error 1155] No application is associated with the specified file for this operation: 'PDFfile.pdf'
with the startfile
command
Finally after hours and hours of searching for the right files, i have found the answer to my problem.
You can download the GSPRINT in HERE
You can download the Ghostscript GPL in HERE
With this extracted files in your PC (Windows) you can print your PDF with this command
GHOSTSCRIPT_PATH = "C:\\path\\to\\GHOSTSCRIPT\\bin\\gswin32.exe"
GSPRINT_PATH = "C:\\path\\to\\GSPRINT\\gsprint.exe"
# YOU CAN PUT HERE THE NAME OF YOUR SPECIFIC PRINTER INSTEAD OF DEFAULT
currentprinter = win32print.GetDefaultPrinter()
win32api.ShellExecute(0, 'open', GSPRINT_PATH, '-ghostscript "'+GHOSTSCRIPT_PATH+'" -printer "'+currentprinter+'" "PDFFile.pdf"', '.', 0)
The GhostScript can also be found in the Official page HERE
I found the gsprint.exe for 64bits HERE
I hope this helps.
这篇关于Python静默打印PDF到特定打印机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!