pythonmagick library img2pdf convert python pdf imagemagick jpeg python-imaging-library

library - img2pdf python



Convertir un PDF a una serie de imágenes con Python (5)

Esto es lo que funcionó para mí usando el módulo python ghostscript (instalado por ''$ 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)

También instalé Ghostscript 9.18 en mi computadora y probablemente no hubiera funcionado de otra manera.

Estoy intentando usar Python para convertir un PDF de varias páginas en una serie de archivos JPEG. Puedo dividir el PDF en páginas individuales con la suficiente facilidad con las herramientas disponibles, pero no he podido encontrar nada que pueda encubrir archivos PDF a imágenes.

PIL no funciona, ya que no puede leer archivos PDF. Las dos opciones que he encontrado están usando GhostScript o ImageMagick a través del shell. Esta no es una opción viable para mí, ya que este programa debe ser multiplataforma, y ​​no estoy seguro de que ninguno de esos programas esté disponible en las máquinas en las que se instalará y utilizará.

¿Hay alguna biblioteca de Python que pueda hacer esto?


No puedes evitar la dependencia de Ghostscript. Incluso Imagemagick confía en Ghostscript para sus funciones de lectura de PDF. La razón de esto es la complejidad del formato PDF: un PDF no solo contiene información de mapas de bits, sino principalmente formas vectoriales, transparencias, etc. Además, es bastante complejo descubrir cuáles de estos objetos aparecen en cada página.

Por lo tanto, la representación correcta de una página PDF está claramente fuera del alcance de una biblioteca de Python pura.

La buena noticia es que Ghostscript está preinstalado en muchas ventanas y sistemas Linux, porque también lo necesitan todas las impresoras PDF (excepto Adobe Acrobat).



Si usa linux, algunas versiones vienen con una utilidad de línea de comandos llamada ''pdftopbm'' lista para usar. Echa un vistazo a netpbm