Создать эскиз изображения для PDF в Java - PullRequest
24 голосов
/ 16 мая 2010

Я ищу библиотеку Java, которая может взять PDF и создать эскиз изображения (PNG) с первой страницы.

Я уже смотрел на JPedal, но его безумная лицензионная плата совершенно непосильна. В настоящее время я использую iText для работы с PDF-файлами, но я считаю, что он не генерирует миниатюры. Я могу использовать что-то вроде Ghostscript в командной строке, но я надеюсь сохранить свой проект полностью на Java, если это возможно.

Ответы [ 2 ]

22 голосов
/ 16 мая 2010

PDF Renderer - это лицензированная LGPL библиотека чистой java, которая делает это так же просто, как (взято со страницы их примера):

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
                );
5 голосов
/ 17 мая 2010

PDF Renderer хорош, если вы используете только подмножество PDF-файлов, которые они используют. С JPod и JPedal вы платите за активную и развитую библиотеку, а не за мертвый проект.

...