Python静默打印PDF到特定打印机 [英] Python silent print PDF to specific printer

查看:698
本文介绍了Python静默打印PDF到特定打印机的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