通过COM接口打印Excel工作表
我用Python的xlwt库编程生成了一堆Excel表格,一切都很顺利。但现在我需要把这些表格都转换成PDF格式。我尝试使用pywin32和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()
但是不幸的是,当我这样做的时候,会弹出一个Adobe打印机的窗口,询问我想把PDF保存到哪个路径。如果我每一页都要手动输入路径或者点击确认,那就失去了编程自动化的意义。有没有办法让我在Python代码里直接输入这个路径,而不是手动输入?有没有更好的方法可以把这些工作簿里的每个表格转换成PDF呢?非常感谢,
Alex
2 个回答
0
你可以选择“另存为PDF”或者“打印为PDF”。这样可以绕过你打印驱动的问题。
4
与其使用 PrintOut
方法,不如用 ExportAsFixedFormat
。这样你可以指定文件格式为PDF,并且可以给文件起个名字。试试这个:
ws.ExportAsFixedFormat(0, 'c:\users\alex\foo.pdf')