Changes in itext-paulo-155 (2005-10-19) - added 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. - Image.skip() didn't check for EOF. - Image.toUrl() didn't escape the filename chars. - in AcroFields lists couldn't be set by the export value - fixed the image alignment in ColumnText.addElement() - PdfReader made the wrong assumption that the trailer word was always followed by '\n'. - PdfReader checks for /Content null. - Identity-H fonts with subset==false will include all the font. - possible to create an empty PdfAnnotation. - case insensitive font search in FontFactory and a much better font family pairing. - all the cvs changes. See the cvs logs for more information. Changes in itext-paulo-154 (2005-05-04) - 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 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. Changes in itext-paulo-153 (2005-03-14) - 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. Changes in itext-paulo-152 (2005-02-11) - 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. - added a fix for transparency in Image for java.awt.Image. Contribution by Chris Nokleberg. - fix in Phrase to accept null strings. Contribution by August Detlefsen. - 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. Changes in itext-paulo-151 (2005-01-29) - 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. Changes in itext-paulo-150 (2005-01-24) - 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. Changes in itext-paulo-149 (2005-01-11) - 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. Changes in itext-paulo-148 (2005-01-06) - new OCG layer interface with parent/child relationship, zoom, radio groups, etc. - fix in XfdfReader to close the file. Changes in itext-paulo-147 (2004-12-29) - added full support for Optional Content Groups (OCG) also known as layers. This covers not only the content streams but also annotations and XObjects. See the examples. - 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. Changes in itext-paulo-146 (2004-12-26) - removed PdfArray.add(PdfArray) that broke iText in many places. Bug introduced in itext-paulo-144. - signatures with hash algorithms described as signature algorithms will be correctly verified. Changes in itext-paulo-145 (2004-12-23) - all the cvs changes - 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. Changes in itext-paulo-144 (2004-12-13) - all the cvs changes - added support for multiple signatures, revision information and extraction. Examples at http://itextpdf.sourceforge.net/howtosign.html. - 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 lenght as a not compressed object. Changes in itext-paulo-143 (2004-11-29) - all the cvs changes - 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 http://itextpdf.sourceforge.net/howtosign.html#signextdicattrib - 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. Changes in itext-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 nCipher dse200. Changes in itext-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. Changes in itext-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 & 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. Changes in itext-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. Changes in itext-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. Changes in itext-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. Changes in itext-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. Changes in itext-paulo-135 (2004-08-19) - PdfPTable.skipFirstHeader() is working again. - Chunk.setHorizontalScaling() works with any text alignment. Changes in itext-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. Changes in itext-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. Changes in itext-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. Changes in itext-paulo-131 (2004-05-12) - romoved 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. Changes in itext-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. Changes in itext-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. Changes in itext-paulo-128 (2004-02-02) - added PdfCopyFields to concatenate PDF documents including the fields. - 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). Changes in itext-paulo-127 (2003-12-10) - 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. Changes in itext-paulo-126 (2003-09-29) - all the current CVS changes. - 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. Changes in itext-paulo-125 (2003-08-12) - all the current CVS changes. - added support for BMP in RTF. - removed the dependency on TextLayout for the bidi order levels. The awt toolkit is nor needed anymore 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. Changes in itext-paulo-124 (2003-08-04) - several changes made to ease the port to jdk 1.1 - the port to jdk 1.1 is back again. Source and jar is provided. The jar is compiled in compatibility mode (-target 1.1) with jdk 1.4 and the bootclasspath set to jdk 1.1.8. If it works for you, great. If it doesn't, don't complain to me and compile it yourself. - 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. Changes in itext-paulo-123 (2003-07-10) - 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. Changes in itext-paulo-122 (2003-06-26) - the subset prefix is generated randomly. Acrobat has problems in inserting pages with fonts with the same prefix. Changes in itext-paulo-121 (2003-06-25) - 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. Changes in itext-paulo-120 (2003-06-20) - all the changes in the CVS. - 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. Changes in itext-paulo-119 (2003-05-19) - 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. I expect the next version to support CFF outlines. Changes in itext-paulo-118 (2003-04-28) - 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. Changes in itext-paulo-117 (2003-04-23) - 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. Changes in itext-paulo-116 (2003-04-17) - 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. Changes in itext-paulo-115 (2003-04-08) - 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. Changes in itext-paulo-114 (2003-03-27) - all of the content of the official 0.98 - last version broke PdfCopy and PdfStamperImp Changes in itext-paulo-113 (2003-03-25) - 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 in itext-paulo-112 (2003-03-10) - 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. Changes in itext-paulo-111 (2003-03-10) - 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. Changes in itext-paulo-110 (2003-03-05) - 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(). Changes in itext-paulo-109 (2003-02-24) - 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. Changes in itext-paulo-108 (2003-02-10) - 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. Changes in itext-paulo-107 (2003-01-06) - 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. Changes in itext-paulo-106 (2002-11-18) - 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. Changes in itext-paulo-105 (2002-10-25) - 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. Changes in itext-paulo-104 (2002-10-21) - 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. Changes in itext-paulo-103 (2002-09-23) - 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. - 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(). - imported pdf documents are closed even if an exception is thrown. - fixed a bug in CCITTG4Encoder. Some bit sequences threw an exception. - cjkfonts.properties and cjkencodings.properties are now together with the afm. - added transition support for pdf. Contribution by Josselin PUJO. - fixed the missing bookmarks in jdk 1.2. - improved suport for WMF. Changes in itext-paulo-102 (2002-08-20) - fixed a problem with multiple repeated images in Table. - fixed the kerning in TrueTypeFont.java - PdfContentByte.showText(PdfTextArray text) was made public. - PdfGraphics2D.create() returns a copy and not the same object. - 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. Changes in itext-paulo-101 (2002-07-12) - 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. Changes in itext-paulo-100 (2002-06-20) - 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. Changes in itext-paulo-99 (2002-06-18) - 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. Anottation 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. Changes in itext-paulo-98 (2002-06-04) - 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. Changes in itext-paulo-97 (2002-05-06) - 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. The other types will be supported in the next release. - 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. Changes in itext-paulo-96 (2002-04-16) - added PdfGraphics2D, a Graphics2D canvas to write to PDF. Main contribution by Jim Moore with several bits from Jeremy Bowman [bowmanjm@attbi.com] and Kevin Galligan [KGalligan@e-matinc.com]. - optimizations in ByteBuffer.formatDouble() by David Teran [david.teran@mail.cluster9.com]. - optimizations in BaseFont for the encoding Cp1252. - several other optimizations. - background color in Chunks and generic annotations. Changes in itext-paulo-95 (2002-04-08) - 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 . Changes in itext-paulo-94 (2002-03-22) - outlines can be inserted in any order Changes in itext-paulo-93 (2002-03-21) - added form fields. All the types are supported. Thanks to Phillip Pan for an initial input. I ended up not using his code but I got some good ideas, though. - added new action types. - added new annotation types. Annotations can be placed at precise positions in the page. - added a fix to JPEG CMYK images provided by Phillip Pan. - added BaseFont.getFamilyFontName(). - corrected a bug in Barcode39 where the 'A' was the same as the '9'. Changes in itext-paulo-92 (2002-02-28) - fix to bug introduced to PdfReader.getPageSizeWithRotation(). - annotations now work correctly in rotated pages. - example table_event.java was missing the update. Changes in itext-paulo-91 (2002-02-27) - added colspan to PdfPTable. - the interface PdfPTableEvent changed because of colspan. See the example table_event.java for a quick way to fix code without colspan. I know that 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. - eliminated Rectangle.setRotation(). This can create inconsistencies. Use Rectangle.rotate() instead. - 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. - updated examples: table_event.java, test_barcodes.java. New example: table_event_colspan.java Changes in itext-paulo-90 (2002-02-19) - 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 and PLANET. - added JavaScript actions. - added document level JavaScript. - added local goto action by page. - added chained actions. - font widths can be changed. Changes in itext-paulo-89 (2002-02-05) - added colored and uncolored tiled patterns (code provided by Phillip Pan). - added named actions and launch actions. - java.awt.Images and raw images in BW are compressed with CCITT G4. - corrected bug in using templates as images used in PdfContentByte.addImage(). This also fixs the bug with WMF in the same situation. - fixed bug in reading pdf with multiple uncompressed page contents. - the pdf reader is now less strict in reading streams. Some documents don't follow the specs and failed although Acrobat Reader could open them. - finalize() eliminated from iText. - better error handling, mainly in close(). Changes in itext-paulo-88a (2002-01-18) - PdfImportedPage was broken Changes in itext-paulo-88 (2002-01-17) - added support for spot colors (code provided by Phillip Pan). - added support for Gray, CMYK and spot colors in Paragraph and other high level constructs. - added support to retrieve the full name of the font in BaseFont. - Rectangle.rotate() when applied to a page rotates the page rather that only changing the dimensions. Ghostscript has troubles with printing without this change. - minor changes to header detection in PRTokeniser. - minor memory improvement in reading fonts from arrays. Changes in itext-paulo-87 (2002-01-03) - all fixes in the CVS to date. - added BaseFont.getPostscriptFontName(). - added BaseFont.getCodePagesSupported(). Gets the code pages supported by the font. This has only meaning with True Type fonts. - added support to import pages from other PDF documents. - added explicit masking and stencil masking to images. - fonts can also be loaded from byte arrays, not only from files. - fonts can be loaded without being cached. - added BaseFont.enumerateTTCNames() to list all the names inside a TTC font. Changes in itext-paulo-86 (2001-12-10) - all fixes in the CVS to date. - added suport for True Type Collections. Quite useful for using CJK fonts in Windows, such as msgothic.ttc, where the fonts are in this format. - added support for page labels. Page labels are used to identify each page visually on the screen or in print. Changes in itext-paulo-85 (2001-12-03) - all fixes in the CVS to date. - corrected bug with jpg images input as a byte array. - added open actions. When the document is opened an action can be called to position the document in a certain page or to call an URL, for example. - support for unicode meta tags in pdf such as author. - true type fonts can be used in unicode addressing mode. This is the only way to use this fonts with some encodings, such as Thai. CJK fonts can also be used this way, in fact, all the encodings can be used this way at the expense of 2 bytes per character instead of one. - support for true type font subsets. Only the glyphs actually used in the document are stored. The reduction of document size with fonts embedded is dramatic. - support for having different line break characters. - changed greek character handling in Phrase. Only the fonts (class Font) not constructed with BaseFont are elected to be automatically replaced with Symbol when greek characters are present. It was impossible to use a font with greek characters without them being replaced automatically. Changes in itext-paulo-84 (2001-11-12) - correction in PdfEncryption. The mask permission bits were incorrect and allowed the security parameters to be changed in Acrobat. - corrected PdfPTable. Some cases of tables were not crossing correctly the pages. - chapters and sections have the option of presenting themselves as opened or colapsed. - improved line breaking for CJK fonts. - support for windows metafiles. - support for getting the dots-per-inch in an image. Usefull to get the image dimensions. This information is always available in WMF and sometimes in PNG and JPEG. - the last row in a nested PdfPTable is stretched to occupy the entire cell. Fix provided by Jin-Hsia Yang. - corrected the parameters bounds in PdfContentByte.setLineCap and PdfContentByte.setLineJoin. - added PdfContentByte.setLiteral. Allows the insertion of arbitrary content in the stream. - several new font descriptors are available in BaseFont.getFontDescriptor. These are all related to the font box dimensions. Changes in itext-paulo-83 (2001-10-22) - 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. Changes in itext-paulo-82 (2001-10-03) - added pdf encryption. Supports 40 bit and 128 bit key length and all the permissions/restrictions. Changes in itext-paulo-81 (2001-09-27) - 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. - included the corrections made by others since version 0.52. - 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 in itext-paulo-80 - 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. Changes in itext-paulo-79 - Bruno added many changes to accomodate the XML support. This has some impact in the way that Phrase propagates the attributes. - 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. Changes in itext-paulo-78 - 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". Changes in itext-paulo-77 - 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. Changes in itext-paulo-66 - 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. Changes in itext-paulo-64 - 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. Changes in itext-paulo-58 - correction to PdfChunk. I was overzealous in the optimization and that caused the line to be bigger than it should in the split and truncate methods. Changes in itext-paulo-57 - correction of leading rounding - code changes to ease the port to jdk1.1.x - PdfpageEvent was changed to an interface Changes in low_49 - 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 - it still works as before with html - 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. I think that it's time to do this as the precision offered with the ints was showing badly in the text justification. - 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)