1

我正在尝试通过 python 打开 powerpoint,然后将幻灯片演示文稿保存为 pdf 讲义(三到一页)。经过一番谷歌搜索,我偶然发现了这个。一个非常相似的问题。但是,我似乎无法让它运行。我想我可能错误地将VB“翻译”成Python。

在这里查看MSDN 文档,我尝试填写两个必需的参数作为起点。虽然它似乎接受path,但它会引发FixedFormatType.

我的代码如下。

import win32com.client, sys, os

app = win32com.client.Dispatch("PowerPoint.Application")
app.Visible = True

names = []
for i in os.listdir(os.getcwd()):
    if i[-1] == 't':
        tmp = os.getcwd() + '\\' + i
        names.append(tmp)
        tmp = ''



presentation = app.Presentations.Open(names[0])
presentation.ExportAsFixedFormat(os.getcwd() + '\\test.pdf', 'PpFixedFormatType')

我已经尝试了许多不同的ppFixdFormatType论点。ppFixedFormatTypePDF, win32com.ppFixedFormatTypePDF, win32com.client.constants.ppFixedFormatTypePDF, 等等..但都会引发一种或另一种类型的错误。大多数与此类似:ValueError: invalid literal for int() with base 10: 'PpFixedFormatType'

4

2 回答 2

1

您可能在 PowerPoint 的 API 中遇到过这个错误:使用 PowerPoint 2007 的导出功能时类型不匹配。解决方案是将 PrintRange 参数指定给 ExportAsFixedFormat() 调用。

于 2013-06-06T17:10:39.890 回答
0

我知道问题是关于通过 VBA 操作 PowerPoint,但是您也可以使用免费和开源的pdftools将 PDF 幻灯片保存为讲义(就像 PowerPoint 一样) 。

保存 3x3 讲义的命令是:

pdftools --input-file slides.pdf --output slides_W.pdf --white-page --fitpaper --overwrite
pdftools --input-file slides_W.pdf --nup 3 3 --height 0.32 --delta 0mm 0mm --landscape --out-suffix _HANDOUT --frame --overwrite --paginate --paper a4paper -t $filename 0.4 0.01

--nup您可以通过操作传递给选项的参数来获得不同的讲义布局

于 2020-05-20T20:51:00.347 回答