iText RUPS Changelog

What's new in iText RUPS 5.5.9

Feb 18, 2019
  • Tagged PDF and accessibility:
  • Fixed an issue with tagging of nested lists.
  • Improvements in tagging of form XObjects.
  • When adding multiple Chunks to a Phrase, there's an optimization of merging them when they have the same properties. But this resulted in their accessibility attributes and roles being overwritten.
  • PDF/A:
  • Corrected the allowed annotation types for PDF/A-1, PDF/A-2 and PDF/A-3.
  • Fixed issues with output intents in PDF/A. We incorrectly flagged the generated PDF/A document as invalid when stamping an existing PDF/A document. There was also an issue when merging PDF/A documents.
  • Text extraction:
  • Refactored our text extraction implementation to make it more customizable.
  • Source code:
  • We have also continued our reorganization of the source code. The Android/GAE version of iText, iTextG, has been merged as a branch into our main Java repository: itext/itextpdf. From now on, iTextG will also be available as a Maven artifact on Central. To simplify building from source, we have also added a Vagrant configuration and updated our build files and build documentation.
  • Bugs:
  • Bugs
  • DEV-1624: Fix incorrect lists tagging if nested list was the last element
  • Fix issue with CIDSet generation CIDSet shall be based on font.maxGlyphId property of the font, it is maxp.numGlyphs for ttf, because technically we convert all unused glyphs to space, e.g. just remove outlines. So, we should mark as used all glyphs of the embedded font. And now we generate CIDSet for all PDF/A documents, include PDF/A-2 and PDF/A-3. Resolves: DEV-1615
  • Synchronization issue in Writers (DEV-1623)
  • Synchronization issue in Writers (DEV-1623)
  • Compare XMP metadata streams generically CompareTool already had compareXmp methods to extract and compare document level XMP. Expand that functionality to allow comparison of any XMP metadata stream. DEV-1629
  • Java 5 compatibility DEV-1623
  • Preserve documents IDs Don't force documents IDs to have length 16. Only create new ID when it's missing in the input file. DEV-1636
  • Adding a toString() method to an inner class of PdfPageLabels
  • Correct allowed annotation types for PDF/A The allowed annotation for PDF/A-1 and PDF/A-2 were switched. Redact annotation was missing. DEV-1639
  • PDF/A: test for allowed and forbidden annotation types were added DEV-1639
  • Fix incorrect tagging of inner content in FormXObjects DEV-1634
  • Fix image template incorrect tagging When template is wrapped in image, it becomes a single content item and is tagged as image. In other words, the Do operator is wrapped in marked content sequence. Template's inner content shall not be tagged in this case.
  • Correct case-sensitive name
  • Regression: Named Destinations creates invalid links since 5.5.7 There was an error in the previous fix in PdfDestination. iText added a page indirect reference to a destination array when it already that page. DEV-1649
  • onGenericTag event uses wrong Rectangle (DEV-1633)
  • onGenericTag event uses wrong Rectangle (DEV-1633)
  • Signing ZUGFeRD document throws PdfAConformanceException (DEV-1650)
  • Port several commits from C#: 7e92efe, d8b55fa, be0912a Fix issue with coping Output intents in case Pdf/A Fix issue with coping signed documents Fix issue with coping signed documents in PdfSmartCopy DEV-1648 DEV-1651
  • Make collections iteration order independent of Java version. Fix PdfCopyTest
  • Fixing boolean logic to allow PDFs with an incorrect pages dict to be read in debugmode
  • Add Vagrantfile for a controlled building environment
  • Change readme because of merged repos
  • A chunk should not be added to the previous chunk if either contains accessible attributes. SUP-1213
  • More precise <hr> tag support in XmlWorker DEV-1642
  • SUP-1223 Including a page label for page 1 since it cannot be read by Adobe LiveCycle without it.
  • Add strict javadoc profile Jenkins runs on Java 1.8 now, and Javadoc is a lot stricter. This generates lint errors, so the default is now not to check for javadoc lint. A profile was added for stricter javadoc checking.
  • Add PdfContentStreamProcessor:getRenderListener
  • Add convenience methods in text extraction API
  • Allow custom ContentOperators: convenience methods
  • Remove incorrect @since Javadoc for TextExtraction
  • Refactor LocationTextExtractionStrategy Improve extensibility: users can now override operations of the TextChunk (and thus influence behavior) without touching the default implementation and/or having to copy-paste the entire class.
  • Modernize code in LocationTextExtractionStrategy
  • Fix compile errors about @Override @Override doesn't work for interface implementations in Java 5
  • Fix sameLine bug in LocationTextExtractionStrategy Tests were failing
  • SUP-1220 Adding overloaded method that allows a page label to be put on the first page. Previous change that put labels on every page is being reverted.
  • Keep older API methods for TextChunk Some customers apparently use these methods, accessing them through reflection. While they should upgrade to take advantage of the new architecture, we will not force their hand.
  • Make TextChunkLocation a Comparable<> class So that users can plug in custom comparison logic, as may be required by uncommon sameLine implementations
  • Replace fixed underline offset which explicitly depends on font size in favor of underline offset multiplier which is multiplied by font size on flushing for CSS appliers. Fix underline offset multiplier bug for images in XmlWorker DEV-1670
  • Update BUILDING.md
  • Update build instructions Pass mvn command to ssh directly.
  • CleanUpTool: fix behavior in case when clipping path is cleaned DEV-1666
  • Don't require a /Lang entry for PDF/A-1a when stamping (DEV-1688)
  • Fix test
  • Fix the case when resourceRootPath wasn't taken into account, added another XmlWorkerHelper overload
  • XmlWorker: Fix incorrect width calculation of nested div in table DEV-1682
  • Fix unethical reading mode for AES256 encryption DEV-1681
  • Fix cloning in PdfEncryption DEV-1681
  • Deprecate MarkedObject and MarkedSection DEV-1647
  • Reverting changes made by 807797a955 commit. DEV-1692
  • SUP-1281 Check added to see if chunks that are being added have the same role so if the role is different it is not overwritten.
  • Check to see if either of the roles are null before comparing them.
  • Refactor CssAppliersImpl.clone() for extending
  • Make itextpdf dependency optional in pdfa, xtra, xmlworker This allows com.itextpdf:itextpdf to be replaced by com.itextpdf:itextg on Android / GAE.
  • Add links to all API docs
  • Get rid of parent.relativePath warnings The default value for `parent.relativePath` is `../pom.xml` and that default value gets injected in the effective pom, triggering the warning. Add an empty `<relativePath>` to `<parent>` so that it resolves the parent pom from the repositories.
  • Test refactoring
  • Fix multithreading issue in DefaultCounter. DEV-1699
  • Add Contributor Code of Conduct + update Contributing Guide
  • Update Readme
  • Update copyright
  • Skip javadoc errors
  • Reorganize pom files:
  • Explicitly set Java version to 1.5
  • Put blocks in the recommended ordering according to POM Code Convention: https://maven.apache.org/developers/conventions/code.html
  • Change mailing list to StackOverflow
  • Change SCM to Git Resolves QA-62
  • iText RUPS:
  • Null check in StructureTreeNode constructor
  • Reorganize pom.xml
  • Update program icon
  • XFA Worker:
  • XFAWorker: More deep parent subform repeating in case of wildcard binding DEV-1612
  • Update cmp files. DEV-1615
  • XFAWorker: Look for substituted font in the provided disk path in case it is not present in AcroForm DEV-1616
  • Investigate XFA Baluff test (different behavior on TeamCity/Jenkins and locally), Java version DEV-1627
  • Investigate XFA Baluff test (different behavior on TeamCity/Jenkins and locally), Java version DEV-1627
  • Fix cmp file DEV-1634
  • Fix cmp file Add a new XmlWorker test and fix cmp files which contain [bockcode]<hr>[/blockcode] tag DEV-1642
  • XFAWorker: use page areas which were previously multiplied by wildcard binding in case we need to get a new instance of page area SUP-1225
  • Add Vagrantfile
  • Add strict javadoc profile Jenkins runs on Java 1.8 now, and Javadoc is a lot stricter. This generates lint errors, so the default is now not to check for javadoc lint. A profile was added for stricter javadoc checking.
  • Newer version of maven-compiler-plugin
  • XFAWorker: Fix line-through CSS attribute application for RichText elements DEV-1670
  • Added a null check for targets. SUP-1251 Fix issue with Long value DEV-1680
  • Fix issue with parsing long values like '2.0E10' DEV-1680
  • Add cmp file for time zone UTC
  • Workaround for time zone issue Set the time zone to UTC when the test starts, and restore the original time zone at the end of the test. See: DEV-1678 Add new tests DEV-1684
  • Fix issue with invalid number pattern DEV-1684
  • XFAWorker: fix table splitting issue. Table content area was overlapped by row content area DEV-1668
  • XFAWorker: fix table leader overflow data binding problem - binding was only done properly for the first header DEV-1669
  • Get rid of a duplicate test
  • XFAWorker: Fix trailer overflow elements resolving in case a template tag was not bound to any data and did not therefore proceed to Form DOM. Improve SomExpression resolving DEV-1663
  • XFAWorker: Initial fix for parsing null{} and zero{} clauses DEV-1663
  • XFAWorker: fix issue with content area calculation when trailer overflow element is used DEV-1663
  • Fix cmp files DEV-1682
  • XFAWorker: fix NullPointerException in case FontFamily is not specified in FontDescriptor. Add a new test
  • XFAWorker: Fix page area retrieval in case of multiple nested page sets DEV-1691
  • Add new XFAWorker tests DEV-1690
  • XFAWorker: relayouting the whole subform in case presence property was changes via JS on $layout.ready event DEV-1690
  • XFAWorker: update empty status on relayout in case visibility status has been changed via JS DEV-1690
  • XFAWorker: fix check button caption placement in case reserve attribute is set to 0 DEV-1690
  • XFAWorker: add static page content to the end of the document if there was not enough pages produced by the XFA templat DEV-1687
  • Add logging to XFADemo
  • Fix Maven warnings

