Я пытаюсь использовать Python для преобразования многостраничного PDF-файла в серию файлов JPEG. Я могу достаточно легко разделить PDF-файл на отдельные страницы с помощью доступных инструментов, но мне не удалось найти ничего, что могло бы преобразовать PDF-файлы в изображения.
PIL не работает, так как не может читать PDF-файлы. Я нашел два варианта: использовать GhostScript или ImageMagick через оболочку. Для меня это не жизнеспособный вариант, поскольку эта программа должна быть кроссплатформенной, и я не могу быть уверен, что какая-либо из этих программ будет доступна на машинах, на которых она будет установлена и на которой будет использоваться.
Существуют ли какие-либо библиотеки Python, которые могут это сделать?
Надеюсь, это поможет - [stackoverflow.com/questions/34129995/pdf-to-raw-image] (stackoverflow.com/questions/34129995/pdf-to-raw-image)






ImageMagick имеет Привязки Python.
Я хотел бы добавить, что да, вы можете просто включить библиотеку ImageMagick в свой проект - просто убедитесь, что вы ознакомились с условиями лицензии, чтобы вы могли поместить соответствующий материал в свой файл readme.
Уточните, какие привязки могут быть полезны?
Вы не можете избежать зависимости Ghostscript. Даже Imagemagick полагается на Ghostscript для своих функций чтения PDF. Причиной этого является сложность формата PDF: PDF-файл содержит не только растровую информацию, но в основном векторные фигуры, прозрачные пленки и т. д. Кроме того, довольно сложно определить, какие из этих объектов появляются на какой странице.
Таким образом, правильная визуализация страницы PDF явно выходит за рамки чистой библиотеки Python.
Хорошая новость заключается в том, что Ghostscript предустановлен во многих системах Windows и Linux, поскольку он также необходим для всех этих PDF-принтеров (кроме Adobe Acrobat).
Если вы используете Linux, некоторые версии поставляются с утилитой командной строки под названием «pdftopbm» из коробки. Проверить netpbm
Возможно актуально: http://www.swftools.org/gfx_tutorial.html
Если это актуально, укажите соответствующие части в своем ответе.
Вот что у меня сработало при использовании модуля 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 на свой компьютер, иначе он, вероятно, не работал бы.
Кажется, это создает новое изображение, и я вижу миниатюру pdf, но по какой-то причине он не закрывает файл нового созданного jpeg. Я получил этот вывод из Python ##### 246643328 c_void_p(246643328L), есть идеи?
Вы можете помочь решить мою проблему по этому делу? stackoverflow.com/questions/44448552/…
ghostscript, похоже, не поддерживает python3
@ Идан Якоби, спасибо! это лучшее решение для моего python27.
Вы когда-нибудь находили решение? Я получил преобразование для работы, но не могу заставить ImageMagick уважать страницы.