2015-07-18 2 views
8

Я искал для преобразования файла .pptx в .pdf-файл через скрипт Python в течение нескольких часов, но ничего не работает.Как преобразовать .pptx в .pdf с помощью Python

То, что я пробовал: Я попробовал 1) this script который вызывает windows32.client, и 2) unoconv, но ни один из них не кажется, работает для меня.

Проблема, возникающая: Использования сценария из первого варианта подбрасывает ошибку (com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2147024894), None)), в то время как во втором варианте Python не может показаться признать unoconv даже после его установки с помощью пипса.

Я также видел некоторые рекомендуемые Pandoc, но я не могу понять, как использовать его для Python.

Версии Я использую: Python 2.7.9, Windows 8.1

+0

Мне интересно, не было бы проще записать его в VBA, так как вы могли бы использовать экспорт в PDF-объект. Вам просто нужно настроить структуру для открытия и закрытия файлов в каталоге, а затем запустить ее через процесс экспорта. – AMR

+0

@AMR: Я никогда не использовал VBA, поэтому я не думал делать что-то подобное. Если вы не возражаете, можете ли вы привести пример этого? Если у меня есть файл VBA, я могу открыть этот файл из python, как вы предложили. Спасибо за ваш комментарий. – Pupil

+1

Я не кодировал в VBA через несколько лет. Я пытался просмотреть какой-то старый код, который у меня был, но я не могу найти работу, которую я сделал с файловой системой. – AMR

ответ

8

Я нашел ответ с помощью this post и ответа от this question. Обратите внимание: comtypes доступен только для Windows.

import comtypes.client 

def PPTtoPDF(inputFileName, outputFileName, formatType = 32): 
    powerpoint = comtypes.client.CreateObject("Powerpoint.Application") 
    powerpoint.Visible = 1 

    if outputFileName[-3:] != 'pdf': 
     outputFileName = outputFileName + ".pdf" 
    deck = powerpoint.Presentations.Open(inputFileName) 
    deck.SaveAs(outputFileName, formatType) # formatType = 32 for ppt to pdf 
    deck.Close() 
    powerpoint.Quit() 
Смежные вопросы