【发布时间】:2013-11-08 06:47:09
【问题描述】:
据我所知,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 的大小,尤其是在附录包含一些大图像和内容的情况下。有什么办法可以优化我的文档的大小吗?
【问题讨论】: