Stille utskrift av en PDF-fil i Python

stemmer
11

Jeg prøver å skrive ut en PDF med Python, uten å åpne PDF-leser program (Adobe, Foxit etc.). Jeg trenger også å vite når utskriften er ferdig (for å slette filen).

Her fant jeg denne implementeringen :

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()

Men det kaster dette unntaket på ConnectTolinje:

dde.error: ConnectTo failed

Noen vet hvordan å løse det? Eller har en annen løsning for stille utskrift? Eller i listen kan gi en link til en referanse forConnectTo ? Finner ingenting på nettet om det.

Arbeide med: Python 2.7, Windows 7, Acrobat Reader 10,0

Publisert på 21/12/2010 klokken 08:07
kilden bruker
På andre språk...                            


1 svar

stemmer
17

Jeg foreslår at du installerer GSView og GSPrint og skallet ut til gsprint.exeå skrive ut 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

Jeg har brukt dette i en industriell utskrift løsning, fungerer bra.

Når gsprint.exeprogrammet avsluttes (dvs. etter kallet til communicate), kan du slette pdf-fil.

Svarte 21/12/2010 kl. 09:52
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more