2012-02-01 12 views
5

Ho programmato in modo programmatico una serie di fogli Excel con xlwt in python. È andato tutto bene, ma ora ho bisogno di convertirli tutti in pdf. Ho cercato di farlo con pywin32 e l'interfaccia com. Posso ottenere un po 'vicino andando in questo modo:Stampa di fogli di Excel con interfaccia COM

import win32com.client 
o = win32com.client.Dispatch("Excel.Application") 
o.Visible = 1 
wb = o.Workbooks.Open('foo.xls') 
ws = wb.Worksheets[1] 
ws.printout() 

Ma purtroppo quando faccio questo che si apre la schermata di stampa Adobe mi chiede per il percorso che voglio salvare il pdf a, e se devo entrare in quella in o fai clic su OK per ogni pagina che sconfigge lo scopo di farlo in modo programmatico. C'è un modo per inserire questo percorso nel codice Python piuttosto che manualmente? C'è un modo migliore per convertire ciascuno di questi fogli in ciascuna di queste cartelle di lavoro in pdf? Grazie mille, Alex

+1

Sfortunatamente questo è il comportamento predefinito del driver di stampa Adobe PDF. –

+0

Ho trovato che PrintOut() è sensibile al maiuscolo/minuscolo. – Norfeldt

risposta

5

Invece di utilizzare il metodo PrintOut, utilizzare ExportAsFixedFormat. È possibile specificare il formato pdf e fornire un nome di file. Prova questo:

ws.ExportAsFixedFormat(0, 'c:\users\alex\foo.pdf') 
+0

Questo l'ha fatto! Molte grazie. –

0

È possibile eseguire un salvataggio come PDF o stampare in PDF. Ciò dovrebbe aggirare i problemi del driver di stampa.

+0

hmm ok, scusa come faccio? –