2012-02-01 32 views
5

Programowałem już kilka arkuszy Excela z xlwt w pythonie. Wszystko poszło dobrze, ale teraz muszę przekonwertować je wszystkie na pdf. Próbowałem to zrobić z pywin32 i interfejsem com. Mogę dostać trochę blisko przechodząc tak:Drukowanie arkuszy Excel z interfejsem 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() 

Ale niestety, kiedy to zrobić to wyskakuje ekran drukarki Adobe prosi mnie o podanie ścieżki chcę zapisać PDF do, i jeśli mam wpisać, że w lub kliknij przycisk OK dla każdej strony, którą pokonuje w celu robienia tego programowo. Czy istnieje sposób, w jaki mogę wprowadzić tę ścieżkę w kodzie Pythona, a nie ręcznie? Czy istnieje lepszy sposób konwersji każdego z tych arkuszy w każdym ze skoroszytów do formatu pdf? Wielkie dzięki, Alex

+1

Niestety jest to domyślne zachowanie sterownika drukarki Adobe PDF. –

+0

Stwierdziłem, że w PrintOut() rozróżniana jest wielkość liter. – Norfeldt

Odpowiedz

5

Zamiast używać metody PrintOut, należy użyć ExportAsFixedFormat. Możesz określić format PDF i podać nazwę pliku. Wypróbuj to:

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

To się udało! Wielkie dzięki. –

0

Możesz zapisać jako PDF lub wydrukować do PDF. To powinno ominąć problemy ze sterownikami drukarki.

+0

hmm ok, przepraszam, jak to zrobić? –

Powiązane problemy