zip*_*978 32
在Ghost4J库(http://ghost4j.sourceforge.net)中,从版本0.4.0开始,您可以使用SimpleRenderer完成几行代码的工作:
加载PDF或PS文件(使用PSDocument类):
PDFDocument document = new PDFDocument();
document.load(new File("input.pdf"));
Run Code Online (Sandbox Code Playgroud)创建渲染器
SimpleRenderer renderer = new SimpleRenderer();
// set resolution (in DPI)
renderer.setResolution(300);
Run Code Online (Sandbox Code Playgroud)给予
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代码中的图像.
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.