gpt4 book ai didi

java - PDFBox 臃肿的 PDF 文件大小

转载 作者:行者123 更新时间:2023-12-02 08:38:26 28 4
gpt4 key购买 nike

使用PDFBox可以读取livecycle创建的动态PDF。下面的代码读取然后写回用于创建动态 PDF 的 xml 文件。我有点担心,因为生成的文件相当大,从 647kb pdf 开始。新的pdf 14000kb。任何人都知道如何减少生成的新文件的大小。写回pdf文件时可以设置某种类型的压缩吗?

 PDDocument doc = PDDocument.load("filename");
doc.setAllSecurityToBeRemoved(true);
PDDocumentCatalog docCatalog = doc.getDocumentCatalog();
PDAcroForm form = docCatalog.getAcroForm();
PDXFA xfa = form.getXFA();
COSBase cos = xfa.getCOSObject();
COSStream coss = (COSStream) cos;
InputStream cosin = coss.getUnfilteredStream();
Document document = documentBuilder.parse(cosin);
COSStream cosout = new COSStream(new RandomAccessBuffer());
OutputStream out = cosout.createUnfilteredStream();
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
DOMSource source = new DOMSource(xmlDoc);
StreamResult result = new StreamResult(out);
transformer.transform(source, result);
PDXFA xfaout = new PDXFA(cosout);
form.setXFA(xfaout);

最佳答案

设置过滤器:

COSStream cosout = new COSStream(new RandomAccessBuffer());
cosout.setFilters(COSName.FLATE_DECODE);

这将设置 Flate 过滤器,这在大多数情况下都非常好。

关于java - PDFBox 臃肿的 PDF 文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26726083/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com