使用PDFBox 2.0.2拆分PDF会生成非常大的PDF文档

我想使用命令

java -jar pdfbox-app-2.y.z.jar PDFSplit [OPTIONS] <PDF file> 

将一个PDF拆分为许多其他PDF。但是我发现有一个问题:拆分的PDF为“ ActiveMQ In Action(Manning-2011).pdf”,它的大小为14.1MB。但是当我跑步时

java -jar pdfbox-app-2.0.2.jar PDFSplit -split 5 -startPage 21 -endPage 40 -outputPrefix abc "ActiveMQ In Action(Manning-2011).pdf"

每个PDF都大于79MB!我该如何预防?

回答:

这是PDFBox 2.0.2中的一个已知错误。拆分在2.0.1中工作正常,在2.0.3中又可以工作。“错误的”代码已经恢复。问题的原因在这里讨论。长话短说:2.0.2版在每个源页面上进行了深层克隆,从而导致资源重复。

更新:这是一些使用2.0.2的人的解决方法代码:

static public PDPage importPageFixed(PDDocument document, PDPage page) throws IOException

{

PDPage importedPage = new PDPage(new COSDictionary(page.getCOSObject()), document.getResourceCache());

InputStream in = null;

try

{

in = page.getContents();

if (in != null)

{

PDStream dest = new PDStream(document, in, COSName.FLATE_DECODE);

importedPage.setContents(dest);

}

document.addPage(importedPage);

}

catch (IOException e)

{

IOUtils.closeQuietly(in);

}

return importedPage;

}

以上是 使用PDFBox 2.0.2拆分PDF会生成非常大的PDF文档 的全部内容, 来源链接: utcz.com/qa/424524.html

回到顶部