iText 2.1.6



  • Changes made by Paulo Soares
    • 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:
      1. the changes didn't work anymore after the rollback.
      2. 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)
    • Introduction of an IllegalPdfSyntaxException
    • Simplified the DocumentException class
    • Added a toString method for imported links
    • Fixed bug #2689839: PdfStamperImp doesn't add xmp:ModifyDate reported by Bart Hanssens
    • 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.