【问题标题】:Silent printing of a PDF in Python在 Python 中静默打印 PDF
【发布时间】:2011-05-28 17:45:13
【问题描述】:

我正在尝试使用 Python 打印 PDF,而不打开 PDF 查看器应用程序(Adobe、Foxit 等)。我还需要知道打印何时完成(删除文件)。

Here我找到了这个实现

import win32ui, dde, os.path, time
from win32api import FindExecutable
from os import spawnl, P_NOWAIT
...
pd = "C:\\temp\\test.pdf"
pdbits = os.path.split(pd)
readerexe = FindExecutable(pdbits[1],pdbits[0])

spawnl(P_NOWAIT,readerexe[1],"DUMMY") #I added "DUMMY" to avoid a weird error

time.sleep(2)

s = dde.CreateServer()
s.Create('')
c = dde.CreateConversation(s)
c.ConnectTo('acroview', 'control')

c.Exec('[FilePrintSilent("%s")]' % (pd,))

s.Destroy()

但它会在ConnectTo 行引发此异常:

dde.error: ConnectTo failed

有人知道怎么解决吗?或者有一个不同的解决方案来进行无声打印?或者在列表中可以提供一个链接到ConnectTo参考?在网上找不到任何关于它的信息。

使用:Python 2.7、Windows 7、Acrobat Reader 10.0

【问题讨论】:

    标签: python windows pdf printing silent


    【解决方案1】:

    我建议您安装GSViewGSPrint 并转至gsprint.exe 以打印pdf。

    p = subprocess.Popen([r"p:\ath\to\gsprint.exe", "test.pdf"], 
                         stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = p.communicate()
    print stdout
    print stderr
    

    我在工业标签打印解决方案中使用过它,效果很好。

    gsprint.exe程序退出时(即调用communicate之后),您可以删除pdf文件。

    【讨论】:

    • 太棒了!我解决了这个困扰我几天的问题。我补充说,它需要安装 GhostScript(“后端”,可从 pages.cs.wisc.edu/~ghost 下载)和 GSView(“前端”,包括 GSView 和 GSPrint,可从 codeape 的第一个链接下载)
    • 是的 - Ghostscript 工具链是这里的必经之路。值得注意的是,现在几乎所有用于 Linux 和其他 Unix 的打印解决方案都以一种或另一种方式使用 GS 程序。
    • 谢谢。我用 esc 序列将我的 txt 文件打印到 pcl 制造的打印机中,将其转换为 pdf 并使用 ghostscript 静默打印到非 PCL 打印机:)
    • 我应该在商业软件中使用 gsprint 吗?
    • 静默打印microsoft的DOC/DOCX的解决方法是什么?
    猜你喜欢
    • 2015-01-27
    • 2010-11-27
    • 1970-01-01
    • 2015-06-07
    • 2010-11-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多