私の知る限り、PDF はオブジェクトへの参照をサポートしています。たとえば、ドキュメントで同じ画像を 100 回使用すると、各場所で同じ画像を使用するように最適化でき、PDF サイズを大幅に節約できます。
PDF は全ページのデータで同じことをサポートしますか? はいの場合、どうすればiTextライブラリでそれを行うことができますか?
私の問題は、約 500 ページの巨大なドキュメントがあり、2 ~ 3 ページごとに、他の PDF ドキュメントから読み取った同じテンプレート ページを挿入する必要があることです。コードは次のようになります。
protected static void addAppendix(PdfWriter writer, Document document, InputStream appendixStream)
throws IOException {
PdfContentByte cb = writer.getDirectContent();
PdfReader reader = new PdfReader(appendixStream);
for (int idx = 1; idx <= reader.getNumberOfPages(); ++idx) {
document.newPage();
PdfImportedPage imported = writer.getImportedPage(reader, idx);
cb.addTemplate(imported, 0, 0);
}
writer.freeReader();
}
ただし、特に付録に大きな画像などが含まれている場合は、PDF サイズが大幅に増加します。ドキュメントのサイズを最適化する方法はありますか?