History
Releases

iText 2 unknown
iText 1.4 March 3rd, 2006
iText 1.3 april 6th, 2005
iText 1.2 january 7th, 2005
iText 1.1 november 16th, 2004
iText 1.02 (b) february 2004
iText 1.01 september 2003
iText 1.00 june 2003
iText 0.99 may 2003
iText 0.98 march 2003
iText 0.97 march 2003
iText 0.96 october 2002
iText 0.95 september 2002
iText 0.94 august 2002
iText 0.93 (b) july 2002
iText 0.92 april 2002
iText 0.91 april 2002
iText 0.90 march 2002
iText 0.89 march 2002
iText 0.88 march 2002
iText 0.87 march 2002
iText 0.86 march 2002
iText 0.85 february 2002
iText 0.84 february 2002
iText 0.83 february 2002
iText 0.82 february 2002
iText 0.81 january 2002
iText 0.80 january 2002
iText 0.73 december 2001
iText 0.72 december 2001
iText 0.71 december 2001
iText 0.51 - iText 0.70 september - october 2001
iText 0.50 August, 13th, 2001
iText 0.41 summer 2001
iText 0.40 spring 2001
iText 0.39 december 2000
iText 0.38 november 2000
iText 0.37 October 5th; 2000
iText 0.36 September 11th, 2000
iText 0.35 August 8th, 2000
iText 0.30 February 14th, 2000
rugPDF 0.25 December 8th, 1999
rugPDF 0.20 December 1st, 1999
rugPDF 0.11 - rugPDF 0.19 November 3th - December 1st, 1999
rugPDF 0.10 April 6th, 1999
rugPDF 0.01 - rugPDF 0.09 March 11th 1999 - April 5th 1999



Changelogs

