Release iText 5.5.6

For the release of version 5.5.6 of iText 5 Core, we have continued working on the CleanUp functionality in the xtra package. We now support redaction that involves lines and shapes.

8th May 2015
admin-marketing

For this release, we have continued working on the CleanUp functionality in the xtra package. We now support redaction that involves lines and shapes. To achieve this, we enhanced the parser package so that it now also produces parsing info about operators such as moveTo, lineTo and stroke. We used a third party clipper library to do geometric calculations.

Release notes

iText 5.5.6 Core for Java and .NET

There were also some improvements with respect to Arabic text. We are looking at fonts in general, and we are making good progress, but please don't expect the results in the next couple of releases. Better font support requires a lot of changes at the lowest level of iText and we won't release new font functionality before 2016.

As always, we've added plenty of improvements and applied several bug fixes based on feedback from our paying customers and based on feedback from users on StackOverflow. Note that the changelogs contain links to JIRA: that's our closed ticketing system. Only paying customers have access to this issue tracker, but most of the tickets are only visible to core iText developers.

Note: There was a mistake in the metadata of iText PDF/A 5.5.6: the Maven POM file still listed iText 5.5.6-SNAPSHOT as a dependency. We have fixed this in iText PDF/A 5.5.6-1. This is only relevant if:

  • You build iText PDF/A from source.

  • You use Maven's dependency mechanism in your project. In this case set the dependency of your project on itext-pdfa 5.5.6-1 instead of 5.5.6.

Functionally, versions 5.5.6 and 5.5.6-1 are equivalent. So if you have already deployed 5.5.6, there's no need to replace it with 5.5.6-1.

From svn on SourceForge

We have successfully moved from svn on SourceForge as our main code repository to git on a private GitLab server. From out GitLab server, the source code is now distributed to SourceForge (search for the git repository, the svn repository is no longer updated) and GitHub. Changelogs are now mostly generated automatically based on the GitHub logs.

This move immediately triggered some pull requests with code contributions from developers like you. One of these contributions made it into the final release: PdfGraphics2D now has support for CMYK.