New in iText RUPS 5.5.6 (Oct 20, 2015)

  • 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

New in iText RUPS 5.5.4 (Oct 20, 2015)

  • Avoiding npe's when dealing with invalid images.
  • Making file a local variable and not a static variable
  • Adding a closeOperation on startApplication

New in iText RUPS 5.5.3 (Oct 20, 2015)

  • 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.

New in iText RUPS 5.5.1 (Oct 20, 2015)

  • Cleaning up unused objects before saving a file.
  • Fixed a problem when visualizing streams that don't consist of PDF syntax. These used to cause an exception in the syntax highlighter, now they are shown "as-is" (possibly illegible binary data).
  • Show warning before you're about to overwrite a file (giving you the opportunity to cancel the operation).
  • Reload file on save.
  • Code optimization: using loadFile() instead of new PdfFile() in the RupsController class.
  • Adding drag and drop functionality to open a PDF file in RUPS.

New in iText RUPS 5.5.0 (Apr 12, 2014)

  • Fixed a NullPointerException in the mouse listener class.
  • Fixed ArrayIndexOutOfBoundsExceptions in the PDF object panel.
  • Fixed an ArrayIndexOutOfBoundsException thrown when reloading a document when a selection has been made in the PDF Object panel.
  • Added autoselection when right clicking the mouse
  • Added functionality to save the opened PDF file to disk
  • Added functionality to delete entries in a dictionary
  • Added basic functionality to add a string to a dictionary
  • Added functionality to add entries (string, array,...) to a dictionary using PdfLiteral; excluded are: null and indirect references.
  • Added functionality to update values in dictionary entries.
  • Added keyboard shortcuts for opening and closing files
  • Added a plain-text representation of the loaded PDF

