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 python flask donde se cargarán los pdf-s y los jpeg-s correspondientes a cada página son las tiendas).
Esta solución está cerca, pero el problema es que no convierte toda la página a jpeg.
Respuestas:
Se puede utilizar la biblioteca pdf2image.
Puede instalarlo simplemente usando,
Una vez instalado, puede usar el siguiente código para obtener imágenes.
Guardar páginas en formato jpeg
Editar: el repositorio de Github pdf2image también menciona que usa
pdftoppm
y que requiere otras instalaciones:Puede instalar la última versión en Windows usando anaconda haciendo:
nota: las versiones de Windows hasta 0.67 están disponibles en http://blog.alivate.com.au/poppler-windows/ pero tenga en cuenta que 0.68 se lanzó en agosto de 2018, por lo que no obtendrá las últimas funciones ni correcciones de errores.
fuente
Encontré esta solución simple, PyMuPDF , salida a archivo png. Tenga en cuenta que la biblioteca se importa como "fitz", un nombre histórico para el motor de renderizado que utiliza.
fuente
La biblioteca de Python
pdf2image
(utilizada en la otra respuesta) de hecho no hace mucho más que simplemente iniciarpdttoppm
consubprocess.Popen
, por lo que aquí hay una versión corta que lo hace directamente:Aquí está el enlace de instalación de Windows para
pdftoppm
(contenido en un paquete llamado poppler): http://blog.alivate.com.au/poppler-windows/fuente
No es necesario instalar Poppler en su sistema operativo. Esto funcionará:
pip instalar varita
fuente
@gaurwraith, instale poppler para Windows y use pdftoppm.exe de la siguiente manera:
Descargue el archivo zip con los binarios / dlls más recientes 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".
Agregue "C: \ Archivos de programa (x86) \ Poppler \ poppler-0.68.0 \ bin" a la variable de entorno SYSTEM PATH.
Desde la línea cmd instale el módulo pdf2image -> "pip install pdf2image".
@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:
O usando el módulo pdf2image:
fuente
Hay una utilidad llamada pdftojpg que se puede utilizar para convertir el pdf a img
Puede encontrar el código aquí https://github.com/pankajr141/pdf2jpg
fuente
GhostScript funciona mucho más rápido que Poppler para un sistema basado en Linux.
A continuación se muestra el código para la conversión de PDF a imagen.
GhostScript se puede instalar en macOS usando
brew install ghostscript
La información de instalación para otras plataformas se puede encontrar aquí . Si aún no está instalado en su sistema.
fuente
Yo uso una opción (quizás) mucho más simple de pdf2image:
Esta es una pequeña parte de un script bash en un bucle para el uso de un dispositivo de transmisió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, la visualización de un video, dos textos de desplazamiento suave y un logotipo (con transición en tres versiones) configura el Pi3 a casi 4x 100% de carga de cpu ;-)
fuente
fuente
Aquí hay una solución que no requiere bibliotecas adicionales y es muy rápida. Esto se encontró en: https://nedbatchelder.com/blog/200712/extracting_jpgs_from_pdfs.html# He agregado el código en una función para que sea más conveniente.
Llame a convert con la ruta del pdf como argumento y la función creará un archivo .jpg en el mismo directorio
fuente