PDF a imagen usando Java

Deseo convertir páginas PDF en una imagen (PNG, JPEG / JPG o GIF). Los quiero en tamaños de página completa.

¿Cómo se puede hacer esto usando Java? ¿Qué bibliotecas están disponibles para lograr esto?

Necesitará un procesador de PDF. Hay unos pocos más o menos buenos en el mercado (ICEPdf, pdfrenderer), pero sin eso, tendrá que depender de herramientas externas. Los renderizadores de PDF gratuitos tampoco pueden generar fonts incrustadas, por lo que solo servirán para crear miniaturas (lo que eventualmente desee).

Mi herramienta externa favorita es Ghostscript, que puede convertir archivos PDF a imágenes con una sola invocación de línea de comando.

Esto convierte los archivos Postscript (y PDF?) A bmp para nosotros , solo como una guía para modificar para sus necesidades (¡sepa que necesita los archivos para que gs funcione!):

pushd setlocal Set BIN_DIR=C:\Program Files\IKOffice_ACME\bin Set GS=C:\Program Files\IKOffice_ACME\gs Set GS_DLL=%GS%\gs8.54\bin\gsdll32.dll Set GS_LIB=%GS%\gs8.54\lib;%GS%\gs8.54\Resource;%GS%\fonts Set Path=%Path%;%GS%\gs8.54\bin Set Path=%Path%;%GS%\gs8.54\lib call "%GS%\gs8.54\bin\gswin32c.exe" -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE#bmpmono -r600x600 -sOutputFile#%2 -f %1 endlocal popd 

En la biblioteca Ghost4J (http://ghost4j.sourceforge.net), desde la versión 0.4.0 puede usar un SimpleRenderer para hacer el trabajo con pocas líneas de código:

  1. Cargue el archivo PDF o PS (use la clase PSDocument para eso):

      PDFDocument document = new PDFDocument(); document.load(new File("input.pdf")); 
  2. Crear el renderizador

      SimpleRenderer renderer = new SimpleRenderer(); // set resolution (in DPI) renderer.setResolution(300); 
  3. Hacer

      List images = renderer.render(document); 

Luego puede hacer lo que quiera con sus objetos de imagen, por ejemplo, puede escribirlos como PNG de esta manera:

  for (int i = 0; i < images.size(); i++) { ImageIO.write((RenderedImage) images.get(i), "png", new File((i + 1) + ".png")); } 

Nota: Ghost4J usa la API nativa de Ghostscript C, por lo que debe tener instalado un Ghostscript en su caja.

Espero que te ayude 🙂

Apache PDF Box puede convertir archivos PDF a jpg, bmp, wbmp, png y gif.

La biblioteca incluso viene con una utilidad de línea de comando llamada PDFToImage para hacer esto.

Si descarga el código fuente y observa la clase PDFToImage, debería ser capaz de descubrir cómo usar PDF Box para convertir archivos PDF a imágenes desde su propio código Java.

Echa un vistazo a los artículos:

1) PdftoImage-Convierta PDF en Imagen usando la biblioteca PdfRenderer , enlace directo al código fuente
2) Java: generación de PDF y vista previa como una imagen – iText y PDF Renderer

jPDFImages no es gratuito, sino una biblioteca comercial que convierte páginas PDF a imágenes en formato JPEG, TIFF o PNG. El tamaño de la imagen de salida es personalizable.

Si GPL está bien, puede echar un vistazo adicional a jPodRenderer (SourceForge)