iText 0.40 - iText 0.70


iText was published on SourceForge for the first time in December 2000. From then on, all changes to the library were submitted to CVS. A first tutorial was written, explaining the use of the different building blocks. The access to low-level PDF functionality that was shielded from the developer by the high-level objects, was (re)opened: it was now again possible to create PDF syntax at the lowest level (if necessary), but in a more programmer friendly way.

The support of Chinese, Japanese and Korean fonts gave an enormous boost to the popularity of the product.

iText 0.40 (Spring 2001)

  • added class PdfPageEventHelper. Makes the use of page events easier.
  • added Chunk.setGenericTag. Attachs text to a Chunk that can be retrieved in a page event. Very usefull to implement bookmarks with fine control.
  • added local links. Links can be placed to jump to other parts of the document.
  • correction to Image. Absolute positioning was not being detected. This had the effect that images were being placed in the lower left corner of the page.
  • added clear() to Cell.
  • added getPageSize to Document.
  • added class ColumnText. It formates and displays text columnwise. The columns can be irregular and are described by an arbritary number of lines. With this feature it is easy to place text that flows around images.
  • added attributes to Chunks. The new attributes supported are anchors and sub/superscript.
  • correction of leading rounding
  • code changes to ease the port to jdk1.1.x
  • PdfpageEvent was changed to an interface
  • Added support for memory images. This will allow you to create an image in a byte array in the form of a gif, png or jpeg. As an added bonus images can also be created in raw mode but you'll have to read chapter 4.8 of the pdfref manual to know what you are doing.
  • TrueType font embedding
  • Type1 font embedding (AFM with PFB)
  • CJK Adobe font pack support with full metrics
  • All the java encodings allowed as long as your jvm has the encodings (Cp1251, etc)
  • support for all kind of fonts in Table, Paragraph, etc.
  • fonts are cached. There's only a performance hit the first time the font is accessed
  • outlines are output in Unicode. Now it's possible to have the outlines in kanji or cyrillic if you platform supports it
  • images can be added directly to PdfContentByte
  • TrueType and CJK fonts can have a modifier (Bold, Italic and BoldItalic). Note that it only works with fonts not embedded
  • Added circles, ellipses, arcs to PdfContentByte
  • Added outlines (bookmarks) to PdfContentByte
  • Added simple text alignment and rotation
  • Added templates (form XObjects). This solves the dreaded problem of "Page 1 of 15"
  • Optimized PdfIndirectObject. toPdf was beeing called twice.
  • Added a PdfPageEvent that is called with certain events, like new page.
  • All the dimensions were changed from int or double to float. It is possible that some of your code breaks but it should be trivial to fix.
  • Improved text justification with word spacing, character spacing and hanging punctuation.
  • Text justification works with CJK fonts.
  • Underline, strikeout and anchors work everywhere (main text and tables)

iText 0.41 (Summer 2001)

  • added EBCDIC support. It works in OS/390 and probably in AS/400. It should work in other platforms with other character encodings.
  • added auto-leading to ColumnText. Leading is now defined as fixed+variable*x where x is the size of the largest font in the line.
  • removed the *.afm resources. Some web servers had trouble finding the resource files. This resources are now inside classes. This takes care of the message "document with no pages".
  • added inline images with text. Images can now be used inside tables.
  • added Document.compress. If set to false all the documents generated come out without compression. For debugging.
  • added support to read java.awt.Image. It reads all gifs too!
  • added transparency support to images.
  • added Evelyne De Cordier changes to Table and HtmlWriter.
  • added named destinations. Also works with outlines.
  • added remote gotos. The remote destination can be a name or a page number
  • added PdfContentByte.roundRectangle.
  • added PdfWriter.getDirectContentUnder. A direct content that will be placed under all the other contents. For watermarks.
  • corrected a bug in PdfDocument. If an image was the last element added to the document and that caused a new page, the image would not show.

iText 0.50 (August 13, 2001)

  • Xml support: you can generate XML that follows an iText.dtd. You can convert these file to PDF, or you can convert XML file that obey to your own custom DTD to PDF. Very tidy HTML can be converted to PDF as well.
  • added nested tables to Table. This code was all provided by Geert Poels.
  • added the ptable. This is a new kind of pdf table where each cell is a ColumnText. The usable classes are PdfPTable and PdfPCell.
    Main features are:
      Simple XY table without rowspan or colspan. Uses nested ptables instead.
    • Each cell is a ColumnText with all the capabilities.
    • Aligns correctly in the horizontal and vertical directions.
    • Can be added to the document or placed at precise positions.
    • When added to the document always break at full rows. If the row does not fit in the full page it is dropped.
    • Precise table dimensioning. The resulting ptables dimensions are always available.
    • If using fitsPage only the new rows since the last call are calculated.
    • Supports minimum cell height and no wrap.
  • changes to PdfChunk. Corrected the encoding. Corrected the placement of images when they were the last element of the line. Corrected the split position that was off by 2. CJK characters are also used as split characters.
  • changes to PdfContentByte. Added clipping paths.
  • added PdfWriter.setViewerPreferences. Added the ability to change the way the documents open in Acrobat.
  • prevented the double close in PdfWriter.
  • added PdfWriter.getPageNumber.
  • added extra encoding checks in type1 and truetype fonts.
  • correction in PdfAction. Remote gotos by page now work correctly.
  • changed ColumnText. The PdfContentByte can be null if only the simulation is needed.
  • changed HtmlWriter. In HTML, anchors now work inside tables.
  • correction in Table.deleteRow. Multiple rows can be deleted and added.

iText 0.51 - iText 0.70 (September - October 2001)

based on paulo-80, paulo-81, paulo-82 and paulo-83
  • several font descriptors are available in BaseFont.getFontDescriptor. These are ascent, descent, cap height and italic angle.
  • added class PdfPTableEvent. This event is called when the table is rendered. Can be used to customize backgrounds with images, different borders, etc.
  • added Document.addCreator.
  • support for PdfAction in defined regions in PdfContentByte.
  • support for PdfAction in outlines.
  • added pdf encryption. Supports 40 bit and 128 bit key length and all the permissions/restrictions.
  • corrected error in Image when the rotation was in the 3rd or 4th quadrant.
  • PdfPCell(PdfPTable) was made public.
  • a newline as added to the final %%EOF line. A version of ghostscript choked without it.
  • some correction made when adding templates as images.
  • several speed and memory optimizations. Arrays are only copied when necessary and PdfDocument just caches the Id of the image, not the full image.
  • corrected a bug when adding very big images. The images would be added forever.
  • minimumHeight was added to PdfPCell. This does what fixedHeight used to do.
  • change of behavior for fixedHeight in PdfPCell. fixedHeight sets the fixed cell's height and truncates any text out boundaries.
  • added CCITT support.
  • anchors are inserted into the pdf document unchanged, not using the URL class.
  • changes to Image. A template can be used as an Image. Useful to include rotated text in tables or to create new characters.
  • changes to Image. A java.awt.Image can be forced to render in black and white.
  • jdk 1.4 support. The font encoding had problems in jdk 1.4.