PDF da immagini usando Java

Voglio convertire le pagine PDF in un’immagine (PNG, JPEG / JPG o GIF). Li voglio in dimensioni a pagina intera.

Come si può fare usando Java? Quali librerie sono disponibili per raggiungere questo objective?

Avrai bisogno di un renderer PDF. Ce ne sono alcuni più o meno buoni sul mercato (ICEPdf, pdfrenderer), ma senza, dovrai fare affidamento su strumenti esterni. Anche i renderer PDF gratuiti non possono renderizzare i font incorporati, e quindi saranno utili solo per creare miniature (cosa che alla fine vorresti).

Il mio strumento esterno preferito è Ghostscript, che può convertire i PDF in immagini con una singola chiamata da riga di comando.

Questo converte i file Postscript (e PDF?) In bmp per noi , proprio come una guida da modificare per le tue esigenze (sai che hai bisogno che i vars per gs funzionino!):

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 

Nella libreria Ghost4J (http://ghost4j.sourceforge.net), dalla versione 0.4.0 è ansible utilizzare un SimpleRenderer per eseguire il lavoro con poche righe di codice:

  1. Carica file PDF o PS (usa la class PSDocument per quello):

      PDFDocument document = new PDFDocument(); document.load(new File("input.pdf")); 
  2. Crea il renderer

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

      List images = renderer.render(document); 

Quindi puoi fare ciò che vuoi con i tuoi oggetti immagine, ad esempio puoi scriverli come PNG in questo modo:

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

Nota: Ghost4J utilizza l'API C di Ghostscript nativa, quindi è necessario avere un Ghostscript installato sulla confezione.

Spero ti possa aiutare 🙂

Apache PDF Box può convertire PDF in jpg, bmp, wbmp, png e gif.

La libreria arriva anche con un’utilità da riga di comando chiamata PDFToImage per fare ciò.

Se si scarica il codice sorgente e si guarda alla class PDFToImage, si dovrebbe essere in grado di capire come utilizzare PDF Box per convertire i PDF in immagini dal proprio codice Java.

Dai un’occhiata agli articoli:

1) PdftoImage-Converti PDF in Immagine utilizzando la libreria PdfRenderer , collegamento diretto al codice sorgente
2) Java: generazione di PDF e anteprima come immagine – iText e Renderer PDF

jPDFImages non è gratuito ma è una libreria commerciale che converte le pagine PDF in immagini in formato JPEG, TIFF o PNG. La dimensione dell’immagine di output è personalizzabile.

Se GPL va bene, puoi dare un’occhiata a jPodRenderer (SourceForge)