iText 5.5.6 Core

  • iText 5.5.5 still referred to 2014. Starting with iText 5.5.6, the producer line will mention 2015.

  • resolve some issues with div positioning

  • Body color issue solution

  • Updated Documentation to reflect incompatibilities in table configuration.

  • Wrong Body element processing in PdfDocument. pageEmpty property should be true.

  • Came across a PDF where the /Pages reference pointed to a /Page dictionary and not a /Pages dictionary. This threw an ArrayIndexOutOfBoundsException. This is now handled using an InvalidPdfException (SUP-820)

  • DEV-1259: Issue with wrong implementing UNDERLINE if Chunk has newline symbol inside.

  • Adding a class that can be used to count how many bytes are needed for a specific page (to be used in the context of PdfCopy).

  • BarcodeQRCode: add a method for drawing qr code directly on canvas.

  • (SUP-766) TIFF offsets are absolute (starting from the start of a file). I changed a seek that was happening relative to the current pointer.

  • Fix for incomplete table (DEV-1260)

  • CompareTool: fix StackOverflowError in case of repeated recursive objects comparison.

  •  DEV-1302: Updated error messages for PdfArray PDF/A-1 compliance

  • Changed faulty error message DEV-1302

  • Tagged PDF: Prevent infinite loops when there is a missing entry in the NumTree of the StructureTreeRoot. DEV-1293 SUP-854

  • Added classes for path abstraction

  • Modified PdfContentStream to be able to process path construction and painting, extended existing render listener

  • Improving Tab stop implementation for RTL writing direction

  • Added operators for W and W* in PdfContentStreamProcessor, fixed currentPoint initialization in Path, added new callback in ExtRenderListener interface

  • Processing of nested lists in ColumnText. List items are disappeared after nested list if the nested list has bottom nested list. SUP-879 Nested List items not displaying properly

  • SUP-883 preventing an arrayindexoutofboundsexception when assertions are enabled

  • SUP-761 Text Extraction returns identical coordinates

  • Refactored code (Removed unused awt.Shape from parser.Shape hierarchy, changed some constants from byte to int due to inconvenience in use and also did some other small changes)

  • Tagged Pdf: make the localDestinations (DESTS) a NameTree. DEV-1302

  • (IT-57) convert line endings for text files to LF

  • Refactored code

  • DEV-1333 XmlWorker: Fixed incorrect line spacing calculation in html lists.

  • DEV-1271 Fixed leading applying.

  • Added file header for DocumentLayoutTest.

  • Fixed resolving of numbers with multiple minus signs in PRTokensier.

  • updated check to include the header offset

  • BaseFont: update spaces.

  • DEV-669: Precision Fix.

  • added constructors to allow ExternalDecryptionProcess to be used with a byte[] or an inputstream (DEV-1361)

  • Remove duplicate setting of base font name.

  • Arabic characters with missing ligaturized glyphs should be able to fall back to non-ligaturized variants. These are mapped in the ArabicLigaturizer anyway, so I simply added a reverse mapping. JIRA tickets: SUP-911 DEV-1367

  • Fixed performance issues with PdfCopy (DEV-1368).

  • Port Clipper library from C# to Java (DEV-1369)

  • Fixed bug causing infinite loop in Merging PDFs with incomplete Num Tree (DEV-1293)

  • Fixed bug with stamping PDF with identical Contents array (DEV-1384)

  • Explicitly set LF endings for text files.

  • (DEV-1384) When stamping, differentiate between pages if they have the same Contents array

  • Eliminated double entries in Nums entry of ParentTree. DEV-1359

  • Check PDF/A-2 and PDF/A-3 compliance when signing (DEV-1378)

  • Add support for text in CMYK to PdfGraphics2D

  • Ported e770bc17 (Added possibility to apply piecewise linear approximation to Subpath)

  • Replaced usages of int (32 bit) with long (64 bit) in the Clipper library, refactored the code a bit

  • (Updated CleanUp tool to be able to process partially covered line arts. Graphics state parameters, such as miter limit, line joins, line width etc. are not processed yet)

  • Clipping: Added processing for line width, line cap style, line join style.

  • Clipping: Fixed method for getting piecewise linear approximation of subpath so that now it returns list of points with no duplicates, added another version of the method AddAll to Util, removed Obsolete annotation from Path.ReplaceCloseWithLine.

  • Replaced PdfCleanUpGraphicsState with existing GraphicsState from itext.pdf.parser package, added missing parameters into the latter

  • DEV-1380: Fixed incorrect processing of closed dashed subpaths (the effects of line join between the last and the first segment of a subpath was lost)

  • DEV-1325: Fixed CleanUp tool behavior when a clipping path is being completely removed. Starting from this moment, all the content, which was invisible due to a clipping path, won't be written to the resultant document, if the clipping path is completely cleaned.

  • DEV-1377 Fixed PdfPTable.setKeepTogether() when using a tagged writer

  • BaseFont: avoid synchronization of fontCache and using ConcurrentHashMap instead.

  • Fixed bug (wrong PDF operator was written into content stream instead of fill color operator).

  • first version of contribution guidelines CONTRIBUTING.md describes how users can send pull requests to iText.

  •  DEV-1379: Fixed bug (There were no Bevel join in the Clipper library. There is square join instead, which adds extra delta (linewidth / 2) at each convex edge)

  • Removed deprecated logic of saving and restoring color for tagged pdf documents in PdfContentByte class (DEV-1371).

PDF/A

Note

There was a mistake in the metadata of iText PDF/A 5.5.6: the Maven POM file still listed iText 5.5.6-SNAPSHOT as a dependency. We have fixed this in iText PDF/A 5.5.6-1. This is only relevant if:

  • You build iText PDF/A from source.

  • You use Maven's dependency mechanism in your project. In this case set the dependency of your project on itext-pdfa 5.5.6-1 instead of 5.5.6.

Bugs and improvements

  • Functionally, versions 5.5.6 and 5.5.6-1 are equivalent. So if you have already deployed 5.5.6, there's no need to replace it with 5.5.6-1.

  • SUP-817: Added temporary fix for bug related to font synchronization, fixed bug related to incorrect font caching

  • Adapted rule + error message in PDF/A compliance checker classes, and also tests for the changed behavior. DEV-1302
  • Tagged Pdf: test for iTextPDF commit: make the localDestinations (DESTS) a NameTree. DEV-1302
  • DEV-1303 Verify restrictions in PDF/A checks
  • Normalize line endings. Please don't forget to use -w when using diff or blame!
  • first version of contribution guidelines ...
  • CONTRIBUTING.md describes how users can send pull requests to iText.

