reporte para imprimir hacer generar factura exportar desde crear como java image pdf

para - Convertir PDF a imagen en miniatura en Java



java para pdf (2)

Excelente sdorra, gracias por tu aporte. He vuelto a trabajar su ejemplo para convertir todas las páginas del pdf.

Espero que les ayude a algunos de ustedes.

import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import javax.imageio.ImageIO; import com.sun.pdfview.PDFFile; import com.sun.pdfview.PDFPage; public class Main { public static void main(String[] args) throws IOException { File pdfFile = new File("c://YOURPDF.pdf"); RandomAccessFile raf = new RandomAccessFile(pdfFile, "r"); FileChannel channel = raf.getChannel(); ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); PDFFile pdf = new PDFFile(buf); for (int i=0; i<pdf.getNumPages(); i++) { createImage(pdf.getPage(i), "c://PICTURE_" + i + ".jpg"); } } public static void createImage(PDFPage page, String destination) throws IOException{ Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight()); BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB); Image image = page.getImage(rect.width, rect.height, // width & height rect, // clip rect null, // null for the ImageObserver true, // fill background with white true // block until drawing is done ); Graphics2D bufImageGraphics = bufferedImage.createGraphics(); bufImageGraphics.drawImage(image, 0, 0, null); ImageIO.write(bufferedImage, "JPG", new File( destination )); } }

Puede descargar la biblioteca desde pdf-renderer-1.0.5.jar

El sitio web de Source for Java Technology Collaboration

¿Alguien puede sugerirme una biblioteca gratuita de Java que pueda convertir un PDF y crear una imagen en miniatura (PNG) desde la primera página?

Gracias.


Podrías probar pdf-renderer , es una solución java pura. El siguiente Código crea una imagen de la primera página.

File pdfFile = new File("/path/to/pdf.pdf"); RandomAccessFile raf = new RandomAccessFile(pdfFile, "r"); FileChannel channel = raf.getChannel(); ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size()); PDFFile pdf = new PDFFile(buf); PDFPage page = pdf.getPage(0); // create the image Rectangle rect = new Rectangle(0, 0, (int) page.getBBox().getWidth(), (int) page.getBBox().getHeight()); BufferedImage bufferedImage = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB); Image image = page.getImage(rect.width, rect.height, // width & height rect, // clip rect null, // null for the ImageObserver true, // fill background with white true // block until drawing is done ); Graphics2D bufImageGraphics = bufferedImage.createGraphics(); bufImageGraphics.drawImage(image, 0, 0, null); ImageIO.write(bufferedImage, format, new File( "/path/to/image.jpg" ));