Support for timestamps and ocsp (timestamp support inspired by contributions by Aiken Sam and Martin Brunecky).
PdfPKCS7: Added the RIPEMD algorithm.
AcroFields: Some tools produce invisible signatures without an entry in the page annotation array.
SpecialSymbol: If PHI is 'F' the phi should be 'f'.
Removed some unnecessary e.printStackTrace occurences.
Changes made by Xavier Le Vourch
Different code clean up operations
Unbalanced saveState()/restoreState() calls to PdfContentByte now raises an IllegalPdfSyntaxException on close() and newPage()
PdfContentByte: Removed clear() from the reset() function as an exception is thrown if the list is not empty
Added new static method convertException() in ExceptionConverter so that unchecked exceptions are not translated into an ExceptionConverter wrapper
Updates in the scripts to include the bctsp jar (BouncyCastle).
Changes made by Kevin Day
Fix bug where computing average font width could result in divide by zero if font contains no glyphs with widths specified
Fix bug that caused end of file errors when parsing an object at very end of an object stream.
Changes made by Mark Storer
Updated PdfContentByte with a new sanityCheck function that checks for various mismatched content operators.
When reading a PDF, use static PdfNull, PdfBoolean, AND PDFNAME objects when reading a 'direct' object. PdfReader now caches all its public static PdfNames in a map so PdfReader can get the appropriate one. This should put a noticeable dent in our memory usage, at the cost of a little memory and some initial processor time.
Added several convenience functions so folks don't have to directly call PdfDictionary methods so often. Also added a bunch of public static PdfNames used only by Structure.
Bugfix: the highest possible generation number was too high.
Changes made by Bruno Lowagie
Support for rowspan in PdfPTable; a joint effort of Bruno and Jean-Philippe Gravel (See SF patch #2770723)
Rollback of the "C *= 1.02" and "tagged PDF" changes by Mark Storer (*). The side effects of the "C *= 1.02" change caused one bug that in the meanwhile was already fixed; but also one I couldn't fix (#2781267). I don't want to risk more bugs for only 2% gain in speed. The idea of PDF objects keeping references and vice versa is good, but should be tested more thoroughly; especially in the case of the manipulation of partially read PDFs. As a result of the rollback, the Tagged PDF changes were also removed, because of 2 reasons:
the changes didn't work anymore after the rollback.
the changes broke existing examples: see bug #2774406
Preparing for RichMedia support; due to the changes mentioned above, see (*), the release of the RichMedia functionality is postponed.
Updating the XMP stream assumed that there were three child nodes: an xpacket start PI, an xmpmeta tag, and an xpacket end PI. However: somebody posted an example that didn't have the xpacket PIs. This changes makes sure the PIs are added.
Static final Strings for the XMP Processing Instructions.
Adaptation of findFieldName so that it also works with XFA forms that don't have an AcroForm counterpart (anonymous patch #2797362)
Introduction of GENERATION_MAX, the highest possible generation number.
New method setMarginMirroringTopBottom() allowing margin mirroring for top/bottom margins.
Suggestion by Hansjoerg Oppermann (patch #2796426) to make MultiColumnText respect top/bottom margin mirroring
New method setInitialLeading() that allows you to set the initial leading for PdfDocument.
It's now possible for a PdfPTable to have footers on all pages, but the last using PdfPTable.setSkipLastFooter(true). See question by Arshish Maneckji on the mailing list March 14, 2009.
Support for setting the developer extension and extension level.
Introduced the official developer prefix for iText: ITXT
PdfStamper updates the producer info so that you can now see that iText was used to manipulate the PDF
When a PdfXConformanceException is thrown because a font isn't embedded, the exception now tells you which unembedded font caused the exception (Feature Request #2691830)
Bug report #2691501: when inspecting a PDF, the value telling you if the PDF was rebuilt is negated without any reason.
Bug Tracker #2697933: not all characters are allowed in XML, so the method escapeXML was updated.
NullPointerException when loading fonts on Windows Vista (fix posted by anonymous on the SF tracker: #2728105)
setGroup should throw an error for PdfImportedPage (bug reported on SF #2745421 by Paul Jones)
Bugfix: the setInTable method in the RtfList class fails to call the setInTable method of its RtfListLevels. Patch provided by anonymous in the SF bug tracker #2776181.
Bug Tracker #2790601: PdfDocument.fitsPage(PdfPTable, float) does not take into account the value of spacingBefore (submitted by Mario Däpp)
Bugtracker #2793046: named destinations using strings and names interfere (fix originally by Felix Pahl, but adapted by Bruno Lowagie)
Bugfix by Wang Xusheng on the mailing list (March 16, 2009): possible NullPointerException avoided when adding OCG with PdfStamper.
Bugfix: Avoiding another NPE for OCGLocked when adding layer to an existing PDF document
Bigfix: the regression for the font-size in HTMLWorker reported by Tim Burt (mailing list April 2, 2009) was caused by mixing px and pt. As we work more with points than with pixels, I chose to change everything into pt (px still works and behaves exactly the same as pt).
Fix for (what is probably) a float rounding problem reported on the mailing list by Miroslav Gregan (April 15, 2009).
Bugfix RtfMapper: fixed by Benjamin Cabe (mailing list April 15, 2009)
Bugfix RtfList: The leading was being ignored by ListItem (bugfix by Anonymous SF Tracker #2806825)
Bugfix: the fullscreen pagemode gets lost when getting the viewer preferences.
Bugfix: BadPassWordExceptions were "eaten" by InvalidPdfExceptions
Bugfix: avoid that ALIGN_RIGHT or ALIGN_CENTER have any effect if people use "glue chunks" (horizontal separators).
Bugfix: copy paste error concerning newline/carriage return (posted on the mailing list by Gregor Kofler on May 28, 2009)
Fixed a bug reported by Jeff Kelm on the mailing list (May 28, 2009): empty chunks are considered "not empty" because the hyphenation is unnecessarily set.
Bugfix by Mike Liston: apparently the transparency wasn't properly set (1 should have been 0xFF)
Hack: Valid jpeg with invalid ICC data throws exception (Sam Gibson SF Tracker #2804586)
yLine is now set automatically for irregular columns. The value corresponds with the upper Y value of the left line of the irregular column.
A PdfImportedPage always created a new entry in the xref table. That's not always necessary. This change makes sure PdfImportedPage no more causes entries like this: "0000000000 65536 n"
Suggestion by Jose A. Rodríguez on the mailing list (May 11, 2009): the value of a field can also be a stream!
Problems with JNLP reported on the mailing list by Tobias van Treeck; this should be tested!
Based on the mail sent by Pauli Borodulin (April 5, 2009), <p> is now treated the same way as <div> by HTMLWorker; as a result one of the createParagraph methods could be removed.
A deprecated method to parse a number used for a length was removed from HTMLWorker.
HTMLWorker: Added CSS_KEY_PADDINGLEFT as described in SF Tracker #2802482 (by Fucutush). I didn't apply the code contribution literally. I might have forgotten something. I also don't know if this really solves a problem.