Possible NullPointerException
If you want to get the stream bytes of the images, you need a reference to the image, not just the stream.
For in-line images, we'll probably have to create a new stream for the reader.
Not all the xobjects have resources and that was causing a NPE.
Simplification.
New method to reset the number of columns.
Missing @since tags.
Some new names
Support for visibility expressions in OC membership dictionaries.
Wrong @since and missing comment.
Optional Content usage
Missing @since tag
Changed names into Strings (as is the case with the other usage methods)
A xobject is or extends a PdfDictionary.
Added methods to get the text rendering matrix and the graphics state.
Added a tool that is able to convert a Tagged PDF into an XML file.
To achieve this minor changes to the PdfContentStreamProcessor were needed.
Added a RenderListener that finds a rectangle that fits the text.
Forgot to escape the XML.
If the reference to an Image stream is passed, you don't need to pass the stream.
Introducing an image object that can be used by ImageRenderInfo to pass the image dictionary and the image bytes.
Adding a comment block
unscaled dimensions should not be exposed outside package
minor documentation updatese
Replacing getStartPoint and getEndPoint with getLineSegment.
You can choose which line segment: the baseline, the ascent line, the descent line.
Added methods to get the font size and the font name that is used inside the PDF.