New in iText RUPS 5.4.5 (Apr 12, 2014)

  • Fix to make sure the structure tree is read: Although /S is a required key in a /StructElem dictionary, it may not be present in dictionaries with another type.

New in iText RUPS 5.4.4 (Apr 12, 2014)

  • UX: focus to password field on password protected files
  • UX: move cursor to the start of the content when opening a content stream
  • Added copy and clear functionality to the console panel.
  • Added copy to clipboard functionality to the stream panel. Copying with no selected text copies the entire text.
  • Added save to file to stream panel context menu (also allows saving only a selection of the complete stream).
  • Added save to file functionality form streams in the PdfTree panel.
  • Cleaned up metadata, such as a reference to an old version number as well as to the "working title" for RUPS (my initial idea was to call it "Trapeze").
  • Bugfix: password protected files couldn't be opened (not even after providing a correct password).
  • Bugfix: Dictionaries weren't rendered correctly when present in a content stream.
  • Bugfix: Hexadecimal strings weren't rendered correctly.
  • Added a tab that shows the Structure tree of the document.
  • Introduced debugmode so that some invalid PDF files (that throw an exception in iText) can be viewed anyway (even if only partially).

New in iText RUPS 5.4.3 Snapshot (Jul 30, 2013)

  • Reverted a fix applied in 5.4.2: the page table still wasn't correct and is now being created in a different way.

New in iText RUPS 5.4.2 (Jul 30, 2013)

  • Fix: isXML() never returned true, because PRStream.toString() doesn't return the content of the stream.
  • Fix: in some cases, pages were missing in the page tree. This was caused by the order in which the objects are processed; /Pages entries always need to be parsed first

New in iText RUPS 5.4.0 (Jul 30, 2013)

  • Adding missing brackets for String values in the content stream
  • Solved the problem with missing page table (in some cases)
  • Fixed a problem in TextAreaOutputStream
  • Make it possible to view image streams as real images
  • Added error handling, some pages/page dictionaries were throwing nullpointer exceptions due to having no parent node.