PDF使用Java进行映像

yoh*_*hna 35 java pdf jar image

我想将PDF页面转换为图像(PNG,JPEG/JPG或GIF).我想要它们的全页面大小.

如何使用Java完成?有哪些库可用于实现此目的?

zip*_*978 32

在Ghost4J库(http://ghost4j.sourceforge.net)中,从版本0.4.0开始,您可以使用SimpleRenderer完成几行代码的工作:

  1. 加载PDF或PS文件(使用PSDocument类):

        PDFDocument document = new PDFDocument();
        document.load(new File("input.pdf"));
    
    Run Code Online (Sandbox Code Playgroud)
  2. 创建渲染器

        SimpleRenderer renderer = new SimpleRenderer();
    
        // set resolution (in DPI)
        renderer.setResolution(300);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 给予

        List<Image> images = renderer.render(document);
    
    Run Code Online (Sandbox Code Playgroud)

然后,您可以使用图像对象执行所需的操作,例如,您可以将它们写为PNG,如下所示:

            for (int i = 0; i < images.size(); i++) {
                ImageIO.write((RenderedImage) images.get(i), "png", new File((i + 1) + ".png"));
            }
Run Code Online (Sandbox Code Playgroud)

注意:Ghost4J使用本机Ghostscript C API,因此您需要在盒子上安装Ghostscript.

我希望它能帮到你:)


Dón*_*yle 26

Apache PDF Box可以将PDF转换为jpg,bmp,wbmp,png和gif.

该库甚至还带有一个名为PDFToImage的命令行实用程序来执行此操作.

如果您下载源代码并查看PDFToImage类,您应该能够弄清楚如何使用PDF Box将PDF转换为您自己的Java代码中的图像.

  • 有关如何在PDFBox 2.0.0中执行此操作的详细信息,请参见https://pdfbox.apache.org/2.0/migration.html在“ PDF渲染”下。 (2认同)

Dan*_*iel 10

您需要一个PDF渲染器.市场上有一些或多或少好的(ICEPdf,pdfrenderer),但没有,你将不得不依赖外部工具.免费的PDF渲染器也无法渲染嵌入字体,因此仅适用于创建缩略图(您最终想要的).

我最喜欢的外部工具是Ghostscript,它可以通过单个命令行调用将PDF转换为图像.

这会将Postscript(和PDF?)文件转换为bmp 给我们,作为修改您需求的指南(知道您需要让gs工作的env vars!):

pushd 
setlocal

Set BIN_DIR=C:\Program Files\IKOffice_ACME\bin
Set GS=C:\Program Files\IKOffice_ACME\gs
Set GS_DLL=%GS%\gs8.54\bin\gsdll32.dll
Set GS_LIB=%GS%\gs8.54\lib;%GS%\gs8.54\Resource;%GS%\fonts
Set Path=%Path%;%GS%\gs8.54\bin
Set Path=%Path%;%GS%\gs8.54\lib

call "%GS%\gs8.54\bin\gswin32c.exe" -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE#bmpmono -r600x600 -sOutputFile#%2 -f %1

endlocal
popd
Run Code Online (Sandbox Code Playgroud)

更新: pdfbox现在能够嵌入字体,因此不再需要Ghostscript.