【问题标题】:Printing Excel sheets with COM interface使用 COM 接口打印 Excel 表
【发布时间】:2012-02-23 18:35:18
【问题描述】:

我已经用 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? 非常感谢, 亚历克斯

【问题讨论】:

  • 不幸的是,这是 Adob​​e PDF 打印机驱动程序的默认行为。
  • 我发现 PrintOut() 是区分大小写的。

标签: python excel pywin32 win32com


【解决方案1】:

不要使用PrintOut 方法,而是使用ExportAsFixedFormat。您可以指定 pdf 格式并提供文件名。试试这个:

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

【讨论】:

    【解决方案2】:

    您可以保存为 PDF 或打印为 PDF。这应该可以绕过您的打印驱动程序问题。

    【讨论】:

    • 嗯好的,抱歉,我该怎么做?
    猜你喜欢
    • 2018-10-10
    • 2015-01-30
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2012-01-04
    • 2011-01-16
    • 2011-10-22
    • 2018-08-30
    相关资源
    最近更新 更多