Python中PDF的无提示打印

2024-09-21 03:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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

有人知道怎么解决?或者对于无声打印有不同的解决方案?或者at list可以提供指向ConnectTo引用的链接?在网上什么也找不到。

使用:Python2.7、Windows7、Acrobat Reader 10.0


Tags: pathfromimportpdftimeosdummypd
1条回答
网友
1楼 · 发布于 2024-09-21 03:23:36

我建议您安装GSViewGSPrint并将shell输出到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文件。

相关问题 更多 >

    热门问题