Вопрос

Я хочу конвертировать 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), который можно использовать в качестве основы для преобразования, которое вы хотите предпринять.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top