iText 5.5.3



iText 5.5.3

  • Changes made by Alexander Chingarev
    • Added IM (ImageMask) as a name to PdfName.
    • Change of the access modifiers to public for the escapeString methods in the PdfContentByte() class and migration of these methods to the StringUtils class.
    • Bugfix in CompareTool: proper comparison of null PDF objects.
    • CompareTool refactoring.
  • Changes made by Pavel Alay
    • Fixed issue in datamatrix barcode. In some special cases the last symbols should be coded in ASCII, instead of placing Unlatch symbol.
    • Fixed issue with PdfCopy when merging fields with the same name.
    • Fixed issue with PdfCopy where annotations got lost because of confusing PdfIndirectReference and PRIndirectReference in the updateAnnotationReferences() method.
    • Fixed issue with PdfCopy when copying some types of AcroFields (comments and markup).
    • Changed the type of the permissions value from int to long for 128-bit ARC4 passwords (See question iTextSharp cannot open files with password if 128 bit rc4 on StackOverflow).
    • Fixed issue with PdfStamperImp: Regenerate fields and add /Matrix in case the size of the field's rectangle and the bounding box of the appearance stream are different.
    • Fixed issue with form field creation in PDF/A (adapting the PDF/A checkers).
    • CompareTool improvement: decode streams before comparing.
  • Changes made by Eugene Markovskyi
    • Fixed the PdfReader constructor that uses an external decryption process by adding a Certificate as a parameter as the certificate is always needed for correct decryption.
  • Changes made by Paulo Soares
    • Fonts: write text by glyph id.
  • Changes made by Raf Hens
    • Try to generate appearances when flattening, to avoid the many questions about the missing appearances when the document itself thinks that no appearances are needed.
  • Changes made by Michaël Demey
    • Made the process of getting the current iText version synchronized.
    • Added the setVisibleTopChoice() method to TextField. This sets a choice field list's first visible option.
    • PdfCopy didn't keep track of the current page number in its writer instance.
    • Added an extra check for the isTagged() method.
    • Fixed issue with the "spacing after" functionality.
    • Deal with floating elements inside a Paragraph before finalizing the process of adding that paragraph.
    • OCGRemover now removes OCProperties if the last OCG got deleted. Also deletes pagemode if it was set to UseOC (the default is USENONE, but this is an optional entry).
    • Flattening of annotations with appearance streams is now supported.
    • Fixed an issue where iText continued reading after an unsupported inline image was found, resulting in the exception "Could not find image data or EI". This fix stops reading after an unsupported image was encountered. The fix was improved by Kevin Day.
    • Sometimes the height check in `PdfDocument` exceeds the page height in cases where no content was added. This resulted in an empty page. This undesired effect was fixed.
  • Changes made by Kevin Day
    • Fixed issue with FileChannelRandomAccessSource: throw checked IOException for 0 size files instead of the IllegalArgumentException that was thrown, which could result in the underlying channel not being released by the caller.
    • More refined check of whether the inline image stream has been fully read or not when parsing PDFs.

XML Worker 5.5.3

  • Changes made by Eugene Markovskyi
    • The creation of a PDF table was moved to a separate method to allow customization.
    • Processing of the start attribute in an ordered list.
  • Changes made by Michaël Demey
    • General cleanup of ImageCSSApplier
      • CSS for borders is now also applied to images.
      • Automatic scaling of images has been turned off.
    • Added support for the align attribute in paragraph and only override the alignment if its alignment isn't the default.

iText RUPS 5.5.3

  • Changes made by Michaël Demey
    • Added the option to open in pdf viewer functionality added using ALT+O as short cut or using the menu.
    • Casting the permissions to int following the change in iText core.
    • RUPS now disables and enables menu items when appropriate ("Save as" and "Open in pdf viewer").
    • RUPS now ignores recursive nodes in the PDF Tree when navigating with a keyboard. I.e. RUPS doesn't jump to the referenced node when navigating using the arrows keys. RUPS still jumps to the referenced node when using a mouse.
    • If an expanded node has a single child, RUPS now automatically expands that child node.
    • Improved the position of dialogs.

XFA Worker 5.5.3

(This is a closed source project on top of iText and XML Worker.)
  • Changes made by Eugene Markovskyi
    • Fixed issue with a table that is not inserted on the correct place on the first page, but moved to the next page.
    • Zero line-height for paragraphs is ignored.
    • Processing of the break conditions (e.g. "break after") is improved; break the page if there is a targetType without target (it seems Acrobat has the same behavior).
    • Added support for PageArea with multiple ContentArea elements.
    • Rich text: the first <br> element is ignored to mimic Adobe Acrobat behavior.
    • Introduced processing of start attribute an in ordered list.
    • Move or duplicate table cell pre-processing to the "place" stage.
    • Fixed an issue involving empty space after table leader.
    • Fixed an issue causing incorrect pagination.
    • Improved the page breaking mechanism.
    • Improved the way table borders and their headers are drawn, as well as how tables are distributed over different pages.
  • Changes made by Pavel Alay
    • Fixed issue with the x property of a row subform.
  • Changes made by Alexey Subach
    • Fixed issue with table cells that weren't hidden properly.
    • Removed unnecessary hashset population in SubFormPositioner.
    • A new interface FormNode has been added to allow handling JS as well as TemplateTag. By default, XFATemplateTag will be returned, meaning that we will continue working in the old mode, but with a different interface. However, if some properties are changed via JavaScript, the necessary part of the template will be copied into the JS structures and the underlying FormNode implementation will be a RhinoJsObject (more specifically a JsNode).
    • Time and memory optimization when positioning and drawing objects using JS.
    • Removed unnecessary constructors removed from JsNode.
    • Added possibility to change properties for multiple nodes in JsNode.
    • Prototyping subformset.
    • Fixed an issue when setting property appliers in RhinoJsNodeList.
    • Fixed a formatting issue that caused displaying decimals as 00,50 instead of 0,50.
    • Generate layout based on x, y, w, h element properties that could be changed by JS.
    • Fixed issue regarding drawing borders of UI elements for <draw> elements.
    • Fixed an issue with a double footer generated on the last page (use only one html root tag in rich text).
    • Fixed a problem with underlined elements. Embedded elements now have height.
    • Fixed the XFATemplateTag methods getX() and getWidth().
    • Fixed issue regarding dynamic table layout (table cell moved to the right; fields had different borders).
    • Switch to using standalone Rhino library (Rhino 1.7R4).