我有一个关于 iText 在 formflattening 时的行为的问题,并且在网络上没有找到任何东西(或者只是未回答的问题)。这就是我所做的:
stamper.setFormFlattening(true);
生成的大小立即从例如 207kb -> 172kb 减小。直接执行
stamper.getReader().removeUnusedObjects();
没有效果。如果我在文本编辑器中打开 PDF,我仍然可以在该结果文件中找到许多未引用的对象。如果我然后在“新”压模中再次加载 PDF 并调用
stamper.getReader().removeUnusedObjects();
Pdf 减少到 99kb,并且找不到未引用的对象。所以这是我的问题:是否可以立即(无需从文件或内存中重新读取 pdf)从 PDF 中删除所有未引用的对象?对我来说,似乎在第一次运行中,所有直接与字段相关的对象都被删除了,但这些对象的间接引用字典没有被删除。