iText 5.5.7



DateDeveloperMessage
2015-05-26 Pavel Mitrofanov Ported "use full range" functionality so that the Java version of the Clipper library can work with numbers as large as in the C# version; fixed a lot of bugs raised due to inconsistency between C# and Java versions of the library.
2015-05-14 Yulian Gaponenko Fix autobookmarking for headers in div
2015-05-15 Yulian Gaponenko Add keepTogether property to PdfDiv to indicate if the content of a div should be placed entirely on a new page or distributed over two pages, if it doesn't fit previous
2015-05-19 Yulian Gaponenko Fix incorrect fields merging when second document has the same reference as a non-widget annotation in the first document
2015-05-25 Yulian Gaponenko Fix PdfDiv keepTogether behavior when a page is empty
2015-05-07 Kevin Day Add support for incrementally writing the stamped PDF
2015-05-21 Pavel Morozov PdfReader now throws an InvalidPdfException if document has circular references in its Page Tree.
2015-05-21 Pavel Morozov Circular references in Resources caused an infinite loop
2015-05-25 Yulian Gaponenko Fix named destinations structure in document root
2015-06-01 Pavel Mitrofanov Fixed processing of degenerate subpaths, fixed some minor bugs, did some refactoring.
2015-05-28 Yulian Gaponenko Fix logic for skipping first/last header/footer in ptables
2015-05-29 Pavel Morozov Added an opportunity to add named destinations in and existing file via PdfStamper.
2015-05-30 Bruno Lowagie PdfReader: When null is read as a PdfLiteral, it isn't recognized as a PdfNull object
2015-06-04 Pavel Mitrofanov Fixed calculation of rotations for squares when zero-length dash pattern is used and line cap is set to projecting square
2015-06-09 Pavel Morozov Fixed bug with an incorrect glyph code page in acroforms.
2015-06-10 Pavel Mitrofanov Added possibility to manage field lock dictionary when signature field is created on the fly, so now there is no need to explicitly create signature field to manage mdp.
2015-06-10 Yulian Gaponenko Add external caching feature, add external caching for tag structure
2015-06-10 Pavel Mitrofanov Overrided toPdf method in PdfIndirectReference.
2015-06-18 Bruno Lowagie Avoid adding the same annotation twice
2015-06-22 Alexey Subach Make PdfReader#setPageContent method more consistent.
setPageContent used to remove recursively the old contents and reuse old xRefs, so if a content stream or an array of streams was reused across the pages or in other ways, the result of stamping was invalid. Now by default setPageContent does not remove old content recursively. But you can use a new overload to do so. When old content is not removed, it may be left in the resulting document. Use PdfReader#removeUnusedObjects() to clean up.
2015-06-23 Pavel Mitrofanov Fixed NullPointerException when there is the following line dash pattern in the document: [] 0 (solid). Also deleted incorrect method LineDashPattern.isZeroDashed and fixed LineDashPattern.isSolid (a path can be solid even if the phase is not zero, e.g. [3 0] 4).
2015-06-23 Pavel Mitrofanov Fixed PdfSignatureAppearance.preClose method behavior. Before this preClosed worked incorrectly because it retrieved field dictionary as widget annotation. It's incorrect in case when field and widget dicts are not merged. In case they were merged, everything worked as expected. The latter is the most possible case for digital signature fields, but it isn't obligated according to spec.
2015-06-23 Yulian Gaponenko Add null-pointer check for chunk background color
2015-06-24 Yulian Gaponenko TIFF images: extended the variety of possible types for fill order field.
2015-06-25 Benoît Lagae fix conversion of CMapKey of large font to byte[]
Convert CMap keys for fonts from char to byte[] without using String::getBytes(). Large fonts can have CMap keys falling in illegal char ranges (0xD800 to 0xDFFF), which are not handled graciously by String. Method call in FontDetails::convertToBytes, new method in StringUtils. Also unit tests in StringUtilsTest, because this is a low-level issue.
2015-06-26 Yulian Gaponenko add transparency support for fill color and for stroke color; XmlWorker: add support for rgba colors.
2015-06-29 Benoît Lagae Delete unneeded parameter from new StringUtils method and add JavaDocs
2015-07-06 Bruno Lowagie Reuse of PdfDestination object causes problems with links
Once you set a page on a PdfDestination, you can't change it afterwards. This means that we need to be careful when creating different links using the same PdfDestination. A copy constructor was introduced and it is being used to create a new PdfDestination when creating links or actions.
2015-07-09 Pavel Mitrofanov Removed the code which was responsible for adding the signing time attribute to the digital signature since this attribute is prohibited in PAdES, part 3.
2015-07-14 Dmitry Trusevich CompareTool: Fails when the path to GhostScript/ImageMagic contains whitespaces
2015-07-09 Benoît Lagae Create fallback mechanism for illegal Color values
Mostly of interest for reading badly created PDFs.
2015-07-14 Benoît Lagae Reimplement fallback mechanism for illegal color values
New logic is x > 1 => x = 1 and x < 0 => x = 0, as Acrobat and Foxit do.
2015-07-13 Benoît Lagae Add BMC/EMC tags for RTL text in Tagged PDF
2015-07-17 Benoît Lagae Move hard-coded ReversedChars to PdfName
2015-07-20 Pavel Morozov Fixed wrong appearance generation for radio buttons
2015-07-21 Alexey Subach Improve tab support in case of right-to-left text
2015-07-21 Alexey Subach Make CompareToolTest more clear (compare generated reports). Minor improvements in CompareTool report (error order independent of Java version)
2015-07-27 Yulian Gaponenko fix PdfCopyTest#largeFilePerformanceTest failure on Java 8
2015-07-14 Kevin Day Add background color tracking to image render listener
Some image draw operations that use masks rely on background color to render the final image.
2015-07-28 Pavel Alay Fix issue with splitLate property for the first regular row of a table
Introduce additional state of splittedRow property to handle the first attempt to split the first row.
2015-07-29 Yulian Gaponenko fix serious performance issues with nested tables
2015-07-30 Benoît Lagae Allow PdfReader to overcome missing entry /Type in /Root/Pages
2015-08-03 Dmitry Trusevich Font parsing error for Noto font
Temporary fix for cff subset failure
2015-08-04 Pavel Alay Get font type from Typographic Family name property (name, id=16) and add subfamily property
More info on MS Typography. Contributed by Daniel Lichtenberger, CHEMDOX.
2015-08-04 Pavel Alay Update font selector algorithm
Before this update 'Arial Regular' and 'Arial Light' were considered being the same fonts: 'Arial' with Normal style and only alphabetical order controlled priority. From now when we add a regular font, we add it twice. For example 'Arial Regular'. We add it as 'Arial Regular' and as 'Arial'. So, if we try to find 'Arial' we will find 'Arial Regular'.
2015-08-11 Dmitry Trusevich Regression: Setting Compression after stamping images corrupts document
Update javadoc
2015-08-11 Dmitry Trusevich Text expansion does not work with all Chunk constructors
Check the accessible attributes when chunks are appended
2015-08-13 Dmitry Trusevich Inline image problem
Ignore all unsupported decode filters for inline images
2015-08-17 Vladimir Osipchuk Get rid of Java 1.5 compile errors
The Arrays.copyOfRange method was included only in Java 1.6. Introduced a copy method to Utilities.
2015-08-17 Alexey Subach Add shallow copy methods for lists. Refactor shallow copy for paragraphs
2015-08-18 Vladimir Osipchuk Make text expansion and PdfTemplate work together correctly
Add template without opening new MCBlock if one is currently opened for this template. See also: Text Expansion Not Working in Certain Conditions
2015-08-18 Vladimir Osipchuk Make text expansion visible in Adobe Acrobat Tag Properties dialog
Put text expansion not in the StructElem dictionary but in the marked content dictionary. Revise TextExpansionTest.
2015-08-19 Yulian Gaponenko Fix layers stamping bug
Before this fix, old layers disappeared from the document when new ones are registered.
2015-08-19 Yulian Gaponenko Fix iteration order differences between java 7 and 8
2015-08-20 Benoît Lagae Add null check in ColumnText copy method
2015-08-25 Pavel Mitrofanov Fixed encoding of SignedAttributeV2 field
The main problem was related to the fact that iText generated the SigningCertificateV2 attribute using BER. It happened because iText wrote AlgorithmIdentifier attribute (RFC 5035, 5.4.1.1, definition of ESSCertIDv2) even if the value was sha256 (which is the default). If we look into X.690-0207, clause 11.5, we can see that using DER all the components of a sequence having default values shall not be included. The next problem was that iText always wrote NULL as the value for the parameters attribute (see X.590, clause 7.2, AlgorithmIdentifier attribute). As this attribute is marked as OPTIONAL it should simply be omitted.
2015-08-21 Raf Hens If a font used in /DA is not in /DR, do a fallback
If a font is not available in the Font dictionary of the DR dictionary, we apply a fallback to still try to find the font. It makes sense to also do this when the Font or DR dictionary is missing altogether.
2015-08-25 Pavel Morozov Fixed bug with copying fields with the same name
2015-08-31 Pavel Mitrofanov Fixed CleanUp tool
There were two problems. The first one was related to incorrect string comparison (== instead of equals) when the actual operator was compared to q (save state) or Q (restore state). The next problem was in switching colors from stroke to fill (set color space operator (CS) wasn't converted).
2015-09-03 Yulian Gaponenko Add background image support for PdfDiv
2015-08-31 Mariano Cifre Show the path of the culprit resource when throwing a 'Read Timed out' exception.
2015-09-03 Michaël Demey Remove redundant static variable
2015-09-03 Michaël Demey Update documentation of DocWriter.
The methods "setMarginMirroring(boolean)" and "setMarginMirroringTopBottom(boolean)" always return false. Update the the documentation to reflect this implementation.
2015-09-04 Yulian Gaponenko Fix endless loop caused by reading incorrect xref
2015-09-07 Pavel Morozov Flag saveAppearance was added to setField method of AcroFields class.
2015-09-09 Yulian Gaponenko Revert changes made in [cca9f78b44]: arrays contained in ParentTree sometimes shall have doubled entries
Arrays that contain repetitions set the correspondence between marked contents identifiers (mcid) and the structure elements, which contain those marked content sequences. These repetitions are valid, as in fact single structure element may contain several marked content sequences.
2015-09-14 Pavel Alay minor changes in merge field; remove unused code

iText PDF/A

DateDeveloperMessage
2015-06-10 Yulian Gaponenko add external caching for pdfa writer
2015-07-17 Pavel Mitrofanov Fixed PdfA checkers. None of the PDF/A specifications (1, 2, 3) specify the Contents entry of the non-textual field as required, so the checks for Link and Widget annotations used to be too severe.
2015-08-06 Dmitry Trusevich Added PdfASmartCopy implementation
2015-08-10 Bruno Lowagie Added experimental ZUGFeRD implementation
2015-08-21 Raf Hens Replace String.isEmpty() for Java 5 compatibility

iText xtra

DateDeveloperMessage
2015-05-26 Pavel Mitrofanov Ported "use full range" functionality so that the Java version of the Clipper library can work with numbers as large as in the C# version; fixed a lot of bugs raised due to inconsistency between C# and Java versions of the library.
2015-06-01 Pavel Mitrofanov Fixed processing of degenerate subpaths, fixed some minor bugs, did some refactoring.
2015-06-04 Pavel Mitrofanov Fixed calculation of rotations for squares when zero-length dash pattern is used and line cap is set to projecting square
2015-06-23 Pavel Mitrofanov Fixed NullPointerException rising when some of redact annotations has no IC entry (in other words, redaction region is left transparent), added corresponding test.
2015-06-23 Pavel Mitrofanov Fixed NullPointerException rising when there is the following line dash pattern in the document: [] 0 (solid). Also deleted incorrect method LineDashPattern.isZeroDashed and fixed LineDashPattern.isSolid (a path can be solid even if the phase is not zero, e.g. [3 0] 4).
2015-08-21 Pavel Mitrofanov Fixed the code responsible for determination of whether glyph and redacted annotation rectangles intersect each other.
2015-08-31 Pavel Mitrofanov Fixed CleanUp tool
There were two problems. The first one was related to incorrect string comparison (== instead of equals) when actual operator was compared to q (save state) or Q (restore state). The next problem was in switching colors from stroke to fill (set color space operator (CS) wasn't converted).

XML Worker

DateDeveloperMessage
2015-05-13 Amedee Van Gasse normalize line endings
2015-05-14 Yulian Gaponenko remove NoStackException used in not exceptional flow; add test for autobookmarking
2015-05-13 Alexey Subach Fix empty CDATA processing
2015-05-15 Yulian Gaponenko add support for "page-break-inside: avoid" css tag
2015-05-20 Yulian Gaponenko change role property of paragraphs which contain parsed html headers
2015-05-25 Yulian Gaponenko add support for page-break-inside: avoid for tables
2015-05-22 Alexey Subach Fix work with tags of irregular case, e.g. <B> instead of <b>. Fix spaces sanitization, allow HtmlPipeline parsing customization.
2015-06-05 Yulian Gaponenko fix bullets font style inheritance
Now bullets inherit their font style from corresponding list items and not from list styles.
2015-06-22 Yulian Gaponenko table alignment support, alignment applying refactoring
2015-06-23 Michaël Demey Improve missing context error message
Old error message contained "funny" text. Replace this by a more serious text.
2015-07-27 Justin Klinger NoNewLineParagraph Bugfix
The check on line 233 currently always fails because an element will never be an instance of the image tag processor class.
2015-08-17 Vladimir Osipchuk Provide identical iteration order in different Java versions
2015-09-01 Yulian Gaponenko Fixed css applying to the direct text inside div tag
2015-09-03 Yulian Gaponenko Add initial support for background-image css property for div tags
2015-09-03 Yulian Gaponenko Fix incomplete css parsing
2015-09-04 Yulian Gaponenko Add generalized url links resolver, add new way to set resources path

XFA Worker

DateDeveloperMessage
2015-05-15 Alexey Subach Data binding fixes in case of binding to same data node and minOccur = 0.
2015-05-22 Alexey Subach Initial implementation of loadXML function for RichText. Fix RichText processing in DataPipeline. New prototypes to be able to check isNull for Image fields.
2015-05-25 Alexey Subach Add possibility to use loadXML JS function for loading images
2015-05-27 Alexey Subach Processing of nested JavaScript in break conditions which decides whether the break condition will be applied or not. In case JS code throws an exception, the break condition will not be applied
2015-06-26 Alexey Subach Initial parsing of config package. Processing fracDigits property
Locale specified in /config/acrobat/common/locale in Config package will override locale even if it's specified as an element's attribute. So we mimic Acrobat behavior in this respect. FracDigits property is treated differently dependent of XFA version. Mimic Acrobat as well. Minor cosmetic changes.
2015-07-02 Benoît Lagae Correct a presumable typo which causes NPE
2015-07-20 Alexey Subach Flatten form even if the dataset is empty
2015-08-04 Alexey Subach Fit barcode width in the available area correctly. Support subtypes of barcode 128.
2015-08-05 Alexey Subach Fix alignment problem - proper caption element area calculation in draw elements
2015-08-05 Alexey Subach Fix paragraph alignment problem in case the alignment is specified in RichText
2015-08-05 Alexey Subach Fix xfa.record property retrieval - it is now equivalent to the root node of the xml data
2015-08-04 Pavel Alay Update XFA font selector algorithm
Before this update 'Arial Regular' and 'Arial Light' was the same fonts: 'Arial' with Normal style. And only alphabetical order controls priority. From now when we add regular font, we add them twice. For example 'Arial Regular'. We add them as 'Arial Regular' and as 'Arial'. So, if we try to find 'Arial' we will find 'Arial Regular'.
2015-08-07 Alexey Subach XFAWorker: More accurate 2D barcode drawing, more precise rows/columns ratio and bar height/width for BarcodePDF417
2015-08-17 Alexey Subach XFAWorker: Support lists in RichText
2015-08-17 Alexey Subach Refactor #cloneShallow() in XFAParagraph
2015-08-18 Alexey Subach Fix FileNotFoundException - do not write to directories which are not explicitly allowed
2015-08-21 Alexey Subach Avoid creating invalid Pdf/A flattening results caused by using unembedded ZapfDingBats symbols
2015-09-02 Alexey Subach
  1. Fix problem DrawElement height shortage problem.
  2. Implement InstanceManager's count property setter.
  3. Fix break elements tag selection
2015-09-15 Alexey Subach Fix instanceIndex property implementation