Конвертирование PPTX в PNG при помощи python
Хочу конвертировать файл PPTX в изображение. Полистал инет, нашел только такие решения:
Что касается первого - поставил библиотеку, запустил - сохраняет, но кидает водяной знак.
Что касается второго, то это решение для Винды.
Поэтому ни одно ни второе - не подходит.
Кто сталкивался с этим, может нашли обходной путь?
Ответы (2 шт):
Не совсем "чистое" решение, но вполне "временное/рабочее", имхо:
- сконвертировать с помощью libreoffice в pdf
- сконвертировать pdf в картинки с помощью Imagemagick
Проверял для Ubuntu18.04, без GUI.
Cтавим необходимые пакеты:
apt update && apt install libreoffice
apt install imagemagick
apt install ghostscript
Правим настройки imagemagick: в файле /etc/ImageMagick-6/policy.xml находим строку <policy domain="coder" rights="none" pattern="PDF" /> и меняем настройку <policy domain="coder" rights="read|write" pattern="PDF" />
Конвертируем файл test.pptx в test.pdf
soffice --headless --convert-to pdf test.pptx
Конвертируем файл test.pdf в набор *.jpg файлов - постранично
convert -density 150 test.pdf -quality 80 output-%3d.jpg
Если делать с помощью Python - можно воспользоваться функцией os.system() или почитать статью
Более подробно эта методика описана например здесь Также похожая тема есть здесь
Как по мне идеально конвертируется из pdf в jpg, но немного меняются цвета/насыщение при конвертации из pptx в pdf.
Для различных веб-интеграций можно реализовать следующим образом
- Coздать аккаунт Azure
- Создать приложение в Azure AD с scope Files.ReadWrite.All
- Получить client id для Microsoft Flow / Power Automate
- Открыть пользователю страницу авторизации (OAuth 2.0)
- Загрузить презентацию в OneDrive
- Скачать презентацию указав формат jpg в запросе.
GET /drive/items/{item-id}/content?format=jpg
Увы, без Azure не выйдет оперировать с OneDrive. Для персонального пользования можно автоматизировать загрузку файлов в облако с помощью selenium/playwright, запуск предпросмотра в Office 365 и экспорт как jpg.