2014-11-28 9 views
6

Ho un documento PDF e voglio stamparlo con la mia app Python.Python stampa silenziosa PDF su stampante specifica

Ho provato la soluzione in here (Print PDF document with python's win32print module?) ma quando installo Ghostscript 9.15 che è la versione attuale, non ha gsprint.exe

Il modo in cui sto usando che funziona è con il comando os.startfile('PDFfile.pdf', "print") ma apre visualizzatore di default (la mia è Adobe Reader) e dopo averlo stampato rimane aperto, cercando di uccidere il processo con os.system("TASKKILL /F /IM AcroRD32.exe") uccide altre finestre aperte e io non lo voglio.

Con il comando successivo, ma ha anche le stampe, ma lasciare che l'Adobe Reader apre troppo

currentprinter = win32print.GetDefaultPrinter() 
win32api.ShellExecute(0, "print", 'PDFfile.pdf', '/d:"%s"' % currentprinter, ".", 0) 

ho visto this answer troppo ma consiglia di utilizzare gsprint.exe nuovo

Chiunque ha il file gsprint.exe o qualsiasi altra soluzione?

NOTA: Quando ho usato un altro programma predefinito per aprire i file PDF come Chrome o Windows Reader, ho sempre arrivare un'eccezione nell'esecuzione dei comandi sopra '(31, 'ShellExecute', 'A device attached to the system is not functioning.')' o [Error 1155] No application is associated with the specified file for this operation: 'PDFfile.pdf' con il comando startfile

risposta

6

Finalmente dopo ore e ore di ricerca dei file giusti, ho trovato la risposta al mio problema.

È possibile scaricare il gsprint in HERE

È possibile scaricare il Ghostscript GPL in HERE

Con questo estratto i file nel vostro PC (Windows) è possibile stampare il file PDF con questo comando

GHOSTSCRIPT_PATH = "C:\\path\\to\\GHOSTSCRIPT\\bin\\gswin32.exe" 
GSPRINT_PATH = "C:\\path\\to\\GSPRINT\\gsprint.exe" 

# YOU CAN PUT HERE THE NAME OF YOUR SPECIFIC PRINTER INSTEAD OF DEFAULT 
currentprinter = win32print.GetDefaultPrinter() 

win32api.ShellExecute(0, 'open', GSPRINT_PATH, '-ghostscript "'+GHOSTSCRIPT_PATH+'" -printer "'+currentprinter+'" "PDFFile.pdf"', '.', 0) 

GhostScript si trova anche nella pagina ufficiale HERE

Ho trovato gsprint.exe per 64bits HERE

Spero che questo aiuti.

+1

gsprint.exe per collegamento a 64 bit è morto (Ott 2017) ma questo funziona per 32 bit: http://pages.cs.wisc.edu/~ghost/gsview/gsprint.htm –