当前位置: 首页 > 面试题库 >

Python静默打印PDF到特定打印机

伯英锐
2023-03-14
问题内容

我有一个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文件或任何其他解决方案吗?

注意: 当我使用另一个默认程序打开PDF文件(例如Chrome或Windows Reader)时,在执行上述命令'(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命令时总是会出现异常。


问题答案:

终于,经过数小时的搜索正确的文件,我找到了解决我问题的方法。

您可以在此处下载GSPRINT

您可以在此处下载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

我希望这有帮助。



 类似资料:
  • 问题内容: 我正在尝试使用Python打印PDF,而不打开PDF查看器应用程序(Adobe,Foxit等)。我还需要知道打印何时完成(删除文件)。 在这里,我找到了这个 实现 : 但这会抛出以下异常: 有人知道如何解决吗?还是对于静音打印有 其他解决方案 ?或at list可以提供指向 参考的链接?在网络上找不到任何有关它的信息。 使用:Python 2.7,Windows 7,Acrobat R

  • 问题内容: 我们正在研究从Java内部以静默方式打印PDF文档。打印将从桌面而不是通过浏览器调用,因此我们不能使用JavaScript。PDF Renderer是可操作的解决方案,但其渲染质量不可接受。iText似乎不可与Java打印服务插入。有一些商业Java库,Qoppa的jPDFPrint,JPedal和ICEpdf,我们还没有尝试过。 是否有人对使用Java进行PDF静默打印有任何经验?

  • 问题内容: Java中有什么方法可以打印到特定的IPP打印机?我发现所有示例代码和教程都集中在如何使用以下类似内容打印特定类型的文档上: 此代码段仅打印到找到的第一台能够打印文档的打印机。就我而言,我想通过其URI查找打印机,但似乎不支持此功能。我尝试使用,而不是,并添加了一个属性,但这不会返回任何打印机。我怀疑查找服务正在寻找可以更改其目标URI的打印机,而不是寻找具有该URI的打印机。 作为最

  • 我目前的工作是创建机械图纸,用于发送给客户和作为施工图。当我的绘图完成后,我导出一个. pdf文件,并将其发送给客户端。 我们的客户非常喜欢黑白画,所以我试着提供他们。但是我用来画画的软件效果不好。它只有一个选项“所有颜色都是黑色”,我的画上有一些白色的“隐藏线”。当然,这些显示使用所有颜色作为黑色选项。 我找到了一个解决方案,那就是使用pdf打印机。效果很好,效果也很好。 现在我想打印这个。pd

  • 问题内容: 我想使用PDFBox打印 由iText创建的 PDF文件 。我已经使用PDDocument类及其方法print()成功尝试了此操作。您可以在此处找到文档: http //pdfbox.apache.org/apidocs/。 (我正在使用此代码:) 方法print()很好用,但是 有一个问题:当我需要打印多个文件时,该方法要求我为每个文档选择打印机。 有什么办法只能设置一次打印机吗?

  • 我有一个连接到CUPS的打印机,它支持双面打印,如何通过java例程将其设置为单面打印或双面打印? 我曾尝试使用它的库使用ASET添加和addViewer首选项没有任何运气。 有人能提供一些建议吗?