Hi All, I’ve just uploaded our work on PDF object streams. If accessibility is enabled and PDF version 1.5 has been selected in the config file, then the structure tree will be stored in object streams. Support for cross-reference streams (a successor of the cross-reference table that appeared in 1.5) has been implemented in order to be able to address objects stored in object streams.
The amount of space saved can be substantial, as much as 70% on a 20-page document. The changes are relatively localized and mostly affect the PDF packages. While there are significant refactorings, there is not a lot of new code. Therefore I’m inclined to handle this using lazy consensus; So if nobody objects within 72 hours, I’ll merge the branch back to trunk. Side note for those using the PDF Images plug-in: once the branch has been merged, the plug-in will have to be modified so that PDF objects do not output the obj/endobj wrapper themselves if they are indirect. This concerns the PDFBoolean and PDFString classes in o.a.f.render.pdf.pdfbox. Also, AbstractPDFStream now uses composition rather than inheritance for its dictionary, which requires changes to PDFBoxAdapter. Once the PDF Images plug-in has been moved under the umbrella of the XML Graphics project, we will upload the necessary changes. Thanks, Vincent