iText 0.90 - iText 0.99


iText 0.90 (March 26, 2002)

Based on paulo-93 and paulo-94

  • 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.91 (April 17, 2002)

Based on paulo-95 and paulo-96

  • 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.92 (April 25, 2002)

  • 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.93 - iText 93b (July 15-17, 2002)

  • Remark: iText0.93b fixes some problems with fonts: some of the fontfiles in 0.93 were corrupt.
  • 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.
  • 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 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 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 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
  • 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.94 (August 22, 2002)

Based on paulo-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.95 (September 25, 2002)

Based on paulo-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.96 (October 19, 2002)

  • 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.
  • 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 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.
  • Several updates to the RTF part of the library by Mark Hall.

iText 0.97 (March 10, 2003)

  • 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.
  • 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 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 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 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 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.
  • Several updates to the RTF part of the library by Mark Hall.

iText 0.98 (March 26, 2003)

Based on paulo-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.99 (May 1, 2003)

  • paulo 114
    • all of the content of the official 0.98
    • last version broke PdfCopy and PdfStamperImp
  • 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 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 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 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.
  • 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