ejemplos - Impresión silenciosa de un PDF en Python
django (1)
Intento imprimir un PDF con Python, sin abrir la aplicación del visor de PDF (Adobe, Foxit, etc.). También necesito saber cuándo finalizó la impresión (para eliminar el archivo).
Aquí encontré esta implementación :
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()
Pero arroja esta excepción en la línea ConnectTo
:
dde.error: ConnectTo failed
Alguien sabe cómo resolverlo? ¿O tiene una solución diferente para la impresión silenciosa? ¿O en la lista puede dar un enlace a una referencia para ConnectTo
? No pudo encontrar nada en la web al respecto.
Trabajando con: Python 2.7, Windows 7, Acrobat Reader 10.0
Sugiero que instales GSView y GSPrint y que gsprint.exe
en gsprint.exe
para imprimir el 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
Lo he usado en una solución de impresión de etiquetas industriales, funciona muy bien.
Cuando sale el programa gsprint.exe
(es decir, después de la llamada para communicate
), puede eliminar el archivo pdf.