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.

24
demandé sur Shaggy Frog 2010-05-16 22:35:11

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
                );
21
répondu FRotthowe 2014-08-15 11:27:10

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.

5
répondu mark stephens 2010-05-17 07:10:10