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);