Конвертирование PPTX в PNG при помощи python

Хочу конвертировать файл PPTX в изображение. Полистал инет, нашел только такие решения:

  1. https://pypi.org/project/Aspose.Slides/

  2. https://stackoverflow.com/questions/61815883/python-pptx-export-img-png-jpeg

Что касается первого - поставил библиотеку, запустил - сохраняет, но кидает водяной знак.

Что касается второго, то это решение для Винды.

Поэтому ни одно ни второе - не подходит.

Кто сталкивался с этим, может нашли обходной путь?


Ответы (2 шт):

Автор решения: Nikita Kalitin

Не совсем "чистое" решение, но вполне "временное/рабочее", имхо:

  1. сконвертировать с помощью libreoffice в pdf
  2. сконвертировать 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.

→ Ссылка
Автор решения: Tihon

Для различных веб-интеграций можно реализовать следующим образом

  1. Coздать аккаунт Azure
  2. Создать приложение в Azure AD с scope Files.ReadWrite.All
  3. Получить client id для Microsoft Flow / Power Automate
  4. Открыть пользователю страницу авторизации (OAuth 2.0)
  5. Загрузить презентацию в OneDrive
  6. Скачать презентацию указав формат jpg в запросе.
GET /drive/items/{item-id}/content?format=jpg

Увы, без Azure не выйдет оперировать с OneDrive. Для персонального пользования можно автоматизировать загрузку файлов в облако с помощью selenium/playwright, запуск предпросмотра в Office 365 и экспорт как jpg.

→ Ссылка