RUPS

 

  • changed close behavior
  • added a public static int to allow different kind of close operations. This allows people using RUPS in their own projects without RUPS shutting down the JVM unwanted.

XML Worker

  • Resolve some issues with div positioning

  • Paragraph indents are mirrored in case RTL layout. It is done on Element processing level, not on CSS applying level.

  • Body color issue solution
  • Wrong Body element processing in PdfDocument. pageEmpty property should be true.
  • DEV-1252: Several bugs about analyzing font styles are fixed
  • Handle unquoted url() values
  • Css At-Rule issue is fixed. Jira DEV-128.
  • DEV-61: Wrong processing star comments (/* */)
  • SUP-800 xdp with fragments
  • SUP-662 Arabic content loosing html styles after converting from HTML to PDF
  • resolve strikethrough issue
  • Removed using of NoImageProviderException in non-exceptional flow.
  • XMLworker should ignore the CSS attribute "tab-stops ", instead of not showing contents of HTML tags with that attribute. DEV-1296
  • DEV-1287 XMLWorker ignores tag at the end of tag. Do not cut tags from paragraph items at all.
  • Correct Accessible PDF role for TH HTML tag
  • DEV-1333 XmlWorker: Fixed incorrect line spacing calculation in html lists.
  • DEV-1271 Fixed leading applying.
  • DEV-986 Fixed css parsing of @rules.
  • DEV-1360 Not all InputStreams support mark/reset
  • Fixed list rendering.
  • Process in tags content. Avoid synchronization in CssUtils.

iText xtra

  • Adding a class that can be used to count how many bytes are needed for a specific page (to be used in the context of PdfCopy).
  • DEV-1264: Fixed incorrect affine transformations caused cutting of incorrect image regions when the image was rotated or scaled, added additional test
  • Tool that allows you to split an existing PDF file in separate PDFs that do not exceed a predefined size.
  • DEV-1251: Added javadoc's for PdfCleanUp, refactored some code there.
  • Changed NotImplementedException to UnsupportedOperationException since the sun packages are not part of the supported, public interface (http://www.oracle.com/technetwork/java/faq-sun-packages-142232.html)
  • Improved CleanUp tool: now it can also process completely covered line arts.
  • Refactored code (Removed unused awt.Shape from parser.Shape hierarchy, changed some constants from byte to int due to inconvenience in use and also did some other small changes)
  • Updated CleanUp tool to be able to process partially covered line arts. Graphics state parameters, such as miter limit, line joins, line width etc. are not processed yet
  • Added processing for line width, line cap style, line join style).
  • Added processing for line dash pattern (closed path is processed a bit incorrect now)
  • Replaced PdfCleanUpGraphicsState with existing GraphicsState from itext.pdf.parser package, added missing parameters into the latter
  • Added static field to PdfCleanUpProcessor, allowing to prevent cleaned area from being filled (it's quite convenient for testing purposes)
  • Fixed bugs (transformation of annotation's rect, EndType value when doing offsetting for path using Clipper library, clipping rule, stroke to fill color
  • DEV-1380: Fixed incorrect processing of closed dashed subpaths (the effects of line join between the last and the first segment of a subpath was lost)
  • DEV-1325: Fixed CleanUp tool behavior when a clipping path is being completely removed. Starting from this moment, all the content, which was invisible due to a clipping path, won't be written to the resultant document, if the clipping path is completely cleaned.
  • DEV-1374: Redesigned CleanUp Render-Filter architecture so that now there is only one filter responsible for all areas to be cleaned from a document
  • Replaced Clipper library port with the correct one, refactored CleanUp code
  • Fixed bug (wrong PDF operator was written into content stream instead of fill color operator)
  • DEV-1379: Fixed bug (There were no Bevel join in the Clipper library. There is square join instead, which adds extra delta (linewidth / 2) at each convex edge)
  • Changed ArrayDeque to Stack since the former is not supported in Java 5.


Compatibility Matrix

Use our easy compatibility matrix tool to find more information about the compatibility between your current iText Core/Community version and our add-ons and 3rd-party standalone applications

Add-ons 7.1.5

iText 7 Core

7.1.5

iText 7 Community

7.1.5

pdf2Data

2.0.0 - 2.1.2

pdfHTML

2.1.2

pdfDebug

2.0.1

More add-ons 7.1.5

pdfSweep

2.0.3

pdfXFA

2.0.1

pdfCalligraph

2.0.3

pdfOCR+

/

pdfSearch

/

Contact

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now