将所有PDF页面转换为java中的单个图像

时间:2013-10-30 10:04:09

标签: java pdf pdfbox

将所有PDF页面转换为java中的单个图像 我有一个700KB的pdf文件,我想将它转换为缩小尺寸的单个图像。我在下面试了一下。我正在使用PDFBox

PDDocument document = PDDocument.loadNonSeq(file,null);

List<PDPage> pages = document.getDocumentCatalog().getAllPages();
int i =0;
for ( PDPage page : pages )     {
        BufferedImage image = page.convertToImage();
        BufferedImage imageBW = new BufferedImage(image.getWidth(),                                      
image.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
        Graphics g = imageBW.getGraphics();
        g.drawImage(image, 0, 0, null);
        g.dispose();
        java.io.File file1 = new    
java.io.File(("D:\\FTPUploads\\GuestSupply_"+i+".jpg"));

        ImageIO.write(imageBW, "jpg", file1);
        i++;
    }

But there difference found is only 10 KB and here it created into 2 images (pdf having 2 pages) i need it in single image. Could you please help me out on this.

1 个答案:

答案 0 :(得分:2)

ImageMagick是一个用于创建,编辑,编辑或转换位图图像的软件套件。它具有连接图像的选项。通常从命令行使用ImageMagick的功能,或Im4java是ImageMagick命令行的纯java接口。它是在Apache 2.0许可下发布的。

首先使用PDFBox将每个PDF页面转换为单独的图像,然后使用ImageMagick合并所有图像。

参考:   http://www.imagemagick.org/Usage/layers/