2

在java中将所有PDF页面转换为单个图像
我有一个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.
4

1 回答 1

2

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

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

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

于 2013-12-06T07:30:30.110 回答