Конвертировать PPT в PNG через Python
-
19-09-2019 - |
Вопрос
Я хочу конвертировать PPT в png или другие форматы изображений с помощью Python.
Этот вопрос был задан на SO, но по сути рекомендуется запускать OpenOffice на безголовом X-сервере, что было абсолютной болью, когда я использовал его в прошлый раз.(В основном из-за трудно воспроизводимых ошибок из-за сбоя объектно-ориентированного программирования.)
Есть ли другой способ (надеюсь, используя только утилиты Linux CLI и чистый Python над ними?)
Решение
Основной рабочий процесс:
конвертируйте ppt в PDF с помощью PDF-принтера из PowerPoint или встроенного PDF-конвертера OpenOffice.
используйте Ghostscript для преобразования PDF в PNG или другой формат изображения (что-то вроде
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r100 -sOutputFile=out.png in.pdf
)
Вы можете использовать Python для написания этого сценария (и пилотировать OOo/MSPP с использованием Uno/COM) или любой другой сценарий, который вам нужен.
Насколько мне известно, не существует библиотеки Python, обрабатывающей файлы PPT или преобразующей файлы PDF в PNG.
Что касается обработки сбоев OOo, я бы перехватил Исключения и попытался перезапустить OOo, когда такое событие происходит (и, вероятно, пропустил бы файл, добавив его в список подозрительных файлов, требующих ручной обработки).
Вы можете найти эту статью http://www.linuxjournal.com/node/1007788 интересно, поскольку он предоставляет класс, который использует существующий экземпляр OOo для подключения или запускает его, если это необходимо, прозрачным образом.Он содержит пример преобразования xls -> csv (http://www.linuxjournal.com/content/convert-spreadsheets-csv-files-python-and-pyuno), который можно использовать в качестве основы для преобразования, которое вы хотите предпринять.