我想使用Python打印PDF文件,而不需要打开PDF查看器应用程序(如Adobe,Foxit等)。我还需要知道何时打印完成(以便删除文件)。
在这里,我找到了这个实现:
在这里,我找到了这个实现:
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