iText 2 (?)
    2008-01-25: iText 2.0.8
  • Changes made by Paulo
    • Encrypted docs with wrong keys now fail fast.
    • Functionality to extract all the names from a font (Thimo Seitz).
    • Metadata can now be added to PDF and RTF at any time, not only before opening the document. HTML generation will still have the old limitation.
    • PdfEncodings: the winansi encoding didn't process the char \u00a0.
    • PdfGraphics2D: addition of hyperlink capability when drawing a string in PDFGraphics2D object. The url is submitted using a RenderingHint. The renderhint is initialized with a HyperlinkOFF value, if a hyperlink should be added setRenderingHint with the url is called during paint of the link. After the link is painted setRenderingHint with null value should be called. The Hyperlink Rendering Hint is present at all times in PDFGraphics2D object; it can be found by iterating all keys and using the toString function.
    • TIFF images:
      • Fix for invalid array sizes.
      • Some tiffs have a bogus value in the ROWSPERSTRIP tag.
    • PdfSmartCopy: PdfSmartCopy also compares the dictionary values up to a nested depth of 10; lifted the restriction to compare templates.
  • Changes made by Xavier
    • Code cleanup: adding missing @since tags
    • directory structure reorganization: core and swing subdirectories in src and test.
    • ANT scripts:
      • Use of x.y.z-SNAPSHOT in Document.java ITEXT_VERSION and in jdiff output
      • more consistent use of ant property files.
      • use jdk 1.4 api for javadoc links
      • jdiff task was using older file in copy without overwrite arg
      • itext.test.classpath property needs to be setup before calling javac
      • ant delete target added
      • new ant targets for rtf parser support: compile.rtf, jar.rtf and test.rtf
      • javadoc commands use 'maxmemory' argument instead of '-J-Xmx'
      • maven bundle updates: lower case names to match artifact and javadoc jar added
      • added "jar" dependency for sign.jar to make sure latest changes are picked up
  • Changes made by Mark
    • memory increased for javadoc task
    • Preparation for the import of the new rtf parser code.
    • First junit test for the RTF package. Also updated the test.xml so that the test.rtf depends on the jar.rtf.
    • Fixed a bug with style numbering. The style number is now only set after the inheritance handled, so that the default styles are always added before any user styles.
  • Changes made by Bruno
    • Added an extra constructor for List (suggestion by Alexis Pigeon)
    • Changed (package) private methods/variables into protected or even public on many places in PdfDocument.
    • Introduction of BadPasswordException
    • Introduction of the 'numberStyle' concept for Section titles (implemented by Bruno after a question on the list by Friedhelm Hellerhoff).
    • Introduction of Element.isContent() and Element.isNestable() as suggested by Kris Raney. Indicates if an element contains real content and if it can be nested.
    • Introduction of the LargeElement interface. Objects implementing this interface (PdfPTable, Table, Section and Chapter) are considered to be 'dangerous' in terms of memory consumption. The LargeElement interface offers a way to add the object to the document (multiple times) before all the content has been added to the large object. Every time the large object is added to the Document, part of the object's content is flushed.
    • Solved a bug in the old Table class (actually in PdfTable) that occurred with repeating headers in very specific situations.
    • Added a rewrite of RUPS (Reading / Updating PDF Syntax) to the project. This also involves adding new ANT scripts, a new JNLP and new jars: SUN's PDF Renderer and Dom4j (these jars are not needed for the core iText; only for RUPS).
    • After a mail communication with Brian Burkhalter (SUN), the license notices for the classes derived from JAI code was updated.
    • The license notices for TIFFConstants were updated because the list of TIFF constants was originally made by Silicon Graphics.
    2007-11-28: iText 2.0.7
  • Changes made by Paulo
    • TiffImage: Deflate compression can also be identified by type 8.
    • TiffImage: Added support for fill order in tiff.
    • PdfDocument: Indentation right was missing the image offset.
    • Barcode128: The AIs from 7030 to 7039 couldn't be used.
    • Page number added to "Invalid page number" exception message
    • Supported button replacement when several buttons have the same name.
    • PdfGraphics2D: A null transform should draw at 0,0 (reported on the mailing list by Phil Cope Nov 6, 2007).
    • PdfGraphics2D: Keep the transform immutable in drawImage() (suggested on the mailing list by Mark Storer)
    • PdfReader: Some producers don't have a document id with encrypted documents.
    • Fix: Invalid images don't throw an exception in setField()
    • Fix: The non-breaking space was being incorrectly translated in pdfdocencoding.
    • Fix: PDF/A docs should have version 1.4
    • Fix: Documents with PDF/A conformance must have the CIDset key in the font descriptor for Unicode TrueType fonts.
    • Removed the duplicated bit reversal code for TIFF.
  • Changes made by Xavier
    • Javadoc updates
    • Toolbox error dialog now has version number in title. Side effect: "java -jar iText.jar" is enough to get the version number. If the toolbox jar is present, the GUI can display the versions numbers using "Help->Versions". If the toolbox is not there, the iText version is in the dialog title. This may help with customer support queries. Also make sure the iText version and toolbox error are also displayed for headless mode.
    • Code cleanup: e.g. serialVersionUID added to remove eclipse warning
    • Bouncy Castle update to v138
    • ExtendedColor is now an abstract class
    • Changed some names of constant to meet the Java naming conventions.
    • Added junit tests for iText (the iText examples)
    • Introduction of a jdiff task
    • Added extra info for deprecated methods
    • added @since tags to all new methods
    • Reorganization of the ANT scripts
    • Fully configurable signing
  • Changes made by Bruno
    • XmpWriter: Typo in Processing Instruction (reported on the mailing list). Removal of unnecessary space characters.
    • Renamed a class: the Greek 'numbering' isn't really a 'numbering'; in analogy with the RomanNumberingFactory vs the RomanAlphabetFactory, it's better to talk about GreekAlphabetFactory.
    • Added a number of convenience methods in PdfEncryptor as suggested by Bruno Waes
    • Reorganization of the ANT scripts
    • Added extra info for deprecated methods
    • The iText.jar is now signed with Bruno's personal CAcert certificate.
  • Changes made by Mark
    • Color fixes to the RtfParser by Howard Shank
    • Added extra info for deprecated methods
    2007-10-05: iText 2.0.6
  • Changes made by Paulo
    • Solved a problem with NameTree: in iText 2.0.5, it was possible to create unsorted PDF Name Trees.
    • Class ColumnText: it is now possible to have better control over the 'first line' behavior.
    • PDF417: removed the optional macro field segment count. Some readers can't process it.
    • Fonts: more properties can be extracted from fonts: sub/superscript size and position, underline/strikethrough thickness and position.
    • Extra check in PdfContentByte: very small font sizes can crash some viewers.
    • Fix: PdfReader in partial mode misbehaved in PdfStamper.
    • Fix: iText now scales the WMF font size if necessary.
    • Fix: an error was thrown if the /Annots array had a null element.
    • Fix: Cp437 must also output the control codes (<32).
    • Fix: underline or strikethrough fonts could leave a visible line in the wrong place when spacing before was applied.
    • Fix: Checkboxes should behave as Radioboxes specially concerning the Opt array
    • Performance: avoid the creation of new fonts.
    • Support for JPEG2000 images (.jp2 and .j2k)
    • Added support to set the button image with images coded in base64. This is particulary important for XFA forms where the image may be coded in the dataset.
  • Changes made by Bruno
    • All lines in a Cell (old Table class) were assumed to have equal heights. This isn't always the case. This problem was reported by Chad Loder on the mailing list.
    • A lot of RTF functionality was broken in iText 2.0.5. This is fixed in iText 2.0.6.
    • Some indentation bugs were fixed in iText 2.0.5; but by doing so a new indentation bug was introduced. The bug was reported on SourceForge #1797927 and has now been solved.
    • Extra null checks in Font and Phrase; changes to the copy constructor of class Phrase.
    • For what it's worth: I changed single quotes into double quotes in XmpWriter
  • Changes made by Xavier
    • Code cleanup in class Jpeg2000
    2007-09-09: iText 2.0.5
  • Changes made by Paulo
    • Added stamping capabilities for PdfCopy (contributed by Ryo Nakamura; optimized + support for adding annotations by Paulo)
    • Added support for PDF/A-1
    • Added support for icc profiles in jpeg
    • Added support for strikethru in HTMLWorker
    • Added support for the rgb() color notation in WebColors
    • Outlines can be set all at once in PdfWriter. Note that outlines set by other means, like Chapter, will be overridden.
    • PdfFileSpecification: file parameters and mime type can be set
    • Better password restriction control
    • XML parsing: whitespace is significant and must be processed.
    • Field flattening could cause a class cast exception with broken PDFs.
    • Tiff: broken tiffs with an invalid IFD pointer returned one less the real number of images
    • Tiff: TIFFTAG_JPEGIFOFFSET can be optional
    • PdfDate: dates in W3C format in the metadata were different than the PDF dates in the Info dictionary
    • Bugfix concerning the retrieval of the user password when owner password is known
    • Memory optimizations in class Phrase
    • RandomAccessFileOrArray: it's very expensive to open a memory mapped file and for the usage pattern of this class in iText it's faster the next re-openings to be done as a plain random access file
    • Preserve hyperlinks in PdfImportedPage (Michael Schierl)
    • Optimization of the DPI rounding in BMP, PNG and TIFF images
    • Removed some superfluous synchronized method modifiers.
    • Several improvements in memory fragmentation and thread locking in processing font data; some of the improvements were suggested on the mailing list and implemented by Paulo; one suggestion was sent to Bruno by Actuate.
    • PdfGraphics2D: jpeg compression is done with imageio (instead of with com.sun.image.codec.jpg.JPEGCodec)
    • PdfGraphics2D: partial acceptance of some extra functionality in drawString contributed by John Hellerud
    • PdfGraphics2D: enable bold simulation as proposed by John Hellerud, but with with extra check of the BaseFont
    • PdfPageLabels: added a series of null checks
    • PdfReader: fix to ascii85 decode (fixed by Aiken Sam)
    • PdfReader: page dimensions were assumed as direct objects
    • PdfSmartCopy was too liberal in comparing streams. Form XObjects (templates) are not candidates for comparison anymore.
    • FdfReader: extra check for the FDF key
    • PdfPageLabels: better page label options
    • Utilities: simplification in toURL()
    • RTF: bugfix for hanging indent (fixed by Tim Newsom)
    • RTF: added support for images in shapes of the picture frame type (contributed by Tim Newsom)
  • Changes made by Bruno
    • Added support for custom names for document-level JavaScript actions in the Name Dictionary.
    • Fixed a series of indentation bugs reported by Janis Achenbach (fix by Bruno in more than one try; tested by Janis).
    • Fixed a page size/page margins problem in PdfDocument
    • A Copy/Paste error made that DUPLEXFLIPLONGEDGE was not seen as a possible value for DUPLEX.
    • FontFactoryImp: parsing the size of a font was not done correctly (fix by Janis Achenbach)
    • Bugfix: font propagation affected Phrases/Paragraphs that were reused.
    • Bugfix: extra space after a Paragraph affected the indentation.
    • Bugfix: Paragraph.setKeepTogether(true) affected the indentation and doubled the spacing after a Paragraph.
    • Update of the toString() methods in PdfDictionary and PdfStream; for instance: it no longer says 'Dictionary of type: null' for Dictionaries without a /TYPE key.
    • XMP: the 'Subject' of PDF metadata is now also added as a Description in the XMP metadata (Suggested by Seung Hyun Park)
    • XMP: added support for adding XMP metadata to the page dictionary of each page
    • BaseField: if you are using a template as icon, the state of the content of the template can be affected by the background color of the button (probably also by other properties of the button appearance).
    • PdfPageLabels: minor memory improvement
    • Made iText more tolerant towards the type of PDF object that is accepted as value for the /TYPE key.
    • Bugfix: table threw an IndexOutOfBoundsException in two specific cases that almost never occur
    • Bugfix: List.add(Object o) didn't always return the expected value (suggested by Dhruba Bandopadhyay)
    • Bugfix: if an image is new and it's a WMF image, the template has to be read, even if it's not null.
    • BuildTutorial: made the switch from CVS to SVN (suggested by Thomas Tampe)
    • Updated license information in the iText.jar; extra info about the files in iTextAsian.jar
  • Changes made by Xavier
    • Removal of unused imports
    • Removal of useless redefinition of open() in PdfCopy and RtfWriter
    • Update from BouncyCastle 1.35 to BouncyCastle 1.37
    2007-06-04: iText 2.0.4
  • Changes made by Xavier
    • We have moved from CVS to SVN! Xavier is also starting a JDK 1.3 and a 1.5 branch for iText.
    • BarcodePDF417: use StringBuffer instead of concatenating strings. side effect: code now compiles with jdk13.
    • Dynamic generation of the MANIFEST.MF file (change in the ANT script)
    • Several code clean up operations
  • Changes made by Paulo
    • TIFF: broken tiffs may not have the next IFD pointer
    • HTMLWorker: added ImageProvider to be able to select arbitrary images based on the "src" property
    • PdfPKCS7: the X509 parsing code for the sub-filter adbe.x509.rsa_sha1 was taking the certificates from the wrong place.
    • added the option to not use memory mapped files
    • named destinations are treated as binary allowing the eventual localization
    • RtfParagraph: changed a member from private to protected to be able to compile RtfListItem
    • Several javadoc corrections
  • Changes made by Mark
    • Modified the filterSpecialChar method to write directly to the OutputStream (Thomas Bickel).
    • RtfDocument: just use getBytes for String to byte[] translation.
    • RtfNewPage: made NEW_PAGE constant public
    • Added support for different bullet characters and for spacing before/after list items. The idea for the solution was suggested by Felix Satyaputra.
  • Changes made by Bruno
    • The organization of the files (lib directory) has been changed; the jars needed to compile iText and the tutorial examples are now in SVN.
    • Changes to the ANT scripts due to the move from CVS to SVN.
    • Clean up of the ANT scripts
    • New documentation: how to get the code from SVN, how to create an Eclipse project, how to use the ANT scripts
    2007-05-25: iText 2.0.3
  • Changes made by Paulo
    • AcroForms: make sure there 's always a /DA key
    • Digital Signatures: fixed the "n miscellaneous changes" message in Acrobat with signatures when "Compute Modifications List" was called
    • Digital Signatures: support for Adobe style CRL
    • Digital Signatures: better certificate parser
    • Digital Signatures: always create an appearance even if it 's an invisible signature
    • Encryption: change public key encryption permissions
    • Encryption: better enforcement of PDF restrictions
    • fix broken TIFF with incorrect TIFFTAG _STRIPBYTECOUNTS
    • BaseFont: option for not throwing an exception if the font name is invalid
    • Barcodes: extended code39 had problems with checksum
    • BarcodeDataMatrix: removal of some unused variables (+ bugfix)
    • HTMLWorker: SUB and SUP take the font size into account for the positioning
    • PageSize: typo for size ID-3 corrected by Andrew Binstock
    • PdfCell: fixed a bug with lists in cells (contributed by Jeremy Torbert)
    • PdfCopy: /Type can be an indirect reference
    • PdfGraphics2D: support for TextAttribute.WIDTH
    • PdfPatternPainter: fixed a NullPointerException
    • PdfStamperImp: fixed a NullPointerException with incorrect annotation
  • Changes made by Bruno
    • Introduction of a class named Utilities with some static methods that are used throughout the library
    • Massive reorganization of the 'basic building blocks' code. Deprecation of methods such as leading(), height(), width(),... in favor of getLeading(), getHeight(), getWidth(). Deprecation of constructors like Anchor(Properties attributes) in favor of methods in a new class called ElementFactory. Removal of all the isTag() methods.
    • Bugfix in GreekList (auto indent wasn't working), and reorganization of the method to set the list item to lower/upper case.
    • Removal of the iText toolbox. The toolbox is now available as a separate project with a different license. See http://itexttoolbox.sourceforge.net/. A class ToolboxAvailable checks if the toolbox.jar is available (and run the toolbox if possible).
    • Removal of EPS support. The code that was used from SUN's PostscriptDemo had ambiguous license information. Therefore it is better to look for an alternative.
    • Update of some references to an old version of the PDF Reference. (A more thorough update would be nice.)
    • BidiOrder: applied correct license info
    • SimpleXMLParser and IANAEncodings: clarifications in the copyright notices.
    • Removal of all references to RC4. We now use the term "standard encryption" in constants and ARCFOUR (Alleged RC4) for algorithms.
    • PdfGraphics2D: Daniel Harvey submitted a patch that changes the way PdfGraphics2D deals with polylines.
    • Support for Lang Alt in XMP contributed by Armin Häberling
  • Changes made by Mark
    • A major update to the RtfWriter2 (and all its helper classes); provided by Thomas Bickel.
    • Fixed a bug where fonts/colors only used in the header or footer were not being registered before the respective tables were written to the RTF document.
    • Fixed a REALLY ugly bug where only the red colour component was being set. Thanks to Raffaele Gambelli for finding it.
    • Document settings: Added settings to control the image generation, so that correct images for Word 2000, 97 and Mac can be generated. Also added shortcuts to set all required options for certain Word versions.
    • Images: Updated the image scaling code to improve the conformance with the PDF output. That means that images will now be displayed at 72 dpi by default and not at 96 dpi any more. This now completely mimicks the PDF output.
    • Images: Added support for GIF images as Word is happy as long as image type PNG is written. Thanks to Raffaele Gambelli for pointing that out.
  • Changes made by Xavier
    • Code cleanup
    2007-04-13: iText 2.0.2
  • Changes made by Paulo
    • Added some convenience methods in PdfArray and PdfDictionary
    • intHashtable: next() didn 't return the right object
    • AcroFields: short names are recognized in all methods if the form is XFA
    • PdfGraphics2D bugfix: getComposite() will return what was set in setComposite()
    • Barcodes: pattern caching to improve speed
    • Barcodes: added DataMatrix barcode support
    • PdfName: added the property user units
    • Type3Font: more flexible glyph definition (contributed by Kevin Knowlden)
    • iText now makes a distinction between the user and owner password
    • bugfix: hyphenation could throw an exception if the split character was not a space
    • javadoc corrections in CFFFontSubset, PdfArray, PdfDashPattern, PdfDictionary, PdfString
  • Changes made by Xavier
    • Made the source code ASCII only to fix encoding problems
  • Changes made by Bruno
    • Lists: removal of some System.out debug code
    • The inner class to handle indentation was made static in PdfDocument
    • HTMLWorker: avoiding a NumberFormatException for numeric attribute values (quick and dirty fix)
    • Files altered with PdfStamper get a fileID
    • SimpleBookmark: better exception message
    • SAXiTextHandler: moved addImage to an separate method
    • iText toolbox: added a new tool to compress/decompress page streams
    • PdfEncryption/PdfReader: added some convenience methods contributed by Michael Schierl. These convenience methods make it easier for tool builders to work with encryption.
  • Changes made by Mark
    • RtfDocument: made the filterSpecialChar method resilient against null Strings
    2007-03-07: iText 2.0.1
  • Changes made by Paulo
    • JPG: fix for the Adobe Application-Specific JPEG Marker length (fix by Cory Lewis)
    • PdfCopy: fixed the internal links to other pages. Uses a balanced page tree.
    • PdfSmartCopy: the stream keys are also compared
    • PdfReader: added method removeUsageRights()
    • PdfReader: added method getCertificationLevel()
    • AcroFields: new nodes will be created in the datasets section if needed (XFA)
    • AcroFields: made some methods and fields public
    • PdfPKCS7: more flexible algorithm decoding
    • AESCipher: fixed the exception throwing when using AES encryption
    • Removed debug code from several classes
  • Changes made by Bruno
    • In PdfDocument, all indentation variables are now grouped in an (inner) Indentation object. For the moment, this doesn't change anything to the functionality, but it will be helpful in the future. I'll add some methods to the Indentation object to reset the indentation, change the indentation,...
    • ExceptionConverter: added attribution to the original author of the class.
    • Support for multipliedLeading for paragraphs when using document.add(). Formerly this only worked in ColumnText.
    • Replaced IntHashtable by ACME with code based on class IntHashMap licensed by the Apache Software Foundation.
    • SimpleXMLParser: complete refactoring operation
    • EntitiesToUnicode now also supports entities like &#x148 ;or &#8222.0; The corresponding code was removed from the simple parser.
    • EntitiesToUnicode bugfix: decode entities in Strings: chunks of strings were eaten
    • IanaEncodings: Xerces license update.
    • LPR and LPRClient: sorry, the original developer of this code didn't respond to numerous mails. Because of possible IP issues I had to remove this code.
    • Some compilers didn 't want to compile class OptionArgument. Shoaib Gauhar posted a solution on the mailing list.
  • Changes made by Mark
    • Added support for upper and lowercase lettered and roman lists to the RtfList.
    • RtfTOCEntry now uses filterSpecialChar, should fix encoding problems in the TOC default text.
    • Color values are now generated correctly in the RtfShapeProperty.
    • Fixed a bug where list numbering was getting lost after returning from a sublist.
    • Font settings are now reset to their defaults at the start of paragraphs and phrases.
    • Charset information is now propagated correctly through Font.difference()
    • Added support for the firstLineIndent property of the Paragraph, allowing a different indentation for the first line of a Paragraph.
  • Changes made by Xavier
    • Code cleanup in the basic building blocks (interface Element, TextElementArray was already implemented by parent)
    • Replaced " " by ' ' in MarkedSection.
    • Code cleanup in several classes
    2007-02-15: iText 2.0.0
  • Changes made by Paulo
    • Certificate encryption. This change has a huge impact on projects that use encryption. All com.lowagie.bc.* packages were removed from the iText jar. You now have to include two BouncyCastle jars into your CLASSPATH.
    • Better certificate parser
    • digital signatures: more certification options.
    • PdfTemplate and PdfAppearance can now be statically created. This also fixes some problems when using PdfStamper where getDirectContent() is not allowed.
    • Another hack to read broken PDF files with strange version numbers in the header.
    • Another fix to read broken tiffs
    • PdfGraphics2D: null handling for hints
    • Simplification in PdfPRow
    • problem with nonbreakingspace and softhyphen: there aren 't any metrics for them in the AFM files. Hotfix by Bruno; more thorough fix by Paulo.
    • RtfWriter and RtfWriter2: avoid calling flush() after closing the stream
    • Bugfix: lest strict object type was needed during signature verifying
    • Bugfix: form flatten failed with an empty appearance dictionary
    • Bugfix: class FontSelector: newline bug was fixed
    • Bugfix: class MappedRandomAccessFile: finalize() would try to close a null channel
  • Changes made by Bruno
    • Added full support for portable collections (PDF 1.7)
    • Added support for GoToE actions (PDF 1.6)
    • New class PdfSmartCopy by Michael Neuweiler and Bruno; improved by Paulo. It needs more CPU and memory than PdfCopy, but generally produces files with a reduced file size (compared to the file size after concatening PDFs with PdfCopy).
    • Lists no longer need a symbol indent. iText can calculate the indentation automatically; with the option of each item having its own indentation, or all items having the same (maximum) indentation.
    • Lettered lists and greek lists can now have more than 26 or 24 items. z is followed by aa, ab, ac,... zz is followed by aaa, aab, aac,...
    • Added a new static method in PdfPageLabels that gives you a String array with all the page labels.
    • Added a method to set the NeedAppearances entry form an AcroForm
    • Bugfix: if a field in an AcroForm is required, its value should not be set; otherwise the form can be submitted without entering a value (the empty string that was set by iText is sent to the server).
    • Solved a problem when adding WMF or PS with PdfStamper (a more thorough solution was provided by Paulo afterwards)
    • Bugfix: PdfPTables wrapped in a Paragraph were still causing troubles with newlines and alignments
    • ChapterAutoNumber used a static value to keep the chapter number, this wasn't a good idea; I changed this.
    • Added support for Paragraph.setFirstLineIndent in document.add(Paragraph p); formerly this was only supported in combination with ColumnText.
    • Extra method to add the name (NM) of an annotation
    • Bugfix: class Barcode: inkspreading was not set
    • PDF 1.7 brought new preferences concerning printing (Duplex, Simplex, number of copies,...). All these new preferences are now implemented, including some other (1.6) preferences that were overlooked in previous iText versions. The constants defining the preferences have changed, and there's a new method to set key/value preferences (instead of setting the preferences bitwise). Because of these changes, you will have to recompile your own source code if you want to upgrade to iText 2.
    • iText and SEAM:
      iText is now being used in jBoss SEAM, and after informing with Norman Richards (who developed the PDF package in SEAM) I added some methods to iText:
      • A helper method for jBoss SEAM :convert a String with entities to a normal string (with unicode characters)
      • ElementTags: You can now convert an alignment String to an alignment value
      • PageSize: there's a method in the toolbox that translates a String to a Rectangle, but I rewrote a method by Norman Richards that has more potential. My method could only translate Strings like "A4" and "LETTER" to a corresponding Rectangle; with Norman's method you can also use Strings like "400 600". I adapted the method so that "166.66 333.33" are also allowed.
    • Entities: Integer values were changed to Character values (because that makes more sense)
    • I completely revised the code in DocListener/PdfWriter/PdfDocument. This means that:
      • I changed the order of the methods these classes, and added extra comments to the source code, so that we now have a better view on what every method does. The readibility of the code has improved. This is a work in progress. More changes will follow in iText 2.0.1.
      • Method clearTextWrap was moved from DocListener to PdfWriter/PdfDocument. I'm not sure what the method does, but it was PDF only, so it didn't have to be in DocListener.
      • Except for the ElementListener inferface (a super-interface for DocListener), no method in DocListener throws a DocumentException anymore. This was a result of a suggestion made by Andrew Binstock concerning the newPage() method.
      • I made different new interfaces that make it more clear how to set encryption, viewer preferences, PDF/X Conformance,...
      • When the PDF version is set automatically to a value that is higher than the default (for instance because new functionality was used), we now check if the current version isn 't higher already. It is now also possible to change the version after the header was written. In this case the version number is added to the catalog dictionary.
      • The method getMaxSize wasn't used anyhere; it may be a remains of the Erwin Acherman code (July 2002.0). I removed it, and introduced a method addToLine that probably does more or less the same.
    • Toolbox: bugfix by Carsten Hammer: the value for the srcfile (corresponding with a key containing the filename) was wrong
    • Toolbox: Carsten Hammer added some functionality to sort the Versions
    • Toolbox: Carsten added more JavaDoc info to the Watermarker plug-in
    • Moving around code:
      • SimpleXMLParser and related classes were moved to com.lowagie.text.xml.simpleparser. Some lists that were inside SimpleXMLParser (entities and IANA encodings) were moved to separate classes outside HTMLWorker
      • com.lowagie.text.Entities moved to com/lowagie/text/xml/simpleparser/EntitiesToSymbol
      • com.lowagie.text.markup.MarkupTags moved to com.lowagie.text.html.Markup
      • com.lowagie.text.markup.WebColors moved to com.lowagie.text.html.WebColors
    • Removal of old classes/functionality; this can cause your applications to break, but you weren't supposed to use any of these obsolete classes, so chances are there will be no problem with these issues. If you do have problems, please follow the following instructions:
      • class XmlWriter: the output of this class, and everything you could do with this output, didn't meet our standards. The code is still available in CVS if you really, really need it.
      • class Graphic: if you were still using it: use direct content and/or PdfTemplate instead.
        TODO: the <hr> tag doesn't work anymore in the XML parser.
      • class Watermark: if you were still using it: use page events instead.
      • class MarkupParser: some methods were kept in another class, but the MarkupParser itself was never finished, and is now being abandonned.
      • interface MarkupAttributes: this interface could only be used to add markup attributes to HTML output. This was completely refactored. If you want to add attributes to an HTML file, you should now use MarkedObject and/or MarkedSection. These new classes will probably also serve for enhanced tagged PDF support in the future.
        Removal of this interface affects almost all basic building blocks. You will have to recompile your code if you decide to upgrade to iText 2.
    2006-12-19: iText 1.4.8
  • Changes made by Paulo
    • AcroFields: MAXLEN was not being applied to the display value.
    • Bugfix: AES encryption could fail with an incorrect length calculation.
    • Bugfix: the key NeedAppearances in AcroForm must be deleted when signing.
  • Changes made by Bruno
    • Added AES support in class PdfEncryptor.
    • Added support for PDF packages in PdfStamper (code contribution by Leonard Rosenthol)
    • When using Graphics2D binary images will now be stored as G4 compressed images (instead of RGB); patch provided by Robert Engels.
    • Bugfix: on some occasions small invisible chunks with font Helvetica were inserted breaking PDF/X compliancy.
    • Bugfix: when switching fonts, a space character was sometimes inserted at the start of a new line.
    • Bugfix: I finally fixed the newPage() problem caused by class Table.
    • Bugfix: a blank page problem caused by class PdfPTable (when using setExtendLastRow(true)) was fixed.
    • Bugfix: the indentation of paragraphs was wrong when adding a PdfPTable to a Paragraph.
    • Bugfix: the indentation of chapters/sections was wrong when adding a PdfPTable to a Chapter/Section.
    • Bugfix: I solved a null problem in TreeViewPDF
    • Replacement of the image icons in TreeViewPDF and translation of some German words to English.
    2006-11-24: iText 1.4.7
  • Changes made by Paulo
    • added support for AES encryption
    • added support for encryption with metadata in clear text
    • PdfBoolean: consistent toString()
    • PdfDictionary: testing the dictionary type no longer throws NullPointerExceptions
    • PdfDocument: fixed inconsisten null checking
    • AcroFields: added a method replacePushbuttonField() (rewrite of Bruno's setIcon method)
    • BaseField: static final variable values were modified. Don 't forget to recompile programs that depend on these values.
    • PdfGraphics2D: clip reset correction
    • GlyphList: standard glyph names take precedence over the more exotic ones
    • XfaForm: removed code duplication
  • Changes made by Bruno
    • By default a Chapter started on a new page; whereas a Section didn 't. Now you can change this default with setTriggerNewPage()
    • Fixed a problem with sigma in Greek lists.
    • PageSize: fixed some values that were wrong (reported by Feng Dihai)
    • PageSize: added some new values for page sizes (for instance for identity cards)
    • Paragraph: fixed the constructor new Paragraph(Phrase p); If you pass a Paragraph (extends Phrase), the properties of the original paragraph weren't copied.
    • AcroFields: method regenerateField, to be called after changing the properties of a field without changing its value.
    • Table: when using rowspan on a cell that reached the final row of the Table, an error was thrown. Bruno implemented a bug fix suggested by Calvin Lee.
    • Table/PdfDocument: removed some unused code. This could break some of the Table functionality, but all of my own tests worked just fine.
    • TagMap constructor: implemented a bugfix in the constructor (suggested by Ray Burks)
  • Changes made by Mark
    • Fixed a bug where setFont was being ignored on RtfField and its subclasses.
  • Code cleanup by Xavier
    • using Boolean.valueOf instead of Boolean constructor
    • use Collection.isEmpty() instead of comparing size() to 0
    • removed unused imports in PdfString and StandardDecryption
    • PostScript classes: System.exit() call removed, calls to System.out only in debug mode
    2006-10-27: iText 1.4.6
  • Changes made by Paulo
    • Normalization of Colors (conversion from 0-255 to 0-1); fix of a problem reported by Roger Misteli
    • Normalization of Rectangles in fields (when coordinates are not given in the expected order).
    • null exception prevention in classes DocumentFont, GlyphList and PdfCopy
    • GlyphList: use the name "bar" instead of "verticalbar".
    • Annotation Unicode support
    • PdfReader: more robust error handling + removeUnusedObjects() is not recursive anymore
    • PdfStream: multiple filters would fail
    • PdfWriter: the info output intent was switched with the registry name
    • shared resource dictionaries won't share any longer the objects of all the pages
  • Changes made by Mark
    • Update of the RTF tutorial
    • RtfTokeniser: speed improvement (contributed by Bullo in a SourceForge bug report #1566255)
    • RtfFont: access to the charset (contributed by Lidong Liu on the mailinglist)
    • RtfAnchor: escape text correctly for anchor url
    • Override isEmpty() from Chunk. This was causing bugs where RtfAddableElement subclasses were not being added to Cells correctly.
  • Changes made by Xavier
    • new target in the ANT scripts to regenerate the JavaCC generated classes
    • target is set to 1.4 for compilation (ANT scripts)
    • code cleanup of the tutorial examples: removal of unnecessary import clauses, useless casts, and so forth
    • Several code optimizations and cleanup operations in many different iText classes. In some cases unreported bugs were fixed (for instance: better handling of empty Strings).
    • Removal of class StringCompare
    2006-09-14: iText 1.4.5
  • Changes made by Paulo
    • added support for the attribute "style" in HTMLWorker
    • better handling of null or invalid values when reading PDFs
    • used a MappedByteBuffer instead of a RandomAccessFile (suggested by Joakim Sandstroem)
    • PdfArray: null values are handled in toPdf()
    • PdfDictionary: null and PdfNull values are not inserted
    • added some support for alpha composite (by Alexej Suchov)
    • PdfPTable et al.: padding adjustment for rotation 180 degrees + fix with rotated cells
  • Changes made by Bruno
    • the init.ps was not integrated into the release (jar, src)
    • removed e-mail addresses that 'bounce' from the source code
  • Changes made by Mark
    • fixed a bug where headers /footers on the first page were being calculated from wrong page sizes.
    2006-08-28: iText 1.4.4
  • Changes made by Paulo
    • XFA support static forms
    • more names in GlyphList (list is now read from a txt file in com.lowagie.text.pdf.fonts)
    • custom encodings as strings in BaseFont.createFont()
    • PdfGraphics2D: fixed the drawing order bug with create()
    • PdfPTable: big padding values exceeding the cell dimensions wrapped around and created a space that should be zero
    • TiffImage: more fixes for OJPEG
  • Changes made by Mark
    • RtfDirectContent and RtfParser provide the functionality for adding arbitrary RTF content directly and for adding complete RTF documents or document fragments into the RTF document being written.
    • RtfShape provides the capabilities for using Word 97-2000 Drawing Objects with the RtfWriter.
  • Changes made by Bruno
    • HTML parsing: values of HTML attributes were made lowercase (bugfix #1507632 by Kazuya Ujihara)
    • Table/Cell: applied bugfix #1531800 and #1531812 posted by John Hammen
    • Table2PdfPTable: applied bugfix #1528846
    • Graphics State: patch #1514667 asked for a method to set the Overprint Mode. Bruno added a method (slightly different from the patch)
    • Updated license information (Bouncy Castle, Carsten Hammer no longer 'anonymous',...)
    • icons for the tree viewer plug-in were not in the release
    • resolved a code audit warning posted by Darryl Miles in DefaultFontMapper, BuildTutorial and PhotoAlbum
    • removal of some XmlToXXX classes that weren't used anymore
    • resolved some Eclipse warning in the XMP and toolbox packages
    • toolbox plug-in: refactored some variable names (translated German words into English)
    2006-07-29: iText 1.4.3
  • Changes made by Paulo
    • Fixed bold and italic output with fonts created from BaseFont
    • Image.LEFT wasn 't working in some places
    • Forms: the rotation was not being taken care of in getFieldPositions()
    • in 128 bit encryption the owner key was being set to blank
    • Fix: change PdfGraphics2D.getFontRenderContext() method to create FontRenderContext according to current hints and use context from this method throughout the code.
    • PdfGraphics2D: fixed a class cast exception in doAttributes()
    • PdfSignatureAppearance: added new appearance types
    • TIFFLZWDecoder: fix for broken tiffs with lzw compression
    • TiffImage: some extra support for jpeg images
  • Changes made by Mark
    • RtfSection/RtfTableOfContents/RtfTOCEntry: removed the font parameters in the constructor since they were ignored and confusing people.
    • RtfHeaderFooter: reworked so that now multiple Elements can be set into the header
    • Fixed a cell/row spanning bug (tables/cells)
    2006-06-23: iText 1.4.2
  • Changes made by Paulo
    • Font factory: cached option added
    • Support for document level file attachments in PdfWriter and PdfStamper
    • When reading a PDF: accept names of any size (even names that are longer than allowed)
    • PdfGraphics2D: class cast exception fix in doAttributes()
    • PdfGraphics2D: fixed rectangle optimizations (they didn't work with transforms)
    • PdfGraphics2D: some dispose calls were missing
    • PdfNameTree/PdfNumberTree: values can be PdfObject and not only PdfIndirectReference
    • PdfReader: fixed a class cast exception signing encrypted PDFs in append mode
    • Added support for certified documents (contributed by Antonio Iacono)
    • PostScript fixes by Carsten Hammer
  • Changes made by Mark
    • The RtfAddableElement is a Chunk that can be extended for RTF specific functionality
    • Tab support for the RTFWriter2
  • Changes made by Bruno
    • Extra table fix for class Table (rowspan problem)
    • TreeView changes by Carsten Hammer
    2006-05-22: iText 1.4.1
  • Changes made by Paulo
    • HTMLWorker: treatment of http images; made some fields protected
    • PdfGraphics2D: some clarification on compiling with JDK 1.3
    • PS: some fixes
    • TIFF: a compression tag was set in the wrong variable
    • TIFF: allow the reading of tiffs without the rowstrip tag (extra fix)
    • bugfix: PdfContentByte.saveState() was not making a copy of the state
    • PdfReader hack to read broken pfds that have nulls in the kid page array
    • PdfCopy: changes made to allow replacing existing images
    • PdfCopy.freeReader() for better memory management
    • Read encrypted PDF with keylength not 128 Bit and revision 3
    • More efficient rectangles (Mark Storer)
  • Changes made by Mark Hall
    • RtfLists in RtfListItems are now handled correctly.
  • Changes made by Bruno
    • Class Table: rowspan fix by Bruno
    • Class Table: bug report #1460051 concerning table split over different pages
    • GreekList: upper- and lowercase were switched (bug reported by Shawn Qi)
    • List.setListSymbol always overwrites the list symbol set with ListItem.setListSymbol (bug reported by Shawn Qi)
    • Removed some unused code/classes
    • Image alignment fix
    • MultiColumnText: fixed an endless loop problem and made the object more user-friendly
    • XML Handler: Ricardo Coutinho removed a side-effect that prevented you to define the pagesize/orientation or a document
    • XML Handler: basefont problem fixed after a report by Conta Matteo
    • XHTML parsing made case insensitive
    • Changes to the Toolbox
      • Added a tool to view images that are inside the PDF as an Image XObject (code contributed by Carsten Hammer)
      • It is now possible to define the opacity of a text watermark added using the toolbox plug-in (code contributed by Carsten Hammer)
      • Added a DirFilter for the PhotoAlbum plug-in (code contribution by Johannes Schindelin)

iText 1.4 (2006-03-03)
  • 2006-03-03: iText 1.3.7
    • Changes made by Paulo
      • Basic Building Blocks
        • Added support for cell rotation in PdfPCell
        • Better list symbol printing
      • AcroForms
        • AcroFields: removed the /I key when setting a field
        • RadioCheckField: uppercase Color constants converted to lowercase
        • PushbuttonField.getAppearance ()was made public
        • Added support for Unicode fields. This includes Arabic and Hebrew and will work in localized Acrobat 6.0 and in Acrobat 7.0 with font substitutions.
        • Allowed signatures with dots in the name.
      • Fonts
        • Added FontFactoryImp. Does the same as FontFactory but it 's not static
        • FontSelector: small optimization
      • Graphics/Images
        • GrayColor: added constants for white and black
        • BufferedImageOp in drawImage() is optional
        • Hack for tiff images with missing StripByteCounts tag
        • g2 text changed to be compatible with osx
        • ImageFilter class Toolbox: image extensions can also be upper case
        • Changed the way variable borders are rendered to have a better viewer display at low zoom
      • Barcodes
        • 1D Barcodes: added alternative text
        • PDF417 barcodes: added the option to force all binary encoding in BarcodePDF417
      • Simple HTML Parser
        • Option to use a local FontFactoryImp
        • IncTable/IncCell: public fields changed to private
      • ByteBuffer: added an option to generate high precision floating point numbers
      • Added a new class: PdfContentParser
      • PdfReader.killIndirect() was made public
      • Fix for empty /AP /N when flattening
      • extra check to prevent the use PdfWriter.getDirectContent() and PdfWriter.getDirectContentUnder() from PdfStamper
      • Versions Toolbox: removed HeaderlessException
    • Changes made by Mark
      • deprecation of RtfWriter, including the old classes: RtfFont, RtfField, GenericRtfField, AbstractRtfField, RtfTable, RtfCell, RtfRow, RtfTableCell, RtfPageNumber, RtfHeadersFooters, RtfTOC, RtfTOCEntry
      • RtfParagraph: refactored all settings into the rtf.style.RtfParagraphStyle object
      • RtfParagraphStyle: Style name was not being set, Uppercase Color constants converted to lowercase
      • Added a default constructor to RtfPhrase.
      • RtfPhrase In table constant now public
      • Lists in a cell are now handled correctly.
      • Support for the stylesheet in RTF
      • RtfFont: null fonts are now handled more gracefully
      • RtfFont: added a number of get/set method
    • Changes made by Bruno
      • Image: two new constructors that allow you to convert any java.awt.Image to a JPG
      • Phrase: Added a methods that allows you to get a String based on the content of all the chunks in the phrase.
      • Solved a problem GrayFill and Table
      • Some extra methods concerning page boundaries
      • Added PageModeUseAttachments to the viewer preferences.
      • Added two new PageLayout preferences (PDF 1.5):TwoPageLeft and TwoPageRight
      • FieldpositioningEvents: Create Fields that are kids of a parent field
      • FieldpositioningEvents: Added a value to define the padding between form fields and cells
      • iText Toolbox changes
        • ExtractAttachments plug-in: bugfixes Eberhard Schulte
        • Treeview plug-in: bugfixes and a simplification in the LabelAccessory
        • Two extra bookmarks plug-ins by Hans-Werner Hilse
        • PhotoAlbum plug-in: labels don 't show the image type anymore
  • 2005-12-12: iText 1.3.6
    • Changes made by Paulo
      • Uploaded the code clean up by Xavier Le Vourch
      • Some simplifications in PdfReader
      • Support to reuse images from existing docs
      • Added footer support for PdfPTable
      • Special fit to page in PdfPTable
      • A PdfOutline constructor couldn't close the outlines
      • A call to dispose() was missing in MetaDoPS
      • Fix to WMF files
      • SimpleTable didn't copy the horizontal alignment
      • Integer parsing simplification in class PRTokeniser
      • TIFF images with filenames with spaces didn't work
      • New constructor for ImgPostScript
      • corrected the name setcmykcolor (PS)
      • improvements to HTMLWorker
      • AcroFields: new lists in list and combo fields can be set
      • AcroFields: changed setFields() to iterate from the source (not a bug just better logic)
      • Better CJK Field support in DocumentFont
      • PdfContentByte.showTextAligned() supports char spacing, word spacing and horizontal scaling (Federico Scala)
      • PdfGraphics2D: added support for setting the color in text attributes
      • Added a constant for XFA to PdfName
      • added PdfReader.getStreamBytesRaw() to get the bytes without any filtering
      • added a Chunk copy constructor
      • changed Rectangle gray fill processing to just depend on the background color: Rectangle, Table, ColumnText,...
      • changed the way variable borders are rendered to have a better viewer display at low zoom
      • fixed double background writes in PdfPTable
      • in nested PdfPTables the inner cell background overlayed the outer cell borders
      • Zero width nested tables threw an exception
      • PdfReader.killIndirect() was made public
    • Changes made by Bruno
      • Major Table bugfix by Karsten Klein + extra fix by me. This solves the CellsFitPage functionality and produces a better layout if the cells are split.
      • Added toString methods for the internal PDF objects
      • added well known places on each OS X system for registerDirectories of the FontFactory
      • bugfix: if you passed an alias with capitals, you could never call it with getFont
      • Fix in the GreekList
      • Bordercolors weren't correct if useVariableBorders was set manually in class Rectangle.
      • You can now add multiple events to the same PdfWriter, PdfPTable and PdfPCell
      • Choosing a BaseFont for SAXiTextHandler (suggestions made by Ralf Hauser)
      • Replace HashMap by Map in XmpWriter
      • ColumnText: added a convenience method to check the status and a start value for the column status
      • ColumnText allows SimpleTable
      • New plug-in to view the internal structure of a PDF (by Anonymous)
      • When opening the toolbox, the frame is centered on the screen (by Anonymous)
      • Extra info about iText version, Java version and OS in the Toolbox (by Anonymous)
      • Toolbox System.out and System.err redirected to another window
      • LPRClient submitted by Anonymous
      • New tool to extract attachments by Anonymous
      • The PdfFilter didn 't accept .Pdf or .PDF files, only .pdf
      • PdfCopy bugfix by John Englar
    • Changes made by Mark
      • Fixed a bug where an additional paragraph was added on new pages.
      • For BMP images the scaled height/width is always written. Otherwise the image is displayed with the wrong size.
  • 2005-10-20: iText 1.3.5 (based on version paulo-155)
    • Changes made by Paulo:
      • FontFactory: case insensitive font search and a much better font family pairing
      • TrueTypeFontUnicode: Identity-H fonts with subset==false will include all the font
      • PdfReader: files with /Content null could be problematic; wrong assumption that trailer was followed by \n
      • Image: method skip didn 't check EOF; Image.toUrl() didn 't escape the filename chars
      • AcroFields: lists couldn 't be set by the export value
      • ColumnText: fixed the image alignment in method addElement
      • Made it possible to create an empty PdfAnnotation
      • Basic support for Tagged PDFs; the high level objects don't generate tags yet, but it's possible to create a fully legal tagged PDF using PdfContentByte.
      • SimpleBookmark: method made public
    • Changes made by Mark:
      • Fixed a bug where style and colour were not being set if the fontname was unknown; two RtfFonts equality now ignores style and colour attributes.
    • Changes made by Bruno:
      • Changes in ChapterAutoNumber and Section. Deleted SectionAutoNumber as it seems to be redundant
      • Chunk: added the toString method as asked by G.Ralph Kuntz
      • List: added some extra constant values that can be used as parameter when creating a List
      • Added a FieldPositioningEvents class; this is a PdfPageEvents/PdfPCellEvent implementation that allows you to add PdfFormFields with onGenericChunk or cellLayout.
      • Added an EventForwarder and moved 2 relatively new event classes to a separate package.
      • Bugfix Christopher MacKenzie: when used in Append mode PdfStamper didn 't add the XMP metadata properly
      • iText toolbox: added a LabelAccessory that tells you more about the selected PDF file in the FileChooser (by Anonymous); also updated comments for several plug-ins.
      • iText toolbox: new plug-in that searches for Launch actions in a PDF and replaces them with a Javascript Alert.
      • iText toolbox: added a ReversePages tool (by Anonymous)
  • 2005-09-22: iText 1.3.4
    • Changes made by Paulo:
      • added adjustable margins to text fields to better mimic Acrobat 's layout
      • added PdfWriter.releaseTemplate() to free resources before close()
      • added support for macro PDF417 (contribution by Matthias Germann)
      • PdfCopy: beads are removed from pages to avoid dragging unnecessary objects
      • PdfGraphics2D: the underline was in the wrong place (mirrored)
      • Added support for flattening free text annotations
      • Flattening all fields didn 't clear the acroform field array
      • PdfStamper: extra null check
      • RandomAccessFileOrArray: a file stream was not being closed
      • OTF fonts didn 't have the subset prefix
    • Changes made by Mark:
      • Observe the value of closeStream in the DocWriter.
      • Dereference the RtfDocument structure when closing the document (speed up release of memory)
      • Added ability to get last element added (needed in RtfChapter)
      • Only write a new page if the RtfChapter is not the first element added and the last element added was also not a RtfChapter.
      • Fonts are now supported in rtf fields.
      • Fixed a bug where headers /footers were not being displayed on all required pages in certain situations.
      • Fixed a bug where footers were being set as headers
      • The alignment is now correctly set if the RtfHeaderFooter is constructed with a Paragraph/Table/Image.
    • Changes made by Bruno:
      • RandomAccessFileOrArray: allow full read of file when constructing a RandomAccessFileOrArray
      • Adding Images to a SimpleCell is now allowed
      • Special PageEvents implementation that allows you to build an index (contribution by Michael Niedermair)
      • Code for chapters /sections that are automatically numbered (contribution by Michael Niedermair)
      • It is now possible to add a PdfPTable to a Phrase (contribution by mr. Karen Vardanyan)
      • Adding Images to a SimpleCell is now allowed
      • Added a method to set the default alignment of the MultiColumnText
      • Automatic XMP generation after setting the Metadata
      • Added XMP support to PdfStamper
      • Fix posted to itextsharp site concerning automatic splitting of large tables
      • Verbose representation of Permissions was wrong for Degraded Printing
      • Selecting odd and even in SelectPages is now allowed without adding a page range
      • list with the (versions of the) plugins in the Toolbox (+ other contributions by Carsten Hammer)
      • Removed PRAcroForm from concatenation tool in the Toolbox
      • Bugfix in the Burst plugin regarding the numbering of the bursted files
      • Bugfix in the Encrypt tool; Added a decrypt plugin
      • When generating an index.html with bookmarks of a PDF file, you can now enter a link to a CSS file
      • Added an N-up tool (to copy N pages of an existing document on 1 page; with N = 2, 4, 8, 16...)
  • 2005-08-24: iText 1.3.3
    • Changes made by Paulo:
      • com.lowagie.text.Image: scaledToFit() didn 't take rotation into account
      • MultiColumnText didn't respect mirrored margins
      • Waiting image in the last page was not being placed
      • PdfStamper supports encryption in append mode
      • PdfGraphics2D: some attempts to fix the 'very small font' scaling problem
      • PdfReader.selectPages() is working again.
      • RandomAccessFileOrArray.InputStreamToArray() was made public.
    • Changes made by Mark:
      • Table width bugfix
      • Set the topLevelElement for RtfImages added directly to the document
      • Fixed a bug with undefined styles in RTF
      • Added empty line between images in RTF
      • RtfImage: Corrected the scaling to mimick the pdf more precisely. If added directly to the document includes a finishing new-line
      • Added a switch to enable/disable unicode generation (RTF)
      • When filtering characters the alwaysUseUnicode switch in the RtfDocumentSettings is now observed.
      • Added methods to update the indentations in RtfParagraph
      • Correctly handle the indentation properties of Chapters and Sections. Improved match between pdf and rtf output.
    • Changes made by Bruno:
      • bugfix: initialrotation wasn 't copied in the copy constructor of com.lowagie.text.Image
      • Made the toString() of class com.lowagie.text.Rectangle more verbose
      • Added a class com.lowagie.text.markup.WebColors
      • Added some methods to MultiColumnText for arabic and RTL text.
      • When using a MultiColumnText with only 1 column, the currentY of the PdfDocument is no longer the total available width (triggering a new page every time a ColumnText is added), but it is changed according to the space used by the MultiColumnText. In other words: you can now use MultiColumnText as if it was a Paragraph object (which is handy if you need R2L or BiDi).
      • Added a static method to PdfEncryptor, to get a verbose explanation of the permissions
      • Bugfix: PageModeUseOC and PrintScalingNone had the same value.
      • The PDF version is set to 1.6 automatically when the userunit is changed
      • Changes in the Toolbox: It now contains an About MenuItem that points to a page explaining the tools. The tools are now in different categories.
      • As suggested by Carsten Hammer: 'Help 'is moved to the right; new internal windows are shown with an offset and have setSelected(true).
      • Burst-tool: SinglePages was renamed to Burst; the new PDF-filenames now get leading zeros in the sequence number, so that they are in the right order when sorted alphabetically.
      • New HtmlBookmarks tool that allows you to generate an HTML with links to the bookmarked pages of a PDF
      • New InspectPdf tool: tool that gives you some info about a PDF.
      • New tool to make a PhotoAlbum PDF with all the images of a given directory
      • New tool to copy selected pages of an existing PDF file into a new one
      • Added a CvsLogParser to help me make the history.html file for every new release
  • 2005-07-29: iText 1.3.2
    • Changes made by Paulo:
      • Annotations in Image now work everywhere
      • PdfContentByte.addImage() didn't respect layers
      • PdfContentByte.addImage() draws the borders
      • Dpi fix in BmpImage
      • Support for inline images (all colorspaces)
      • Better CCITTG4Encoder
      • Support for TIFF images rotated
      • Support for some jpeg tiff images. Very incomplete.
      • Fix in List: float parsing instead of int parsing
      • Fix in checkboxes with the same name but different appearances
      • Codabar fix, B and C were switched
      • Make Arabic Diactrics (tashkeel) have zero advance
      • Added support for Type3 fonts
      • Signature fields can't be exported
      • Signing empty fields didn't keep the flags
      • Self sign doesn't need to extend size
      • Fix for DSA signatures
      • MultiColumnText page position didn't update after page 1
      • PdfCopyFields: fix for PDFs with null elements in the /CO array
      • PdfFormField.setFieldName() is only set if not null
      • Password field and choice field fix
      • PdfDictionary: CRLF correction
      • Embedded files: set the length information
      • Fix in constructor PdfReader(PdfReader)
      • Workaround for pdfs with broken bookmark dictionary
      • Daylight Savings Time is taken into account when creating a date
      • Waiting Image in the last page was not placed
    • Changes made by Mark:
      • Bugfixes in the RtfList to correctly handle indentations, nesting > 2.
      • Bugfixes in the RtfFont so that it can be used like a true Font and also so that UNDEFINED properties are handled more cleanly.
      • Bugfixes in the RtfAnchor to use the Anchor.reference instead of the url Method.
      • Bugfixes in the RtfTable to match the PDF output more precisely.
      • New Class RtfTotalPageNumber.
      • The user can set whether soft or hard linebreaks should be generated for "\n".
    • Changes made by Bruno:
      • Made the method getVersion final so that it can't be changed by subclassing
      • Applied suggestions made in bugreport #1227749 concerning JDK 1.3 compatibility
      • Avoiding NullPointerExceptions in Phrase (not sure if this is a good thing)
      • Changed spacing in SimpleTable/SimpleCell classes
      • Added the UserUnit entry to the PdfPage dictionary. A user unit is 1/72 inch by default, but you can now change it from 1 to 75,000
      • Added Watermarker plugin (Carsten Hammer)
      • Txt2Pdf: implemented suggestion by Carsten Hammer
  • 2005-05-11: iText 1.3.1
    • fixed a pagenumber problem in PdfStamper
    • applied a bugfix by Paulo regarding backgrounds covering strikethroughs in Chunks
    • Some new tools for the Toolbox
    • Experimenting with Table: convert com.lowagie.text.Table to com.lowagie.text.pdf.PdfPTable or use new classes SimpleTable and SimpleCell?
    • Fixed a border bug when TableCells span multiple pages.
    • Started writing a new parser that is able to read CSS markup (not yet finished!!!).
    • Mark Horsfield suggested a change to the PageSize object: he needed a map with all the pagesizes and their description. I didn't use the code contribution, but made a PageSizeArgument that can be used to obtain such a map.
    • fixed bug #786427: endless loop adding table with cell longer than 1 page
    • bugfix in class Table by Peter Hodgkinson (dangerous float comparison)
  • Early Access release by Paulo Soares (itext-paulo-154)
    • CCITTG4Encoder.java has a bug somewhere that for some patterns causes an out of memory exception. The bug is not corrected but an exception is thrown early on and the JVM is not brought down.
    • revised hyphenation. The XML FOP hyphenation patterns are now used directly. I've included all the patterns in itext-hyph-xml.jar but some of them may be GPL or not usable for commercial purposes so, read the licenses and decide what to keep.
    • added a new constructor PdfReader(RandomAccessFileOrArray raf, byte ownerPassword[]). Contrary to the other constructors only the xref is read into memory. The reader is said to be working in "partial" mode as only parts of the pdf are read as needed. The memory needs can be tiny.
    • fixed a bug in ColumnText with columns with zero width.
    • added simple background image support in signatures. There was a contribution by Cesar jz for this but the implemented solution is more generic and puts the image in the n2 layer instead of the n0 layer as recommended for Acrobat 6 and later.
    • added print scaling, a new viewer preference, in PdfWriter.
    • added a workaround for symbolic true type fonts that have incorrect cmaps.
  • updates to the RTF package by Mark Hall
    • Bugfix in the RTF row handling code
    • Support for the background colour in the Chunk
    • Support for additional font styles in RtfFont. This includes support for text hiding.

iText 1.3 (Stable release based on iText1.2.4)
  • iText 1.3
    • Rearranged the tutorial and completed the first four parts (except for some less important chapters)
    • Added a Toolbox Java WebStart application with tools to encrypt PDF, make DVD Covers, convert txt to pdf,...
    • Support for margins in XML Handler by Reza Nasiri
    • New class com.lowagie.tools.Executable by Roger Mistelli and Bruno Lowagie
    • MultiColumnText: endless loop fix by Steve Appling; Right to Left Columns by Bruno Lowagie
    • Added some LINE_JOIN constants to PdfContentByte
  • 2005-03-21: iText 1.2.4
    • suggestion by Marc Campforts to remove a carriage return when adding images.
    • support for pagesize and orientation in the XML package (update by Samuel Gabriel)
  • 2005-03-14: paulo 153
    • added the class PushbuttonField to create pushbutton fields.
    • added the class RadioCheckField to create radio and check fields.
    • added support for eps images. Support is very basic but it should be useful for simple logos. Contribution by Carsten Hammer.
    • the package com.lowagie.text.pdf.wmf was moved to com.lowagie.text.pdf.codec.wmf
    • fixed BaseFont.getAscent().
    • FdfReader supports all the encoding
    • a few more submit constants added to PdfAction.
    • added PdfAnnotation.setHighlighting().
    • modified PdfAnnotation.setMKIconFit().
    • added support for PostScript XObject. See PdfContentByte.addPSXObject() and the class PdfPSXObject.
    • fixed a bug in PdfPTableEvent for tables with headers.
    • added support for open actions in PdfStamper.getWriter().
    • added support for replies in comments in PdfStamper.addComments().
    • TextField refactoring.
    • XfdfReader supports nested fields.
    • fixed a problem in List for list numbering. Contribution by Jurij Bilas
  • Updates by Mark Hall:
    • bug fixed when adding Tables that have cell and rowspanning Cells in the same Row.
    • support for Leading in Phrase and Paragraph
    • support for SpaceBefore and SpaceAfter in Paragraph
    • Remark: In a few cases code will have to be updated due to these new capabilities:
      • If you use the default Phrase constructor then the default leading of 16pt will now be respected. Solution: Either specify the desired leading or use a Paragraph.
      • If you are using Table.addCell("Test") then these cells will also have a leading of 16pt since the addCell(String) method uses the default Phrase constructor. Solution: Either use a Phrase with the desired leading or a Paragraph.
  • 2005-02-17: iText 1.2.3
    • Added a header to some source files that were missing the MPL information
    • Bug discovered by Mark-Jan Nederhof, fixed by Paulo: getAscent in BaseFont
    • Fixes and updates to RtfWriter2 by Mark Hall
      • Fixed the fitspage problem with thanks to Jon Strabala. The RtfWriter2 now fully supports both Table.tableFitsPage() and Table.cellsFitPage(). As a side effect support for the keeptogether property of Paragraph has also been added.
      • Fix for incorrect table widths.
      • Fix for RtfPageNumber and other field not showing in tables.
      • Super/Subscript should now always work.
      • Support for writing the temporary data that is generated during document generation to a file, instead of keeping it in memory. This should reduce the memory footprint when generating large documents (there is a speed decrease). Currently the default is to keep the document in memory and you have to specify if you want to use a temporary file.
      • Added documentation in the tutorial explaining the disk caching
    • 2005-02-11: paulo 152
      • added AcroFields.getFieldType().
      • PdfReader gets the number of pages from the pages and not from the top level page count. It also attempts to fix the doc if both values disagree.
      • Fixed AcroFields.getAppearanceStates() that threw a class cast exception.
      • PdfWriter.DOCUMENT_CLOSE was changed from /DC to /WC. It's not documented but it's what works in Acrobat.
      • PdfStamper.getWriter().setAdditionalAction() is now supported.
  • 2005-01-31: iText 1.2.2
    • Avoiding a NullPointerException in Phrase (bugfix by August Detlefsen)
    • Binary transparency worked for GIFs, not for all PNGs (bugfix by Chris Nokleberg)
    • CreationDate doesn't throw an exception in RTF anymore (bugfix by Thomas 'taqua')
  • 2005-01-29: paulo 151
    • MultiColumnText supports column continuation and column skipping.
    • PdfGraphics2D supports the start position in TexturePaint. Contibution by Chris Nokleberg.
    • PdfReader reads correctly files with hybrid xrefs.
    • PdfStamper deals correctly with files with hybrid xrefs in append mode.
  • 2005-01-24: paulo 150
    • fixed the reading of some field names
    • added the option "textfont" in AcroFields.setFieldProperty() to set a new font in a field.
    • added support for Type 1 fonts described by *.pfm.
    • fixed a bug in PdfGraphics2D with rotated fonts.
    • added PdfStamper.insertPage() to insert a blank page in an existing document.
    • fixed an exception in PdfStamper in append mode and full compression.
    • performance improvement in Type 1 fonts.
    • fixed Anchor to also work in ColumnText and PdfPTable.
  • 2005-01-11: paulo 149 - iText 1.2.1
    • fixed a bug that broke PDF 1.5 compression. The bug was introduced in itext-paulo-144.
    • fixed PdfCopy to not throw an exception with acroform that is not indirect.
    • fixed PdfGraphics2D to match the pdf text width with the awt text width.
  • Rtf bugfixes by Mark Hall
    • solved a problem with the way fonts are propagated form RtfPhrase to RtfChunk
    • fixed a bug in the way fonts were handled that derive from a BaseFont. The BaseFont is now no longer ignored.
    • solved problems with setTextRise() and anchors

iText 1.2 (based on paulo's releases 143 - 148)
  • 2005-01-06: paulo 148
    • new OCG layer interface with parent/child relationship, zoom, radio groups, etc.
    • fix in XfdfReader to close the file.
    • added some extra javadoc comment and corrected a typo here and there (image copy constructor, PdfAnnotation.createSquareCircle,...)
  • 2004-12-29: paulo 147
    • added full support for Optional Content Groups (OCG) also known as layers. This covers not only the content streams but also annotations and XObjects.
    • added PdfAction.setOCGstate()
    • fixed ColumnText.showTextAligned() to put the activation rectangle in the right place if the rotation is 0.
    • fixed in AcroFields setting combo fields with /Opt values.
  • 2004-12-26: paulo 146 - 2004-12-27: iText1.1.4
    • removed PdfArray.add(PdfArray) that broke iText in many places. Bug introduced in itext-paulo-144/iText1.1.3.
    • signatures with hash algorithms described as signature algorithms will be correctly verified.
  • 2004-12-24: paulo 145 - 2004-12-25: iText1.1.3
    • Added the ability to generate soft linebreaks. This is currently only used when list items contain linebreaks.
    • Fixed a bug with list indentations. Multi-line list items should now be correctly indented.
    • implementation of the methods pause() and resume() in RtfWriter and RtfWriter2
    • Chunk.BACKGROUND takes value Chunk.SUBSUPSCRIPT into account
    • Some extra functionality in class Chunk: static final Chunk.NEXTPAGE, simple setUnderline method, getWidthPoint to retrieve the width of a Chunk in points
    • added AcroFields.getBlankSignatureNames().
    • optimization fix in BarcodePDF417.
    • fixed the keep together in paragraphs and list in ColumnText.
    • PdfCopyFields keeps the calculation order.
    • added support to signature verifying with authenticated attributes.
    • added PdfSignatureAppearance.setSignatureEvent() to support signature dictionary modification.
    • added support to add comments from FDF in PdfStamper.
    • PRStream will close the stream if it was not initially open.
  • 2004-12-14: paulo 144 - 2004-12-16: iText1.1.2
    • Some more Table changes by Steve Appling on top of itext-paulo-144
    • Lots of changes in the comment sections: all warnings given by javadoc and some of the warnings given by Eclipse.
    • added support for multiple signatures, revision information and extraction.
    • AcroFields can set fields without a /DR key in the original PDF.
    • AcroFields can cache the appearance parsing for a 10 fold speed increase in filling the same PDF multiple times with different values. Contribution by Robert Mueller.
    • added AsianFontMapper to aid with CJK in Graphics2D. Contribution by Takenori.
    • fix in BarcodeEAN.createAwtImage() for EAN8.
    • fix in the list indentation in ColumnText.
    • More fixes to Table and associated classes by Steve Appling.
    • fixed a bug with splitting rows in PdfPTable.
    • new defaults in PdfPTable for splitRows and splitLate. It was splitRows=false and splitLate=false. It's now splitRows=true and splitLate=true. It doesn't have any impact if using the defaults. This is done to avoid row dropping.
    • PdfSignatureAppearance supports other fonts and RTL. It's also possible to have just 2 layers as in Acrobat 6.0 and later.
    • fix in PdfStream.writeLength() to put the length as a not compressed object.
  • Bruno removed some 'import' statements (based on Eclipse warnings)
  • 2004-11-29: paulo 143 - iText 1.1.1
    • when form filling, eliminated an extra vertical space that prevented the text to fit in the field.
    • added in BaseFont: getDescent(), getAscent() and getCharBBox().
    • added PdfContentByte.createPrinterGraphics(). Contribution by Alexandru Carstoiu.
    • fixed PdfLine.getAscender() for images. Contribution by Steve Appling.
    • PdfPKCS7 can sign authenticatedAttributes. See HOW-TO SIGN.
    • fixes in duplicating PdfPTable. Contribution by Steve Appling.
    • fix in PdfReader to read /Pages with empty /Kids.
    • added PdfSignatureAppearance.setContact().
    • PdfSpotColor was changed to allow external separations.
    • added support for transitions and page actions to PdfStamper.

iText 1.1 (based on Paulo's version 129-142)
  • paulo 142 (2004-11-15)
    • all the cvs changes except BuildSite.java.
    • the methods related to the MK dictionary were moved from PdfFormField to PdfAnnotation.
    • new constructor PdfStream(InputStream,PdfWriter) to create streams without temporary arrays. PdfFileSpecification.fileEmbedded() can now create arbitrarily big attachments.
    • changed the interface to the creation of external signatures mainly to support the ncypher dse200.
  • paulo 141 (2004-11-10)
    • all the current CVS changes
    • fixed a bug in PdfStamper with form flattening and fields added
    • PdfStamper will keep the acroform even if flattening. The acroform can also be used by other annotations to keep the resources
    • added support to read from an InputStream in RandomAccessFileOrArray, PdfReader and FdfReader.
    • fixed a bug in PdfDocument that caused in certain cases an empty page to be output when an image didn't fit the page.
    • fixed PdfAnnotation.createScreen() to suppport embedded multimedia files
    • SimpleBookmark can read some broken outlines. Contribution by ujihara.
    • the SplitCharacter interface was changed. This was done to open the way to more sophisticated splitting algorithms that require character look ahead.
  • paulo 140 (2004-11-06)
    • AcroFields.setFieldProperty() has the new properties bgcolor and bordercolor.
    • AcroFields.signatureCoversWholeDocument() will work for any range
    • BarcodeEAN128 class was removed. All the existing functionality and much more was moved to Barcode128. Barcode128 now also supports the AI alphanumerics and can be set as simply as "(01)00000090311314(10)ABC123(15)060916", the FNC1 will be placed at the right places.
    • added subset capability to CFF fonts. Contibution by Oren Manor and Ygal Blum from Tel Aviv University.
    • PdfAnnotation.setAppearance() accepts a PdfTemplate.
    • added PdfAnnotation.setRotate().
    • several fixes to the cellspacing problems in Table. Contribution by Steve Appling.
    • changed PdfDate(GregorianCalendar) to PdfDate(Calendar)
    • MultiColumnText is written to PdfWriter.getDirectContent().
    • fixed a bug in PdfFormField.mergeResources().
    • PdfFormField.getMKColor() was made public.
    • fixed a bug with image transparency in PdfGraphics2D.
    • PdfPKCS7 support an external signature.
    • added PdfSignatureAppearance to support visible signatures and external signatures.
    • PdfStamper.createInvisibleSignature() was replaced with PdfStamper.createSignature() with different parameters.
    • PdfStamper supports adding form fields.
    • PdfString.setWritingMode() was replaced with PdfString.setHexWriting().
    • fix in PdfPKCS7 for buggy SunPKCS11 providers. Contribution by Robert Esterer.
    • fixed a bug in PdfStamperImp for partial form flattening and fields without appearances.
  • paulo 139 (2004-10-06)
    • added the current RTF changes in the CVS including RtfWriter2. Vector was changed to ArrayList to make it easier to work in jdk 1.1.
    • ICC profiles in TIFF files are checked for the correct colorspace.
    • added support for text fields of type COMB.
    • the length of the text field is not checked in the appearance, only in the value.
    • added the choice of provider in signatures. Contribution by Hes Siemelink.
    • added the possibility of having a temp file in signatures instead of doing everything in memory.
    • added awt image output for barcode postnet.
    • added setUseAscender() in ColumnText and PdfPCell. Contribution by Steve Appling.
    • fixed a bug in ColumnText.addText() that ignored the first Phrase.
    • several bug fixes in Table. Contribution by Steve Appling.
    • PdfGraphics2D has the option of converting all the images to JPEG. Contribution by Bill Ensley.
    • spacing before/after works with ListItem. Contribution by Christian Lauer.
    • fitsPage() works correctly for PdfPTable. Contribution by Christian Lauer.
    • added support for multi-column text with Document.add(). Contribution by Steve Appling.
    • added a getter for the current vertical page position in PdfWriter. Contribution by Christian Lauer.
    • added html style borders to Table and PdfPTable. Contribution by Steve Appling with Barry Richards and Prabhakar Chaganti.
    • fixed some rounding problems in PdfPRow.
    • fixed the copy of skipFirstHeader when cloning PdfPTable.
    • added PdfPTable.deleteBodyRows().
    • fixed a bug in PRTokeniser when rebuilding the xref. Contribution by Sid Steward.
    • added the possibility in Chapter/Section of having a bookmark title different from the content title.
  • paulo 138 (2004-09-17)
    • added the current rtf changes in the cvs
    • fixed AcroFields.setFieldProperty() for some field constructions.
    • optimized the speed and memory use of PdfPTable for cells with a simple Phrase.
    • added a new constructor PdfPCell().
    • fixed in ColumnText the indent spacing of List.
    • fixed in ColumnText the handling of PdfPTable.spacingBefore().
    • fixed a bug in PdfDocument that prevented the spacingBefore for the first Paragraph in the page.
    • fixed in PdfPRow a height rounding bug.
    • fixed a null pointer bug in PdfTable. Contribution by Steve Appling.
  • paulo 137 (2004-09-08)
    • added a generic line dash function in PdfContentByte.
    • fixed a bug that caused the text to be overlapped with a PdfPTable.
    • fixed a concurrency problem in TrueTypeFontUnicode. Contribution by Adrian Pronk.
  • paulo 136 (2004-08-30)
    • fixed a bug in PdfCopyFieldsImp in the copy of the resources to the /DR key.
    • fixed a bug in PdfPCell when the only element is a Graphic.
    • added PdfDate.decode() to decode a String into a Calendar.
    • added support for invisible pdf signatures. Documents can be signed and verified. The supported modes are self signed, verisign and Windows certificate signature. See the javadoc for PdfStamper.createInvisibleSignature() and AcroFields.verifySignature(). For jdk 1.4.x you already have all that is needed but for jdk 1.2.x and 1.3.x you'll need a JCE from http://java.sun.com/products/jce. Signatures are not supported with jdk 1.1.x.
  • paulo 135 (2004-08-19)
    • PdfPTable.skipFirstHeader() is working again.
    • Chunk.setHorizontalScaling() works with any text alignment.
  • paulo 134 (2004-08-11)
    • added support to merge XFDF forms. Contribution by Leonard Rosenthol.
    • ColumnText and PdfPCell also supports Graphic. Mainly useful to put an horizontal line.
    • new mode of splitting long rows in PdfPTable. The old method left too much blank spaces in the page, now the row is always split. Added PdfPTable.splitLate() to keep the old behavior.
    • fixed in SimpleXMLParser: attributes where converted to lower case in xml and end tags may have whitespace before the '>'.
    • Graphic may have the horizontal line aligned.
    • added Chunk.setHorizontalScaling(). It doesn't work yet with justified text.
    • fixed a problem in PdfReader with indirect references to inexisting objects.
  • paulo 133 (2004-08-04)
    • added support for PDF 1.5 compression with object streams and xref streams
    • AcroFields will use the opts array when reading fields
    • ColumnText and PdfPCell supports text only Paragraph, text only List, Image and PdfPTable.
    • PdfPTable can split long rows, be it text or nested tables. The contribution from Daniel Smith was removed as it is covered here.
    • PdfCopyFields will keep the tab order.
    • fixed a problem in PdfReaderInstance with pages with null contents.
    • SimpleXMLParser will parse HTML.
    • TrueType fonts converted from the MAC can be read (not all).
    • the symbol indent from List was changed to float. Shouldn't have much impact and will be caught at compile time in any case.
  • paulo 132 (2004-06-21)
    • added fdf export capabilities in AcroFields
    • DefaultFontMapper also maps the postscript font name
    • added encryption in PdfCopyFields
    • added page selection in PdfReader and PdfCopyFields
    • fixed a timezone bug in PdfDate.
    • added support for mirroring margins. Note that it won't work with Table.
    • fixed a problem with floating annotations placed with Document.add().
    • added support for setting the viewer preferences in PdfReader and PdfStamper. It's also possible to read the viewer preferences in PdfReader.
    • added BaseFont.setKerning().
    • refactored some nested classes to be static.
  • paulo 131 (2004-05-12)
    • removed the icc profiles from bw tiff images.
    • the properties files for cjk fonts are only searched once.
    • PdfContentByte.roundRectangle() fixed to allow negative values.
    • fixed a problem with indirect references in PdfCopyfieldsImp.
    • added an optimization to break Table. Contribution by David Carmona Perez.
    • added PdfPTable row break capability with nested tables. Contibution by Daniel Smith.
    • fixed a problem in PdfLine that could create null Chunk.
    • added a nested Table enhancement. Contibution by Jason McGrath.
    • PdfReader will try even harder to read a damaged PDF.
    • fixed positive descenders in TT fonts.
    • added DisplayDocTitle to the viewer preferences
    • all the CVS changes to date.
  • paulo 130 (2004-03-31)
    • added tab order information to AcroFields
    • added BaseFont.setPostscriptFontName() to change the font name
    • added PdfContentByte.setDefaultColorspace().
    • added global javascript support to PdfCopy, PdfCopyFields and PdfStamper.
    • added bookmark support to PdfCopyFields.
    • removed the checked exception from PdfStream.flateCompress().
    • added to PdfReader: getBoxSize(int,String), getPageContent(int), getStreamBytes(PRStream), getJavaScript(RandomAccessFileOrArray), getJavaScript().
    • added PDF/X-1a:2001 and PDF/X-3:2002 support with PdfWriter.setPDFXConformance(). Some compliance checks are made when adding an object.
    • added PdfWriter.setOutputIntents(). The output intents can also be imported from an existing PDF.
    • added PdfWriter.setBoxSize() and PdfWriter.setDefaultColorspace().
    • PdfWriter.setExtraCatalog() was removed. Use PdfWriter.getExtraCatalog().
    • PdfReader and BaseFont support reading from files described as an URL. Reading a font like "http://server.com/myfonts/arial.ttf" will work.
    • added Font.setStyle(int).
    • added Paragraph spacing before and after. Contribution by Maarten.
  • paulo 129 (2004-03-10)
    • fixed some compatibility issues with jdk 1.5 and J++.
    • fixed the dpiy with tiff images.
    • correct processing with fields with the /Opt key.
    • added AcroFields.setFieldProperty() to set properties like flags and text color.
    • fixed AcroFields.removeFieldsFromPage().
    • added support to use existing document fonts in PdfStamper. Will not work every time.
    • fixed a colorspace bug with images with smasks.
    • added PdfPTable.setLockedWidth() to lock the width when adding with Document.add().
    • fixed a bug in PdfReader when reading content. (already fixed in 1.02b)
    • another hack to read broken PDFs.
    • optimized PdfStamper. The streams are not decoded/encoded but added to an array.
    • SimpleBookmark is more lenient with broken bookmarks.

iText 1.02 (b) (based on paulo's version 127-128)
  • Extra update 1.02b: bugfix in PdfReader by Paulo Soares
  • paulo 128
    • changed FontFactory to register the fonts faster. TTC fonts register all the names.
    • added the methods in AcroFields: renameField, getFieldPositions, removeField, removeFieldsFromPage.
    • added support for arabic number conversion, forced or contextual.
    • improved font resource loader. If you have a security manager running even with "AllPermissions" remember to also grant RuntimePermission("ClassLoader").
    • added methods to PdfAction: createLaunch, gotoLocalPage, gotoRemotePage.
    • fixed a bug with PdfGraphics2D.drawRenderedImage().
    • PdfIndirectReference was made public.
    • several changes to PdfReader: PRAcroForm is only calculated if needed, only the reachable objects are read, added the methods removeFields and removeAnnotations.
    • fix to PdfReader to support pages without contents.
    • added partial form flattening to PdfStamper.
    • in SimpleBookmark the names with codes below 32 are escaped.
    • TextField.getAppearance() was made public.
    • added support for OTF fonts with CFF glyphs and Identity-H encoding. Contribution by Sivan Toledo (stoledo@tau.ac.il).
  • paulo 127
    • PangoArabicShapping was renamed to ArabicLigaturizer.
    • added more support for arabic Urdu ligatures and fixed a bug with lam-alef ligatures.
    • added support for screen renditions. Contribution by Galo Gimenez.
    • added support for custom encoding with ExtraEncoding and PdfEncodings.addExtraEncoding().
    • new encodings available: "Symbol", "ZapfDingbats" and "Wingdings". This encodings map the Unicode characters to this fonts, where possible.
    • added Chunk.setUnderline() to set underline lines at arbitrary positions.
    • added Font.getCalculatedBaseFont() and Font.getCalculatedStyle().
    • added the class FontSelector to select fonts based on their Unicode coverage.
    • FontFactory catches exceptions when reading directories.
    • added AcroFields.getAppearanceStates() to get the names allowed with radio and checkbox fields.
    • added PdfReader.getAcroFields() to get the field info without using PdfStamper.
    • added BaseFont.charExists() and BaseFont.setCharAdvance().
    • changed DefaultFontMapper to be case insensitive with system font names. Other system font name aliases were added.
    • fixed a problem with resource name colisions when importing PDFs with shared page resources.
    • fixed a problem with adding only fields without appearances.
    • added specifific support for patterns in PdfGraphics2D.
    • removed the /Colorspace key if the image is a mask.
    • another hack to read broken PDFs without a media box.
    • fixed a bug with setting the PDF version in PdfStamper.
    • symbolic fonts with Identity-H are also mapped in \uf0xx.
    • added Table.setDefaultLayout().
    • fixed a limit situation in PdfCell.getLines(). fixed auto font size for single line text fields in TextField.
    • added extended support for barcodes 128 with BarcodeEAN128. Contribution by Emmanuel Hugonnet.
    • added direct support for TexturePaint in PdfGraphics2D
    • corrected GradientPaint direction and general paint scaling in PdfGraphics2D. Contribution by Emmanuel Deviller.
    • added support for bookmark manipulation in SimpleBookmark. It also has support for import/export to XML and page shifting and deleting.
    • concat_pdf now keeps the bookmarks.

iText 1.01 (based on paulo's version 123-124-125-126)
  • paulo 126
    • set the max number of lines in Cell.
    • added ALIGN_JUSTIFIED_ALL to justify the text including the last paragraph line. Use the attribute JustifyAll in XML.
    • added an explicit /DW for CJK fonts
    • fixed the reading of TIFF images without the ROWSPERSTRIP tag.
    • fixed a bug in PdfDocument for right aligned images.
    • changed PdfReader to provide information on the encryption flags.
    • changed PdfReader to provide information on the xref and trailer to facilitate the creation of updated documents.
    • fixed in PdfReader the reading of some 128 bit key encrypted documents.
    • fixed the flattening of documents that had pages without contents.
    • fixed the flattening of hidden fields.
    • fixed an exception with TrueType fonts without a kerning table.
    • better compliance for symbolic TrueType fonts.
    • fixed the rotation of text in WMF images when the extents were negative.
    • fixed the reading of images from byte array in RTF.
    • fixed a bug with nested Table.
  • paulo 125
    • added support for BMP in RTF.
    • removed the dependency on TextLayout for the bidi order levels. The awt toolkit is no longer needed for Arabic or Hebrew.
    • changed DocumentException to better track the stack trace.
    • some incorrect page sizes fixed in PageSize.
    • another hack to PdfReader. Reads files with pages without the /Page tag.
    • added PdfReader.createFakeFontSubsets(). Some producers, like Crystal Reports, create documents with subset fonts but without the correct prefix.
    • added bitmap support to WMF.
    • added ink spreading control to barcodes.
  • paulo 124
    • several changes made to ease the port to jdk 1.1
    • FontFactory registered directories using lower case names for files. This could fail in Unix.
    • fixed a bug in ColumnText that caused an infinite loop.
    • ColumnText can be duplicated. Useful to do simulations and write without having to load a new ColumnText.
    • added the constant FF_MULTISELECT in PdfFormField.
    • added opacity support in PdfGraphics2D. Colors with an alpha value will be translucid.
    • added a copy constructor to PdfReader.
    • added PdfReader.consolidateNamedDestinations to replaces all the local named links with the actual destinations.
    • added PdfReader.removeUnusedObjects to remove all the unreachable objects.
    • PdfStamper supports the addition of annotations. Adding new form fields is not yet supported.
    • the keys F and Ft are stored in the merged dictionary in PRAcroForm.
    • added createAwtImage() to the barcodes. The image is not used by iText but it's of use for other programs such as JasperReports.
  • paulo 123
    • Chunks with a background color can set the size of the background rectangle.
    • added ColumnText.getWidth() and ColumnText.showTextAligned() to facilitate the placing of complex text in PdfContentByte.
    • added PdfPCell.setUseDescender(). The height of the PdfPCell can optionaly be automatically extended to avoid the truncation of the last line descenders.
    • fixed TrueTypeFont to accept fonts with broken cmaps.
    • another hack to PdfReader. It now checks the length of streams and attemps to fix incorrect sizes.
    • added PdfReader.shuffleSubsetNames(). It finds all the font subset prefixes in the file and replaces them with new, random values.
  • Mark Hall
    • Fixed a NullPointerException.
    • Fixed a problem where Fonts and Colors only in header/footers weren't added to the document.

iText 1.00 (based on paulo's version 119-120-121-122)
  • paulo 122
    • the subset prefix is generated randomly. Acrobat has problems in inserting pages with fonts with the same prefix.
  • paulo 121
    • fixed a bug with indexed transparent PNG.
    • restored support for PNG and JPEG in RTF. Added support in RTF for WMF.
    • created several new list types (see the examples). Contribution by Michael Niedermair.
    • fixed a seek overflow for broken TIFF tags. Contribution by Anderson Bryan.
  • paulo 120
    • FontFactory register all the TTF names for the different locales.
    • added FontFactory.registerDirectory and FontFactory.registerDirectories.
    • the image types GIF and PNG were eliminated together with the classes gif and png. This images are now identified by IMGRAW. HtmlWriter was changed to support it. The RTF part will probably also have to be changed. The good news is that all the gif and png will open without the awt Toolkit.
    • fixed AcroFields to set the /V key only in the dictionary with the /T key.
    • symbolic TrueType fonts with Identity-H have a linear mapping.
    • TIFFFaxDEcoder fixed (again) to work with some damaged images. Contribution by Danox.
    • added support to read encrypted PDFs. Contribution by Kazuya Ujihara, the maker of the iText port to .NET.
    • fixed in PdfGraphics2D a problem with incorrect line widths with rotated transforms.
    • PdfGraphics2D.setTransform() now creates a copy.
    • PdfGraphics2D.drawImage() waits for the loading of the image to be drawn.
    • fixed PdfPTable.setWidthPercentage(float columnWidth[], Rectangle pageSize).
    • PdfStamper can set the output pdf version. If not set, the version of the original is kept.
    • fixed the LZW stream decoder to be more lenient with errors.
    • fixed the ASCII85 stream decoder to correct the output of the last bytes.
    • fixed in PdfReader the stream sharing problem that files created with Distiller 3.01 may have.
    • new constructor in Chunk for a single char.
  • paulo 119
    • all the changes in the official version 0.99
    • added FULL support for BMP images in com.lowagie.text.pdf.codec.BmpImage. Well, maybe not full but if anyone has any BMP with an alpha channel, CMYK or some other that this class cannot open but works with other viewer, I would like to see it.
    • The binary characters that follow the header were changed to match those generated by Acrobat.
    • PdfReader can read PDF files with garbage in the first 1024 bytes.
    • added fractional metrics support to Type1 fonts.
    • added support for AffineTransform in PdfContentByte. This will simplify the rotations and translations.
    • some more fixes in PdfGraphics2D regarding clipping paths.
    • added the 'Times-Roman' family to FontFactory. Only 'Times' was recognized.
    • TrueType fonts with the extension OTF can be used with Identity-H.

iText 0.99 (based on paulo's version 114-115-116-117-118 + several contributions integrated by Mark Hall and Bruno Lowagie)
  • paulo 118
    • images created from java.awt.Image and transparency always created an smask even in the most simple cases.
    • damaged JPG will not hang the program.
    • fixed incorrect constants in Barcode.java that affected code 128.
    • added FULL support for GIF images in com.lowagie.text.pdf.codec.GifImage.
    • All the frames are read and no X server is needed.
    • fixed the reading of TIFF files that have the fill bits option incorrectly set in the G3 encoding.
  • paulo 117
    • added dimensionless pixel aspect ratio in Image.
    • added opacity in Image for java.awt.Image.
    • added FULL support for PNG images with com.lowagie.text.pdf.codec.PngImage.
    • fixed a bug in PdfContentByte.remoteGoto().
    • fixes in PdfGraphics2D for null fonts and negative stroke widths.
    • class PdfLiteral was made public.
  • paulo 116
    • added transparency/opacity support
    • Image suports explicit smask.
    • ColumnText suports several options on how the arabic shaping is done.
    • DefaultFontMapper didn't read all the fonts in a TTC.
    • more refactoring in resource handling.
    • added PdfGState and PdfTransparencyGroup.
    • fixes in PdfGraphics2D in fonts, strokes and pies.
    • PdfCopy hanged on closing.
    • added PdfWriter.setLinearPageMode() to allow page reordering.
  • paulo 115
    • raw images can be palette based and already deflated.
    • AcroFields has the option of not generating the appearances. This is not recommended but may be useful for faster generation in controlled environments.
    • cached a font to speed up form filling.
    • PdfReader can read from an URL.
    • lifted the limit of 8192 pages. I tried with 200000 pages and worked well. Note that PdfCopy still has that limitation.
    • fixed the xref error in PdfStamper.
    • fixed the use of BW PNG for masks.
    • added support for TIFF images.
  • paulo 114
    • all of the content of the official 0.98
    • last version broke PdfCopy and PdfStamperImp
  • Mark Hall
    • method to get the alignment of a HeaderFooter object
    • RTF support for right indentation (contribution by Eric Mattes)
    • RTF alignment in HeaderFooter objects
    • RTF lists: bugfix
    • RTF code cleanup + some alignment constants were made public
  • Bruno Lowagie
    • Applied a patch sent by Xavier Le Vourch (optimalisation of the code and removal of dozens of Eclipse warnings)
    • Added some code contributed by Pelikan Stephan

iText 0.98 (based on paulo's version 113)
  • added a new arabic shaper with farsi support.
  • FdfWriter will also output the fields from a PdfReader and AcroFields.
  • fixed PdfAcroForm for a problem when creating text fields. The /DA key was being generated incorrectly.
  • added a file attachment annotation.
  • the subtype for the ink annotation was wrong.
  • modified toPdf() method to write directly to the stream. OutputStreamCounter was created to aid.
  • added ModDate to the info dictionary.
  • added methods in PdfPTable to set absolute column widths.
  • added PdfReader.getMetadata() to get the XML metadata.
  • speed improvement in PdfReader.
  • fixed a bug in PdfStamperImp when stamping or flattening and the original page content didn't end in an whitespace.
  • added the ability to manipulate directly the catalog and the info dictionary in PdfWriter. Other methods where made public for ease of access to low level features.
  • Changes to RtfPageNumber by Mark Hall
  • some fixes by Finn Bock, for instance: solving the problem of JDK1.4 compilation and 1.3 use.

iText 0.97 (based on paulo's version 107 - 108 - 109 - 110 - 111 - 112)
  • paulo 112
    • fixed a race condition in TrueTypeFont.java. The same file was used by all the threads instead of a new instance. Thanks to William Pennoyer for reporting the bug.
  • paulo 111
    • fixed a bug in AcroFields that prevented form flattening to work with fields with no appearances.
    • added FdfWriter to create FDF forms.
    • fixed PdfName to work with any characters.
    • changed Color.WHITE to Color.white to compile in jdk 1.3.
    • added rectangular print to PdfPTable. Useful to manage wide tables.
    • the fdfmerge and field_merge examples were changed to support writing to the console.
    • the constant Font.TIMES_NEW_ROMAN was eliminated and replaced by Font.TIMES_ROMAN to match the actual font used. The result is a compile error easily correctable. Compiled libraries depending on iText wont't change the behavior because the number is the same.
    • the alignment constants in PdfContentByte were changed to match the constants in Element. This breaks compiled libraries as the number has changed. A recompile is needed.
  • paulo 110
    • Added support for form filling, form flattening and FDF merging.
    • fixed FontFactory to recognize fonts where the family is not a substring of the full name.
    • added ColumnText.getLinesWritten().
  • paulo 109
    • fixed FontFactory to avoid simulating styles if a real font with the style was found.
    • fixed PdfAppearance to have the same font names as Acrobat for text fields.
    • fixed a bug introduced in the last version where the top and bottom cell borders were swapped.
    • fixed PdfCopy to avoid leaving files opened.
    • fixed PdfCopy to interpret correctly some objects when copying.
    • when adding annotations the page content for the current page will be generated. For other pages PdfWriter.setPageEmpty() was added to force a page output.
    • much better support for reading GIFs without AWT, including transparency. Contribution by Tim Bruylants.
    • fixed a bug in PdfWriter that prevented the fields to be added with PdfCopy, only the widget annotations were being added.
    • embedding font restrictions for TrueType are honored.
    • added TextField to create text, list and combo fields with all the options that the Acrobat GUI provides. All the borders, appearances, etc, are correctly generated including the standard and external fonts.
  • paulo 108
    • added class PdfStamper to add content to an existing pdf while preserving all the interactive attributes.
    • added simplified signature fields. Contribution by Finn Bock.
    • fixed negative page rotation in PdfReader.
    • the encoding in PdfString is automatically selected between Unicode and PdfDocEncoding.
    • added PdfPCellEvent to simplify cell customization.
    • fixed copying with WMF based images.
    • structure reorganization in PdfDocument and PdfWriter.
    • added new cmaps for extended CJK encodings like HK CSC. You'll need iTextAsianCmaps.jar. See ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/ for more details.
    • removed extra moveTo in PdfAcroForm.
    • fixed a missing break in PdfAction.
    • inverted the rectangle coordinates in several places to avoid negative dimensions.
    • fixed a problem with thick lines in Table.
    • Element.HEADER was changed to cast to Meta in PdfDocument.
    • fixed a wrong indentation in header/footer. Contribution by Edgar Perilla.
    • added support for AttributedCharacterIterator in PdfGraphics2D. Contribution by Jurij Bilas.
  • paulo 107
    • PdfGraphics2D now implements strokes as strokes instead as converted fills. File size is a lot smaller and it looks better on screen.
    • BaseFont and PdfReader read fonts and PDFs from resources if not found in the file system.
    • Images can auto-size in PdfPTable.
    • added new options in Chunk to simulate bold, italic and other effects. Styles BOLD and ITALIC will work correctly in Font with BaseFont producing simulated effects.
    • CID and hyphenation are restored in ColumnText.
    • minor fix in the GIF table size. In the next version I intend to get some JAI codecs integrated with iText to support natively all GIF and PNG (and maybe BMP).
    • fix in FontFactory for the embedded property and for TTC indexing.
    • fixed bug with single cell nested Table.
    • Unicode support for field names.
    • added the capability to change the info dictionary in PdfEncryptor. The command line program encrypt_pdf.java was also changed.
    • outlines are not generated in Chapter and Section if the title is empty.
    • added PdfWriter.setStrictImageSequence() to force images and text to appear in the order they were added to the document.
    • added BarcodePDF417 for the generation of the 2D barcode PDF417.
    • fixed PdfReader to work with /Encrypted key equal to 'null'. The document was being recognized as encrypted when it was not.
  • Several updates to the RTF part of the library by Mark Hall.

iText 0.96 (based on paulo's version 104 - 105 - 106)
  • paulo 106
    • added row grouping in Table. Contribution by Gerald Fehringer.
    • added support for the barcode CODABAR.
    • fixed a bug in ColumnText where the chunk backgroung color was on top of the text.
    • fixed a bug and added some changes in PdfContentByte.escapeString().
    • Document.addHeader() inserts arbitrary keys in the info dictionary.
    • fixed a bug in PdfPTable where a nested table didn't align vertically.
    • added support to concatenate and split pdf documents including fields and annotations. Contribution by Leonard Rosenthol.
    • added DocWriter.setCloseStream() to have the option of not closing the output stream on document close.
  • paulo 105
    • added xref rebuild capabilities to PdfReader. Slightly damaged PDFs will now read successfully. The rebuild strategy is the same as xpdf. A new method PdfReader.isRebuilt() was introduced to check if the document had to be fixed.
  • paulo 104
    • added kerning support in PdfContentByte.
    • fixed a bug in ColumnText when a Chunk had an empty string.
    • added additional actions in page objects.
    • fixed a bug in PdfGraphics2D when using create() and templates.
    • added support for colors and styles in outlines.
    • fixed a bug in imported pages when matrix was different than identity.
    • added support to free the memory used by PdfReader in PdfWriter.
  • Several updates to the RTF part of the library by Mark Hall.

iText 0.95 (based on paulo's version 103)
  • added bidirectional support in ColumnText and PdfPTable for arabic and hebrew. Even with plain text the line splitting is improved. Hyphenation and CID addressed CJK fonts support were temporarily removed. (Paulo)
  • added support for ICC color profiles in images. Contribution by Phillip Pan.
  • added javascript support for html. Contribution by Joachim Eyrich.
  • fixed a bug in Graphic.drawBorder(). (Paulo)
  • imported pdf documents are closed even if an exception is thrown. (Paulo)
  • fixed a bug in CCITTG4Encoder. Some bit sequences threw an exception. (Paulo)
  • cjkfonts.properties and cjkencodings.properties are now together with the afm. (Paulo)
  • added transition support for pdf. Contribution by Josselin PUJO.
  • fixed the missing bookmarks in jdk 1.2. (Paulo)
  • improved suport for WMF (Paulo)
  • Borders of Table are drawn last so that Cell-backgrounds don't cover them anymore (Gerald Fehringer)
  • Some RTF improvements by Mark Hall
  • Added an encryption tool (Paulo)

iText 0.94 (based on paulo's version 102)
  • fixed a problem with multiple repeated images in Table
  • fixed the kerning in TrueTypeFont.java
  • PdfContentByte.showText(PdfTextArray text) was made public
  • added PdfContentByte.createGraphicsShapes(). Instead of using pdf fonts, only the shapes are used. The advantage is that the alignment is more precise and all Graphics2D text is allowed including arabic and hebrew. The disavantage is that the text is not searchable and the fonts look like type3 fonts (remember old tex->dvips->gs?)
  • more consistent setPageSize() in pdf.
  • added PdfWriter.setSpaceCharRatio(). Sets the ratio between the extra word spacing and the extra character spacing when the text is fully justified. This is also extended to ColumnText and PdfPCell for finer control
  • Some RTF bugfixes by Scott Dietrich
  • Small update by Marcelo Vanzin in the package com.lowagie.servlets
  • Some small changes to the XML package
  • Asian fonts are in a separate jar now. The AFM fonts are in the src as well as in the jar.

iText 0.93 (b) (based on paulo's versions 97, 98, 99, 100 and 101)
  • Remark: iText0.93b fixes some problems with fonts: some of the fontfiles in 0.93 were corrupt.
  • Paulo 101:
    • fixed a bug in PdfReader.getCropBox(). It was returning the media box instead of the crop box
    • added page and outline reordering. Mainly of interest to generate TOC in a single pass
    • deprecated PdfContentByte.addOutline(PdfOutline outline). The outlines are extracted from the root outline. It's no longer needed to call this method
    • changed the behavior for the margins in PDF. Margins now work as the page size: are only active in the next page. Will break some code but it didn't work as it was, anyway
  • Paulo 100:
    • Added PdfEncryptor to encrypt any PDf document. All the content, links, outlines, etc, are also encrypted and output
    • added support for OTF fonts with the CFF table
  • Paulo 99:
    • fixed a bug with \r\n in chunks
    • added PIE, ARC and CHORD to WMF
    • font reorganization
    • CJK fonts can be accessed by CID
    • PdfPCell supports rightIndent and followingIndent for independent alignment within the cell
    • added class VerticalText for enhanced support for vertical text. Annotation support is not there yet. I would appreciate some feedback from CJK users for ways to improve the vertical layouting
    • DefaultFontMapper reads a font directory 7 times faster
  • Paulo 98:
    • added PdfWriter.setAdditionalAction() to support additional-actions in the catalogue. This is a PDF1.4 only feature.
    • added PdfReader.getInfo() to get the metadata information from a PDF document.
    • no-wrap in PdfPCell now works correctly for all the horizontal alignments.
    • minor fix in HyphenationAuto.getHyphenatedWordPre() to optimize the available word space.
    • new supplements in CJKFont to support the new characters in PDF1.4. It's still compatible with PDF1.3.
  • Paulo 97:
    • several changes in the internal pdf structure to allow more low level access.
    • supported full PDFDocEncoding in strings (the Euro will show up).
    • several changes in the form fields to allow strings in Unicode and PDFDocEncoding
    • added shading patterns. Supported type 1, 2, and 3. Types 2 and 3 have duplicated simpler contructors for the case of linear gradients.
    • added support for java.awt.GradientPaint in PdfGraphics2D
    • documents with no text do not generate anymore the empty sequence BT-ET. Some postscript printers had problems with it.
    • added the method Document.getVersion() to get the current iText version string.
  • Others:
    • Some updates to the RTF part by Mark Hall
    • XML: MOVED FROM SAX TO SAX2 and from XERCES TO JAXP: THIS BREAKS EXISTING XML FUNCTIONALITY
    • Added several small code contributions

iText 0.92
  • Added lots of AcroForm methods (Bruno)
  • J2EE Filter contributed by Marcelo Vanzin (only in the srcXML, not in the jar: com.lowagie.servlets)
  • Added support for Radio Buttons on different pages (Paulo)
  • Fixed some PdfGraphics2D bugs (Paulo)
  • Fixed a PdfReader problem in PRTokeniser (Paulo)
  • Fixed several Font(Factory) problems (Bruno)
  • Fixed a bug concerning X/HTML parsing and styles (Bruno)
  • Fixed the Image in Table problem (Bruno)
  • Fixed a Table bug reported by Jennifer Prohaska (Bruno)

iText 0.91 (based on paulo's versions 95 and 96 + updates by Mark Hall, David Teran, Jim Moore, Jeremy Bowman, Kevin Galligan and Bruno Lowagie)
  • added PdfGraphics2D, a Graphics2D canvas to write to PDF. Main contribution by Jim Moore with several bits from Jeremy Bowman and Kevin Galligan
  • Added automatic hyphenation to Chunk. It uses the FOP engine and the TEX patterns. I provide a jar with some compiled patterns. Other patterns can be compiled and included in a jar or read directly from a directory. To compile the patterns you'll need xerces but not to use them.
  • the pdf version can be changed with PdfWriter.setPdfVersion(). This only alters the number, it doesn't check if the objects inside are valid for the version.
  • added ColumnText.setFollowingIndent() and ColumnText.setRightIndent().
  • true-type fonts with encoding Identity-H now align-justify correctly.
  • changed some encoding names to work with Microsoft's jview.
  • added PdfPTable.setSkipFirstHeader(). Optimizes the printing of large tables by breaking them into several smaller ones. Contribution by Christian Lauer.
  • some RTF updates by Mark Hall
  • Some performance optimizations in ByteBuffer.formatDouble() by David Teran
  • optimizations in BaseFont for the encoding Cp1252
  • PdfReader is made less strict (fixed some FlateDecode problems)
  • background color in Chunks and generic annotations
  • several other optimizations

iText 0.90 (based on paulo's versions 93 and 94 + updates by Mark Hall, Philip Pan and Bruno Lowagie)
  • Added form fields (still undocumented)
  • Added new Action types
  • Added new annotation types. Annotations can be placed at precise positions in the page.
  • Outlines can be inserted in any order
  • Images in Chunk support for RTF
  • Fixed JPEG CMYK images problem
  • Added BaseFont.getFamilyFontName() and Font.getFamilyname()
  • corrected a bug in Barcode39 where the 'A' was the same as the '9'
  • Fixed the extra blank page when onStartPage is used partly

iText 0.89
Let's forget about release 0.88. Some 'ameliorations' turned out to be bugs, the zip-files and tar.gz-files at SourceForge were corrupt, etc, etc... Let's hope 0.89 is a better number.

iText 0.88 (changes by Bruno Lowagie)
  • Some bugfixes:
    • table layout (borders and backgroundcolor) is put in directContentUnder
    • Watermark is put in directContentUnder
  • some small changes in FontFactory
  • improved HTML generation (size of the generated HTML is reduced)
  • improved HTML parsing (the style attribute is being parsed)

iText 0.87 (changes by Bruno Lowagie, Mark Hall and Steffen Stundzig)
  • class FontFactory:
    • size of a font changed from int to float
    • new getFont method taking attributes (Properties-object)
    • added names of the built in fonts
    • added a way to register an alias for a fontname
    • added public static variables for encoding and embedding
  • XML: nested tables, images in tables, remotegoto in Chunks,... are now supported
  • class Table:
    • possibility to force a Table (or it's cells) to be kept on one page
    • possibility to set an offset
    • cellborders and background disappeared if a table had a backgroundcolor
    • empty elements are no longer being added to a Cell
    • empty cells are not automatically filled anymore
    • extended support for nested tables
    • throwing an UnsupportedOperationException when one tries to get dimensions of the Table or Cell.
    • it is now possible to add an Image to a Cell
  • class Image:
    • fixed some bugs in the constructor that takes a Properties list
    • possibility to add an annotation => clickable image
  • RTF package:
    • Padding table cells works correctly now
    • Borders for rows are now possible
    • Cellspacing now works correctly
    • \n are now automatically parsed into new lines
    • support for HeaderFooters
    • TOC generation
    • page breaks are only inserted before top-level chapters

iText 0.86 (changes by Paulo Soares in paulo-91 and paulo-92 + changes by Bruno Lowagie)
  • added a Font Factory that allows you to register fonts and use them afterwards by specifying their postscript fontname instead of the path to their ttf- or ttc-file
  • added colspan to PdfPTable
  • the interface PdfPTableEvent changed because of colspan. True, interfaces shouldn't change but this interface is used only by a few and the change takes no time to fix.
  • added BARCODE128 and the special encoding UCC/EAN-128. Other encodings using this symbology are possible
  • added PdfWriter.setCropBoxSize()
  • fixed the problem while trying to add 2 images, a big and a small, near the bottom of a page. The first image was too large to fit, so it should have gone to the next page. However, the resulting pdf contained the second (smaller) image at the bottom of the page, while the larger image did not appear in the file.
  • simplified PdfReader.getPageSizeWithRotation()
  • fixed a bug in Rectangle that prevented page rotations bigger than 90 degrees.
  • fixed a bug that prevented annotations to be in the right place with rotated pages.
  • eliminated Rectangle.setRotation(). This can create inconsistencies.
  • fixed a bug that prevented deep nesting in Tables
  • fixed a bug in RtfWriter (escaping of the backslash)
  • moved all the code from com.lowagie.text.markup.* to com.lowagie.text.* The code Matt Benson added (see iText0.85) allows you to generate HTMLs with a CSS file.
  • changed all the constructors that created elements taking a Properties-object as parameter (For future use in the XML functionality).
  • fixed broken functionality: background color of a page

iText 0.85
  • update of the tutorial
  • corrected the rotation of the pages in the tools Concat, Split, Encrypt and Handout
  • contribution by Matt Benson: package com.lowagie.text.markup allows you to create iText objects with extra attributes
  • iText0.84 came with a jar-file that could only be used with J2SDK1.4

iText 0.84 (changes by Paulo Soares in paulo-90)
  • added support for barcodes without using external fonts. Barcodes supported are:
    • EAN13
    • EAN8
    • UPCA
    • UPCE
    • Supplemental 2 and 5
    • CODE39
    • CODE39 EXTENDED
    • INTERLEAVED 2 OF 5
    • POSTNET
    • PLANET
  • added JavaScript actions.
  • added document level JavaScript.
  • added local goto action by page.
  • added chained actions.
  • font widths can be changed.

iText 0.83
  • RTF:
      bugfixes
    • Rowspan and Colspan now work correctly (contributed by Steffen Stundzig)
    • setWidths(...) works correctly now (contributed by Steffen Stundzig)
    • Paragraphs in Cells are displayed correctly
    • Anchors in Paragraphs and Phrases work correctly now
      New Features:
    • Header rows which are repeated at the top of each page are now supported (contributed by Steffen Stundzig)
    • Non alphanumeric characters are saved as their Unicode value (contributed by Steffen Stundzig)
  • Extended Annotation functionality: it is now possible to define clickable areas to jump to other documents, urls, applications,... (Bruno)
  • PDFs with LZW compression can be read. The decompressor is from Sun JAI codecs and from the license in the file we are shielded from Unisys. (Paulo)
  • Bugfix: some PDFs made with Ghostscript failed. (Paulo)
  • small changes to class Table (Bruno)

iText 0.82 (changes by Paulo Soares in paulo-89)