2012-02-01 3 views
5

Я программно сделал кучу листов Excel с xlwt в python. Все прошло хорошо, но теперь мне нужно преобразовать их все в pdf. Я пытался это сделать с помощью pywin32 и интерфейса com. Я могу получить несколько близко идти, как это:Печать листов Excel со 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() 

Но, к сожалению, когда я делаю это всплывает на экране принтера самана просят меня на пути, я хочу, чтобы сохранить PDF к, и если я должен указать, что или нажмите «ОК» для каждой страницы, это побеждает цель сделать это программно. Есть ли способ, которым я могу ввести этот путь в код python, а не вручную? Есть ли лучший способ конвертировать каждый из этих листов в каждой из этих книг в pdf? Большое спасибо, Alex

+1

К сожалению, это поведение драйвера Adobe PDF по умолчанию. –

+0

Я обнаружил, что PrintOut() чувствителен к регистру. – Norfeldt

ответ

5

Вместо использования метода PrintOut используйте ExportAsFixedFormat. Вы можете указать формат pdf и указать имя файла. Попробуйте следующее:

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

Вот и все! Большое спасибо. –

0

Вы можете сделать заказ как PDF или в PDF. Это должно обойти проблемы драйвера принтера.

+0

hmm ok, извините, как я могу это сделать? –

Смежные вопросы