python image pdf

Python: extraiga una página de un pdf como un jpeg



image (8)

@gaurwraith, instale poppler para Windows y use pdftoppm.exe de la siguiente manera:

  1. Descargue el archivo zip con los últimos archivos binarios / dlls de Poppler desde http://blog.alivate.com.au/poppler-windows/ y descomprímalo en una nueva carpeta en la carpeta de archivos de su programa. Por ejemplo: "C: / Archivos de programa (x86) / Poppler".

  2. Agregue "C: / Archivos de programa (x86) / Poppler / poppler-0.68.0 / bin" a su variable de entorno SYSTEM PATH.

  3. Desde la línea cmd, instale el módulo pdf2image -> "pip install pdf2image".

  4. O bien, ejecute directamente pdftoppm.exe desde su código utilizando el módulo de subproceso de Python como lo explicó el usuario Basj.

@vishvAs vAsuki, este código debe generar los jpgs que desee a través del módulo de subproceso para todas las páginas de uno o más archivos PDF en una carpeta determinada:

import os, subprocess pdf_dir = r"C:/yourPDFfolder" os.chdir(pdf_dir) pdftoppm_path = r"C:/Program Files (x86)/Poppler/poppler-0.68.0/bin/pdftoppm.exe" for pdf_file in os.listdir(pdf_dir): if pdf_file.endswith(".pdf"): subprocess.Popen(''"%s" -jpeg %s out'' % (pdftoppm_path, pdf_file))

O usando el módulo pdf2image:

import os from pdf2image import convert_from_path pdf_dir = r"C:/yourPDFfolder" os.chdir(pdf_dir) for pdf_file in os.listdir(pdf_dir): if pdf_file.endswith(".pdf"): pages = convert_from_path(pdf_file, 300) pdf_file = pdf_file[:-4] for page in pages: page.save("%s-page%d.jpg" % (pdf_file,pages.index(page)), "JPEG")

En el código python, ¿cómo guardar de manera eficiente una determinada página en un pdf como un archivo jpeg? (Caso de uso: tengo un servidor web de matraz de Python donde se cargarán pdf-s y se almacenará jpeg-s correspondiente a cada página).

Esta solución está cerca, pero el problema es que no convierte toda la página a JPEG.


De hecho, la biblioteca pdf2image Python (utilizada en la otra respuesta) no hace mucho más que lanzar pdttoppm con subprocess.Popen , así que aquí hay una versión corta que lo hace directamente:

PDFTOPPMPATH = r"D:/Documents/software/____PORTABLE/poppler-0.51/bin/pdftoppm.exe" PDFFILE = "SKM_28718052212190.pdf" import subprocess subprocess.Popen(''"%s" -png "%s" out'' % (PDFTOPPMPATH, PDFFILE)) #have updated the values here

Aquí está el enlace de instalación de Windows para pdftoppm (contenido en un paquete llamado poppler): http://blog.alivate.com.au/poppler-windows/


Encontré esta solución simple, PyMuPDF, salida a archivo png

import fitz pdffile = "infile.pdf" doc = fitz.open(pdffile) page = doc.loadPage(0) #number of page pix = page.getPixmap() output = "outfile.png" pix.writePNG(output)


Existe una utilidad llamada pdftojpg que se puede usar para convertir el pdf a img

Puede encontrar el código aquí https://github.com/pankajr141/pdf2jpg

from pdf2jpg import pdf2jpg inputpath = r"D:/inputdir/pdf1.pdf" outputpath = r"D:/outputdir" # To convert single page result = pdf2jpg.convert_pdf2jpg(inputpath, outputpath, pages="1") print(result) # To convert multiple pages result = pdf2jpg.convert_pdf2jpg(inputpath, outputpath, pages="1,0,3") print(result) # to convert all pages result = pdf2jpg.convert_pdf2jpg(inputpath, outputpath, pages="ALL") print(result)


Le recomendaría que use Aspose.PDF Cloud SDK para convertir PDF a JPEG. Aquí hay un example :

curl -v "https://api.aspose.cloud/v1.1/pdf/test.pdf/pages/1/convert/jpeg?outpath=test.jpeg" -X PUT -H "Content-Type: application/json" -H "Accept: application/json" -H "Authorization: ..."

Espero eso ayude. De lo contrario, no dudes en preguntarme.

Nota : Estoy trabajando como desarrollador evangelista en Aspose.


No es necesario instalar Poppler en su sistema operativo. Esto funcionará:

pip install Wand

from wand.image import Image with(Image(filename="somefile.pdf", resolution=120)) as source: images = source.sequence pages = len(images) for i in range(pages): n = i + 1 newfilename = f[:-4] + str(n) + ''.jpeg'' Image(images[i]).save(filename=newfilename)


Se puede usar la biblioteca pdf2image.

Puedes instalarlo simplemente usando,

pip install pdf2image

Una vez instalado, puede usar el siguiente código para obtener imágenes.

from pdf2image import convert_from_path pages = convert_from_path(''pdf_file'', 500)

Guardar páginas en formato jpeg

for page in pages: page.save(''out.jpg'', ''JPEG'')

Editar: el repositorio de Github pdf2image también menciona que usa pdftoppm y que requiere otras instalaciones:

pdftoppm es la pieza de software que hace la magia real. Se distribuye como parte de un paquete mayor llamado poppler . Los usuarios de Windows deberán instalar poppler para Windows . Los usuarios de Mac deberán instalar poppler para Mac . Los usuarios de Linux tendrán pdftoppm preinstalado con la distribución (probado en Ubuntu y Archlinux) si no es así, ejecute sudo apt install poppler-utils .

Aquí está la instalación adecuada para Windows: http://blog.alivate.com.au/poppler-windows/


Utilizo una opción (quizás) mucho más simple de pdf2image:

cd $dir for f in *.pdf do if [ -f "${f}" ]; then n=$(echo "$f" | cut -f1 -d''.'') pdftoppm -scale-to 1440 -png $f $conv/$n rm $f mv $conv/*.png $dir fi done

Esta es una pequeña parte de un script bash en un bucle para el uso de un dispositivo de conversión estrecho. Comprueba cada 5 segundos los archivos pdf agregados (todos) y los procesa. Esto es para un dispositivo de demostración, al final la conversión se realizará en un servidor remoto. Convertir a .PNG ahora, pero .JPG también es posible.

Esta conversión, junto con las transiciones en formato A4, muestra un video, dos textos de desplazamiento suave y un logotipo (con transición en tres versiones) configura el Pi3 en casi 4x 100% de carga de CPU ;-)