Я пытаюсь открыть powerpoint через python, а затем сохранить презентацию слайдов в виде 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
и т.д., но все они win32com.client.constants.ppFixedFormatTypePDF
ошибку того или иного типа. Большинство из них аналогичны: ValueError: invalid literal for int() with base 10: 'PpFixedFormatType'
Возможно, вы столкнулись с этой ошибкой в PowerPoint API: введите несоответствие при использовании функции экспорта PowerPoint 2007. Решение состоит в том, чтобы указать параметр PrintRange для вызова ExportAsFixedFormat().
presentation.ExportAsFixedFormat(os.getcwd() + '\\test.pdf', 2)
TypeError: The Python instance can not be converted to a COM object