Créer une image miniature pour PDF en Java
je suis à la recherche d'une bibliothèque Java qui pourra prendre un PDF et créer une image miniature (PNG) à partir de la première page.
J'ai déjà regardé JPedal, mais ses frais de licence insensés sont complètement prohibitifs. J'utilise iText pour manipuler les fichiers PDF en ce moment, mais je crois qu'il ne fait pas la génération de vignettes. Je peux utiliser quelque chose comme Ghostscript sur la ligne de commande, mais j'espère garder mon projet entièrement en Java si possible.
2 réponses
PDF Renderer est une librairie Java pure sous licence LGPL qui rend cela aussi simple que (tiré de leur page d'exemple):
File file = new File("test.pdf");
RandomAccessFile raf = new RandomAccessFile(file, "r");
FileChannel channel = raf.getChannel();
ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());
PDFFile pdffile = new PDFFile(buf);
// draw the first page to an image
PDFPage page = pdffile.getPage(0);
//get the width and height for the doc at the default zoom
Rectangle rect = new Rectangle(0,0,
(int)page.getBBox().getWidth(),
(int)page.getBBox().getHeight());
//generate the image
Image img = 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
);
PDF Renderer est très bien tant que vous n'utilisez que le sous-ensemble de fichiers PDF qu'ils utilisent. Avec JPod et JPedal vous payez pour une bibliothèque active et développée pas un projet mort.