2012-02-01 17 views
5

He programado un montón de hojas de Excel con xlwt en python. Todo salió bien, pero ahora necesito convertirlos a todos en pdf. He intentado hacer esto con pywin32 y la interfaz com. Puedo conseguir algo cerca yendo de esta manera:Impresión de hojas de Excel con interfaz 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() 

Pero por desgracia, cuando hago esto me aparece la pantalla de la impresora Adobe pedirme el camino que desea guardar el PDF, y si tengo que entrar en ese en o haga clic en Aceptar para cada página, se frustra el objetivo de hacerlo programáticamente. ¿Hay alguna manera de que pueda ingresar a esta ruta en el código python en lugar de hacerlo manualmente? ¿Hay una forma mejor de convertir cada una de estas hojas en cada uno de estos libros de trabajo a PDF? Muchas gracias, Alex

+1

Desafortunadamente ese es el comportamiento predeterminado del controlador de impresora Adobe PDF. –

+0

Encontré que PrintOut() distingue entre mayúsculas y minúsculas. – Norfeldt

Respuesta

5

En lugar de usar el método PrintOut, use ExportAsFixedFormat. Puede especificar el formato de PDF y proporcionar un nombre de archivo. Pruebe esto:

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

¡Eso lo hizo! Muchas gracias. –

0

Puede hacer un guardar como PDF o imprimir en PDF. Eso debería evitar los problemas del controlador de impresión.

+0

mmm, ¿cómo lo hago? –

Cuestiones relacionadas