用Python静默打印PDF
我试图用Python打印PDF,而不用打开PDF查看器应用程序(Adobe,Foxit等)。 我还需要知道何时完成打印(删除文件)。
在这里我找到了这个实现 :
import win32ui, dde, os.path, time
from win32api import FindExecutable
from os import spawnl, P_NOWAIT
...
pd = "C:temptest.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
我建议你安装GSView和GSPrint和shell到gsprint.exe
来打印pdf。
p = subprocess.Popen([r"p:athtogsprint.exe", "test.pdf"],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
print stdout
print stderr
我曾在工业标签打印解决方案中使用过,效果很好。
当gsprint.exe
程序退出时(即在communicate
调用之后),您可以删除pdf文件。
上一篇: Silent printing of a PDF in Python
下一篇: How can I set up an editor to work with Git on Windows?