Преобразование PDF-файла в серию изображений с помощью Python

StackOverflow https://stackoverflow.com/questions/331918

Вопрос

Я пытаюсь использовать Python для преобразования многостраничного PDF-файла в серию файлов JPEG.Я могу достаточно легко разбить PDF-файл на отдельные страницы с помощью доступных инструментов, но мне не удалось найти ничего, что могло бы преобразовать PDF-файлы в изображения.

PIL не работает, так как он не может читать PDF-файлы.Два варианта, которые я нашел, - это использование либо GhostScript, либо ImageMagick через оболочку.Для меня это неприемлемый вариант, поскольку эта программа должна быть кроссплатформенной, и я не могу быть уверен, что любая из этих программ будет доступна на компьютерах, на которых она будет установлена и использоваться.

Существуют ли какие-либо библиотеки Python, которые могут это сделать?

Это было полезно?

Другие советы

Вот что сработало у меня с использованием модуля python ghostscript (установленного с помощью '$ pip install ghostscript'):

import ghostscript

def pdf2jpeg(pdf_input_path, jpeg_output_path):
    args = ["pdf2jpeg", # actual value doesn't matter
            "-dNOPAUSE",
            "-sDEVICE=jpeg",
            "-r144",
            "-sOutputFile=" + jpeg_output_path,
            pdf_input_path]
    ghostscript.Ghostscript(*args)

Я также установил Ghostscript 9.18 на свой компьютер, и в противном случае он, вероятно, не работал бы.

Вы не можете избежать зависимости Ghostscript.Даже Imagemagick полагается на Ghostscript для своих функций чтения PDF-файлов.Причиной этого является сложность формата PDF:PDF содержит не только растровую информацию, но в основном векторные фигуры, прозрачные пленки и т.д.Кроме того, довольно сложно определить, какой из этих объектов появляется на какой странице.

Таким образом, правильный рендеринг PDF-страницы явно выходит за рамки чистой библиотеки Python.

Хорошей новостью является то, что Ghostscript предустановлен во многих системах Windows и Linux, поскольку он также необходим всем этим PDF-принтерам (кроме Adobe Acrobat).

Если вы используете Linux, некоторые версии поставляются с готовой утилитой командной строки под названием "pdftopbm".Проверьте netpbm

Возможно, уместно: http://www.swftools.org/gfx_tutorial.html

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