PDF/A https://itextpdf.com/en en iText DITO: An alternative to PDF forms https://itextpdf.com/en/blog/itext-news/itext-dito-alternative-pdf-forms <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">iText DITO: An alternative to PDF forms </span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/ianmorris" typeof="schema:Person" property="schema:name" datatype="">ian.morris</span></span> <span property="schema:dateCreated" content="2019-05-22T15:32:35+00:00" class="field field--name-created field--type-created field--label-hidden">Wed, 05/22/2019 - 17:32</span> <div property="schema:text" class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <p><img alt="iText DITO: an alternative to PDF forms " data-entity-type="file" data-entity-uuid="8bf3dbae-f126-4d6c-8f7b-3d612ffedf18" src="/sites/default/files/inline-images/Blog%20Header_DITO_1140x300.png" /></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>PDF is a remarkably resilient file format. Although it’s now over 25 years old, in today’s modern business environments people use PDFs not only for presenting data, but also for capturing data using PDF forms. There are two main ways to create PDF forms, AcroForms and XFA forms, both of which come with their own advantages and disadvantages, as we will discuss.</span></span></span></span></span></span></p> <h4><span><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>A brief history of PDF forms</span></span></span></strong></span></span></span></h4> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>AcroForms were introduced in 1997 and are part of the PDF 1.2 specification. With AcroForms you can use certain objects (e.g. text boxes, radio buttons) and also some functionality which can be implemented using JavaScript. AcroForms however are limited in that they can only create static PDF forms.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>XFA forms were originally developed by JetForms, who were acquired by Adobe in 2002. They are XML-based, and essentially are XML files in a PDF wrapper. The main advantage they have over AcroForms is that they can be programmed to allow users to do things like dynamically add/remove table columns, attach a file with a button click, do calculations based on other form elements etc. However, XFA forms also have their own drawbacks.</span></span></span></span></span></span></p> <h4><span><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>Proprietary and non-standard</span></span></span></strong></span></span></span></h4> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>When XFA was first introduced by Adobe in 2003, XFA forms could only be designed using Adobe Forms Designer, later renamed as Adobe LiveCycle Designer and incorporated into Adobe’s LiveCycle platform. LiveCycle and XFA have been dogged by criticism over the years, both for LiveCycle’s prohibitive cost and XFA’s incompatibility with the older AcroForms. In addition, the JavaScript syntax used in XFA is not compatible with that used in AcroForms, and to program it requires advanced knowledge of the XFA specification. Browser support is also limited, and due to the proprietary nature of the format it was never an ISO standard. This means XFA is unable to be used for ISO-standardized PDF subsets used for archiving, accessibility and engineering, e.g. PDF/A, PDF/UA etc.</span></span></span></span></span></span></p> <h4><span><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>Mobile issues</span></span></span></strong></span></span></span></h4> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>With the rise of the Internet, customers have become used to filling in forms in an easy and interactive way. In addition, mobile phone and tablet usage have increased drastically, which become the primary requirement of any technology, including form technologies. However, XFA forms are not supported on mobile platforms without the installation of third-party apps , and many browsers and PDF viewers have issues with displaying them correctly. In fact, even Adobe’s own Reader Mobile app cannot display XFA forms.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>As XFA forms were designed to use a dedicated forms server to output the same information in either PDF or HTML format, they also have the same limitations as HTML. You are unable to use JavaScript to access and manipulate the internal structure of a PDF.</span></span></span></span></span></span></p> <h4><span><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>The death of LiveCycle</span></span></span></strong></span></span></span></h4> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>These issues (and others) lead to XFA being deprecated in the latest PDF 2.0 standard. Despite this, XFA lives on, but not as part of LiveCycle which was discontinued in 2017. Instead, creating XFA forms today requires the use of Adobe Experience Manager, a CMS (Content Management System) that itself is part of the Adobe Experience Cloud. This has caused much frustration amongst companies who have invested extensive time and effort into their XFA forms workflow. After so much expenditure on LiveCycle licensing and development, they are now faced with the cost of having to transition to Adobe Experience Manager. Unsurprisingly, they are also concerned about what the future holds for XFA, and whether Adobe will suddenly announce a new direction.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>All this points to the simple fact that XFA forms are no longer a good option for companies, especially ones which need to make use of dozens of forms which they have spent a great deal of time and resources developing.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>To help those who are stuck with XFA, we developed an iText add-on called <a href="https://itextpdf.com/en/products/itext-7/pdfxfa">pdfXFA</a> (which replaced our previous product XFA Worker). This add-on allows you to process and finalize dynamic XFA forms by automating form filling, and then flattening them to PDF for ease of use and security. If you’re unable to transition from XFA then pdfXFA is a great option, but we thought there was a better way of developing dynamic data-driven forms and templates to generate PDFs.</span></span></span></span></span></span></p> <h4><span><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>iText DITO: An alternative solution</span></span></span></strong></span></span></span></h4> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span><a href="https://itextpdf.com/en/products/itext-dito">iText DITO</a> is a tool that separates the data capture and data presentation functions from PDF. Using its intuitive designer, companies can now create HTML5 forms compatible with any device to capture data from the customers. It also supports the use of CSS stylesheets to apply consistent styling and company branding to your forms. Despite this, it will still present the resulting data using PDF, since PDF is still the best and most compatible data presentation format currently available.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>iText DITO is a solution that doesn’t force you to change your workflow, but instead can be adapted to your existing process. Once users have designed their forms and templates, it’s simple to integrate them into existing workflows by making use of the powerful and configurable iText back-end SDK. Designs can also be easily updated without requiring any technical skills.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>IText DITO also gives you options. Companies which do not need any data capture capabilities (e.g. for input web forms); as the data they make use of is already residing in their database, can just utilize the output templates functionality of iText DITO to generate standards-conforming PDF files for the documents they require, such as bank statements, tickets etc. </span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>The iText DITO template engine accepts data in the popular and widely supported JSON (JavaScript Object Notation) data-interchange format. JSON is also used for data binding to connect data and template elements, allowing the content in your PDFs or input forms to be dynamic. Data can be received from a range of sources, such as database queries, HTML5 input form submission results, or RESTful API calls. Wherever your data comes from, you just have to convert it into JSON format, and use the capabilities of the iText DITO back-end Java SDK to process it.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>iText DITO is a powerful enterprise-grade template solution, that builds on the proven PDF generation technology of <a href="https://itextpdf.com/en/products/itext-7/itext-7-core">iText 7 Core</a>. With the integration of our <a href="https://itextpdf.com/en/products/itext-7/pdfhtml">pdfHTML</a> and <a href="https://itextpdf.com/en/products/itext-7/pdfcalligraph">pdfCalligraph</a> add-ons, it also supports HTML5, CSS 3 and global language and writing system support so that your templates and PDF documents can be used all over the world. iText DITO is also the only templating solution that supports the <a href="https://www.pdfa.org/pdf-2-0-the-worldwide-standard-for-electronic-documents-has-evolved/">PDF 2.0</a> specification.</span></span></span></span></span></span></p> <p><span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span>Any organization struggling to create data-driven PDFs, or that needs to integrate live user data for input can benefit from iText DITO, saving you valuable time and reducing developer workload. If you’d like to see how easily iText DITO can fit into your document workflow, click the link to <a href="https://itextpdf.com/en/products/itext-dito#block-ditotrial">request a demo</a>.</span></span></span></span></span></span></p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/templates" property="schema:about" hreflang="en">templates</a> <a href="/en/tags/pdf-20" property="schema:about" hreflang="en">PDF 2.0</a> <a href="/en/tags/pdfua" property="schema:about" hreflang="en">PDF/UA</a> <a href="/en/tags/pdfa" property="schema:about" hreflang="en">PDF/A</a> <a href="/en/tags/tagged-pdf" property="schema:about" hreflang="en">tagged pdf</a> <a href="/en/tags/xfa-forms" property="schema:about" hreflang="en">XFA forms</a> <a href="/en/tags/itext-dito" property="schema:about" hreflang="en">iText DITO</a> </div> <span class="a2a_kit a2a_kit_size_25 addtoany_list" data-a2a-url="https://itextpdf.com/en/blog/itext-news/itext-dito-alternative-pdf-forms" data-a2a-title="iText DITO: An alternative to PDF forms "><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a><a class="a2a_button_whatsapp"></a><a class="a2a_button_email"></a></span> <div class="field field--name-field-article-type field--type-entity-reference field__items"> <div class="field__label">Article type</div> <a href="/en/blog-type/itext-news" hreflang="en">iText news</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-dito" hreflang="en">iText DITO® </a> <a href="/en/products/itext-7/itext-7-core" hreflang="en">iText 7 Core</a> <a href="/en/products/itext-7/pdfcalligraph" hreflang="en">pdfCalligraph</a> <a href="/en/products/itext-7/pdfhtml" hreflang="en">pdfHTML</a> <a href="/en/products/itext-7/pdfxfa" hreflang="en">pdfXFA</a> </div> <div class="field field--name-field-main-image field--type-entity-reference field__items"> <div class="field__label">Main image</div> <a href="/en/resources/media/images/blogfeature-imageditoalternative762x296png" hreflang="en">Blog_feature image_DITOalternative_762x296.png</a> </div> Wed, 22 May 2019 15:32:35 +0000 ian.morris 13481 at https://itextpdf.com Introducing iText DITO: A powerful template engine that converts data into iText-quality PDFs https://itextpdf.com/en/blog/itext-news/introducing-itext-dito-powerful-template-engine-converts-data-itext-quality-pdfs <span property="schema:name" class="field field--name-title field--type-string field--label-hidden">Introducing iText DITO: A powerful template engine that converts data into iText-quality PDFs</span> <span rel="schema:author" class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/ianmorris" typeof="schema:Person" property="schema:name" datatype="">ian.morris</span></span> <span property="schema:dateCreated" content="2019-05-06T11:29:47+00:00" class="field field--name-created field--type-created field--label-hidden">Mon, 05/06/2019 - 13:29</span> <div property="schema:text" class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <p><img alt="Blog Header_DITOrelease1140x300.png " data-entity-type="file" data-entity-uuid="acb45e7e-163c-4c4e-82e2-2179d0e56c01" src="/sites/default/files/inline-images/Blog%20Header_DITOrelease1140x300.png" /></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>We are proud to announce the release of </span></span><a href="https://itextpdf.com/en/products/itext-dito"><span>iText DITO</span></a><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>, the latest addition to the iText range of products. iText DITO is (as we said above) <strong><span>a powerful template engine that converts data into iText-quality PDFs</span></strong>, but what does that really mean, and why did we develop it? Whilst there are other templating solutions available, we’d like to take some time to explain why iText DITO is different, and what it could mean for businesses worldwide.</span></span></span></span></p> <h4><strong>Recognizing a need</strong></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Some time ago, we identified that a significant portion of use cases for our hugely successful </span></span><a href="https://itextpdf.com/en/products/itext-7/itext-7-core"><span>PDF library</span></a><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span> were to generate PDF documents from scratch, for example to create bank statements, airline boarding passes, insurance documents, contracts…the list goes on. Many of our customers need to produce these documents in massive quantities, for which iText with its low overhead and powerful API capabilities is ideal.</span></span></span></span></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>All these listed use cases have something in common; they all deal with variable data, that is, data that is different for each PDF that is produced. A bank statement for example, contains data unique to each customer. Their names, addresses, account numbers, and of course transactions and bank balances are all different.</span></span></span></span></p> <h4><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Templates to the rescue?</span></span></strong></span></span></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Of course, there are also similarities too. The bank’s name for example is unlikely to change, and the format and layout of the statement itself will remain constant, so templates are commonly used to determine how the generated statement will look, with fields determining where information is placed such as the bank’s name and address, company logo, and tables to contain numerical data. Data calculations may also be required, to calculate exchange rates, interest on loans etc.</span></span></span></span></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Sounds simple, right? Well…not quite. The first problem of course is making a design for the PDF output file so a suitable template can be created. In an ideal world, the person in charge of the project would ask a professional designer to create a template suitable for PDF output. The result would be a template design that’s both attractive, functional, and perfectly meets the business requirements, while also ensuring developers can implement the solution easily.</span></span></span></span></p> <h4><strong><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Reality bites</span></span></span></span></strong></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Back in the real world, however, there might be miscommunication between the people who need the template design and the developers who must implement it, leading to a series of changes in requirements, design, or features, which extends the development cycle. Once the design is finalized, developers then have to implement this design with their PDF library of choice, while also not forgetting to merge all the required data into the PDF correctly. This is not always easy, and sometimes even simple data calculations are difficult to implement, requiring developers to familiarize themselves with the PDF library’s API before any results can be achieved.</span></span></span></span></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Often developers end up designing the template themselves, as only they fully understand how to integrate it into the PDF generation process, but this can mean hard-coded templates that are difficult to revise. Not to mention that developers are not usually trained in PDF design, so the resulting template may not be as attractive as it could be!</span></span></span></span></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>As if that wasn’t enough, consider if the data that must be merged into the output PDF comes from a customer, through entering data on a website for example. Developers now have to also design the input form (or an alternative way to get the customer’s data), and in many cases, also parse and process the data to transform it into a suitable format before it can be inserted into the PDF generation pipeline.</span></span></span></span></p> <h4><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Enter iText DITO</span></span></strong></span></span></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Which brings us back to why we created iText DITO. It’s designed to simplify the lives of the developers and designers who have to implement solutions like the one we described above, and in many other types of workflow. The iText DITO solution consists of a template editor front-end, and an SDK back-end for integration into your document production process. Both templates (to generate PDF documents) and input forms (HTML5 forms to capture data from users) can be created using iText DITO, and anyone can design and create great-looking output templates and input forms in an intuitive, drag and drop WYSIWYG editor tool, whether you’re a designer or a developer. It’s HTML5-based, and you can use rich text and insert tables, images, headers and footers, checkboxes and more. What’s more, if you have CSS skills it’s easy to incorporate style sheets to apply to your templates for consistent company branding and style.</span></span></span></span></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>The iText DITO SDK is available as either a Docker Container image or as a native Java version. For most applications and environments, we recommended using the Docker image for convenience.</span></span></span></span></p> <h4><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Designing an example template</span></span></strong></span></span></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>To return to our bank statement example, below you can see a simple statement created in the iText DITO editor showing some of the available features such as rich text, images and tables to contain the account details and display the transactions:</span></span></span></span></p> <figure role="group" class="caption caption-img"><img alt="DITO Template Editor screenshot of a bank statement template" data-entity-type="file" data-entity-uuid="5115e12f-4df7-4aaf-affc-4b6a901d152f" src="/sites/default/files/inline-images/DITO_editing_bank1_2.PNG" /><figcaption>A simple bank statement template created with the iText DITO editor.</figcaption></figure><h4><span><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Data binding and JSON</span></span></strong></span></span></span></h4> <p><span><span><span>For variable data and calculations, iText DITO also has powerful data binding capabilities to connect data and template elements, allowing the content in your PDF or input form to be dynamic. In our bank statement for example, you can see how a balance can be calculated using the data calculation features of iText DITO: </span></span></span></p> <figure role="group" class="caption caption-img"><img alt="A view of the Data mapping mode of the iText DITO editor" data-entity-type="file" data-entity-uuid="6fd5cdf8-9eb9-4734-86db-a32f065a2f09" src="/sites/default/files/inline-images/DITO_editing_bank2_0.PNG" /><figcaption>An example of data binding in use. The field that will display the balance is highlighted, showing the calculation used.</figcaption></figure><p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>If your data is already stored in a database, for example, then you only need to create an output template. Alternatively, you might need to collect data from an input form and then insert it into the required place in your output PDF simply by linking the relevant fields in each template. iText DITO does this by using the power of JSON to transfer data from your chosen data source, whether it’s from an input form, RESTful API, a database, or wherever your data might be stored. All you have to do is to convert the data into JSON format for iText DITO to be able to work its magic.</span></span></span></span></p> <figure role="group" class="caption caption-img"><img alt="A view of the JSON data used by the template" data-entity-type="file" data-entity-uuid="c1916ace-badd-44cb-b41d-cd7dec573e4b" src="/sites/default/files/inline-images/DITO_editing_bank3.PNG" /><figcaption>The JSON data used for this template example. </figcaption></figure><figure role="group" class="caption caption-img"><img alt="A screen showing the PDF preview mode of the iText DITO editor" data-entity-type="file" data-entity-uuid="2703dea7-4d5c-4607-8518-72d1f327c524" src="/sites/default/files/inline-images/DITO_editing_bank4.PNG" /><figcaption>Finally, here we show the PDF Preview mode of the iText DITO editor, where you can verify the PDF output will be correct.</figcaption></figure><h4><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>The iText DITO SDK</span></span></strong></span></span></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>Speaking of magic, this is where iText DITO differs from other templating software. Built on the foundation of the </span></span><a href="https://itextpdf.com/en/products/itext-7/itext-7-core"><span>iText 7 Core</span></a> <span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>technology, it makes the integration into new or existing workflows easy by giving you access to the iText DITO API. It’s a uniquely scalable and robust solution for developers which, like iText 7 Core itself, is truly enterprise-grade. In addition, iText DITO is currently the <strong><span>only </span></strong>templating solution to support </span></span></span></span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span><span><span><a href="https://www.pdfa.org/pdf-2-0-the-worldwide-standard-for-electronic-documents-has-evolved/">PDF 2.0</a></span></span></span></span><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>.</span></span></span></span></p> <h4><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>pdfCalligraph and pdfHTML integration</span></span></strong></span></span></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>iText DITO fully integrates the </span></span><a href="https://itextpdf.com/en/products/itext-7/pdfcalligraph"><span>pdfCalligraph add-on</span></a><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span> which offers unparalleled support for many different languages and complex writing systems, enabling the templates you create to be used worldwide. With advanced typographic features for PDF creation and manipulation, pdfCalligraph gives iText DITO the ability to use special fonts and characters in multiple languages such as Arabic, Hebrew, Hindi, Thai and many more. Supporting compound characters, kerning, glyph substitution, and right-to-left languages, it’s a crucial part of the iText DITO package.</span></span></span></span></p> <figure role="group" class="caption caption-img"><img alt="An example of using English, Hindi and Punjabi text in the iText DITO Editor" data-entity-type="file" data-entity-uuid="0019b0aa-dd8d-4437-9997-793f2d5a409b" src="/sites/default/files/inline-images/DITO_languages_0.png" /><figcaption>An example of using English, Hindi and Punjabi text in the iText DITO Editor</figcaption></figure><p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>iText DITO also utilizes the power of our </span></span><a href="https://itextpdf.com/en/products/itext-7/pdfhtml"><span>pdfHTML add-on</span></a><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span> to enable seamless translation between the templates you design and the PDFs you produce. pdfHTML is an advanced HTML converter that supports both HTML5 and CSS3 code, giving you an exact reproduction as a PDF/A, PDF/UA or tagged PDF, while also supporting dynamic content such as barcodes.</span></span></span></span></p> <h4><span><span><strong><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>iText DITO: The complete package</span></span></strong></span></span></h4> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>By now, we hopefully have made it clear why we’re so proud of iText DITO.  It is the result of many months of research and development by the team, offering unrivalled power and functionality for both developers and less technical users. In many ways, it’s a natural continuation of the development of the iText library, which almost 20 years ago gave people the ability to create and manipulate PDF documents in ways that were simply not possible before.</span></span></span></span></p> <p><span><span><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>But even now, we’re not resting on our laurels. iText DITO will continue to be developed and improved just like iText itself, to add new features and functionality, and based on the feedback we get from our users. Speaking of which, if you’d like to try iText DITO yourself, click the link to </span></span><a href="https://itextpdf.com/en/products/itext-dito#block-ditotrial"><span>request a demo</span></a><span lang="EN-US" xml:lang="EN-US" xml:lang="EN-US"><span>. We’d love to hear from you!</span></span></span></span></p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/templates" property="schema:about" hreflang="en">templates</a> <a href="/en/tags/pdf-20" property="schema:about" hreflang="en">PDF 2.0</a> <a href="/en/tags/pdfua" property="schema:about" hreflang="en">PDF/UA</a> <a href="/en/tags/pdfa" property="schema:about" hreflang="en">PDF/A</a> <a href="/en/tags/tagged-pdf" property="schema:about" hreflang="en">tagged pdf</a> <a href="/en/tags/xfa-forms" property="schema:about" hreflang="en">XFA forms</a> <a href="/en/tags/itext-dito" property="schema:about" hreflang="en">iText DITO</a> </div> <span class="a2a_kit a2a_kit_size_25 addtoany_list" data-a2a-url="https://itextpdf.com/en/blog/itext-news/introducing-itext-dito-powerful-template-engine-converts-data-itext-quality-pdfs" data-a2a-title="Introducing iText DITO: A powerful template engine that converts data into iText-quality PDFs"><a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a><a class="a2a_button_whatsapp"></a><a class="a2a_button_email"></a></span> <div class="field field--name-field-article-type field--type-entity-reference field__items"> <div class="field__label">Article type</div> <a href="/en/blog-type/itext-news" hreflang="en">iText news</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-dito" hreflang="en">iText DITO® </a> <a href="/en/products/itext-7/itext-7-core" hreflang="en">iText 7 Core</a> <a href="/en/products/itext-7/pdfcalligraph" hreflang="en">pdfCalligraph</a> <a href="/en/products/itext-7/pdfhtml" hreflang="en">pdfHTML</a> </div> <div class="field field--name-field-main-image field--type-entity-reference field__items"> <div class="field__label">Main image</div> <a href="/en/resources/media/images/blogfeature-imageditoannouncement762x296png" hreflang="en">Blog_feature image_DITOannouncement_762x296.png</a> </div> Mon, 06 May 2019 11:29:47 +0000 ian.morris 13436 at https://itextpdf.com Digital transformation to paperless https://itextpdf.com/en/resources/whitepapers/digital-transformation-paperless <span class="field field--name-title field--type-string field--label-hidden">Digital transformation to paperless</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/daphnedetroch" typeof="schema:Person" property="schema:name" datatype="">daphne.detroch</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 10/29/2018 - 17:38</span> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <p>With companies and organizations caught up in the next wave of digital transformation, we offer a closer look at how PDF may overcome the traditional roadblocks on the way there and how it helps meet the goals of forward-thinking business strategies.</p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> <a href="/en/tags/zugferd" hreflang="en">ZUGFeRD</a> <a href="/en/tags/pdfa-3" hreflang="en">PDF/A-3</a> <a href="/en/tags/security" hreflang="en">security</a> <a href="/en/tags/digital-signatures" hreflang="en">Digital signatures</a> <a href="/en/tags/invoices" hreflang="en">Invoices</a> <a href="/en/tags/pades-5" hreflang="en">PAdES-5</a> </div> <div class="field field--name-field-whitepaper-file field--type-entity-reference field__items"> <div class="field__label">White paper file</div> <article class="media media--file media--file--default"> <div class="field field--name-field-media-file field--type-file field__items"> <div class="field__label visually-hidden">File</div> <span class="file file--mime-application-pdf file--application-pdf"> <a href="https://itextpdf.com/sites/default/files/2020-02/PP_-_Transformation_into_paperless.pdf" type="application/pdf; length=385673" title="PP_-_Transformation_into_paperless.pdf">Transforming to a world less papered with PDF</a></span> </div> </article> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-7" hreflang="en">iText 7 Suite</a> </div> <div class="field field--name-field-page-subtitle field--type-string field__items"> <div class="field__label">Subtitle</div> White paper </div> Mon, 29 Oct 2018 16:38:44 +0000 daphne.detroch 10191 at https://itextpdf.com Release iText 5.5.10 https://itextpdf.com/en/resources/releases/release-itext-5510 <span class="field field--name-title field--type-string field--label-hidden">Release iText 5.5.10</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/daphnedetroch" typeof="schema:Person" property="schema:name" datatype="">daphne.detroch</span></span> <span class="field field--name-created field--type-created field--label-hidden">Fri, 10/05/2018 - 10:53</span> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-changelog field--type-text-long field__items"> <div class="field__label">Release changelog</div> <h2><span><span><span><span><span><span><span>iText Core - PDF/A - Xtra - XML Worker 5.5.10</span></span></span></span></span></span></span></h2> <ul><li> <h2><span><span><span><span><span>Fix issue with multiple consequent tabs in case of right-to-left line<br /><a href="https://jira.itextsupport.com/browse/DEV-1701" target="_blank"><span>DEV-1701</span></a></span></span></span></span></span></h2> </li> <li><span><span><span><span><span>Make XMLWorker CssApplier framework extensible</span></span></span></span></span></li> <li><span><span><span><span><span>Make XMLWorker CssApplier setters public</span></span></span></span></span></li> <li><span><span><span><span><span>Disable strict javadoc checking for javadoc:aggregate</span></span></span></span></span></li> <li><span><span><span><span><span>Root POM wasn't bumped to 5.5.10-SNAPSHOT<br /> That's more cosmetic, because the POM is only used as an aggregater, not as a parent for the modules.</span></span></span></span></span></li> <li><span><span><span><span><span>Improved aggregated report<br /> Run with: mvn javadoc:aggregate</span></span></span></span></span></li> <li><span><span><span><span><span>AGPLv3 in MarkDown format<br /> Source: <a href="https://github.com/IQAndreas/markdown-licenses" target="_blank"><span>https://github.com/IQAndreas/markdown-licenses</span></a><br /> The text is identical to <a href="http://www.gnu.org/licenses/agpl-3.0.txt" target="_blank"><span>http://www.gnu.org/licenses/agpl-3.0.txt</span></a>, only the formatting was changed to look better on GitHub/GitLab sites.</span></span></span></span></span></li> <li><span><span><span><span><span>Make XMLWorker CssAppliers framework generic<br /> Only allow subclasses of iText Elements in Map&lt;&gt;</span></span></span></span></span></li> <li><span><span><span><span><span>Improve XMLWorker CssApplier docs &amp; license header</span></span></span></span></span></li> <li><span><span><span><span><span>XmlWorker: set default context key to class name of parent class for all descendants of CSSResolverPipeline and HtmlPipeline<br /> This fixes a problem of unavailability of corresponding pipelines in descendant classes are registered since the context keys are hardcoded. Now descendant classes will be correctly fetched if pipelines are overriden and for deep XmlWorker customization one would have to override getContextKey() and corresponding getHtmlPipelineContext() and getCSSResolver() for AbstractTagProcessor implementation<br /><a href="https://jira.itextsupport.com/browse/DEV-1703" target="_blank"><span>DEV-1703</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Bump version of maven javadoc plugin</span></span></span></span></span></li> <li><span><span><span><span><span>Enable taggedPdfADocumentUsingExternalCacheTest<br /> Closes <a href="https://jira.itextsupport.com/browse/DEV-1561" target="_blank"><span>DEV-1561</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Added documentation for markUsed</span></span></span></span></span></li> <li><span><span><span><span><span>Allow getting next MCID without using it (XTRA)<br /><a href="https://jira.itextsupport.com/browse/DEV-1706" target="_blank"><span>DEV-1706</span></a> (request from SUP ticket)</span></span></span></span></span></li> <li><span><span><span><span><span>Minor code fix in clean up tool</span></span></span></span></span></li> <li><span><span><span><span><span>Fix paths in a test</span></span></span></span></span></li> <li><span><span><span><span><span>Fix text alignment for &lt;p&gt; and &lt;div&gt; tags in case of right-to-left text</span></span></span></span></span></li> <li><span><span><span><span><span>Fix default run direction support for bidi algorithm, change default value of the run direction variables for layout elements</span></span></span></span></span></li> <li><span><span><span><span><span>Fix test failure. Avoid unnecessary static global variables changes in tests</span></span></span></span></span></li> <li><span><span><span><span><span>Make default text chunk location class public</span></span></span></span></span></li> <li><span><span><span><span><span>Fixed bug with XML parser not processing XML entities in attributes.<br /> Now special XML entities are processed correctly (e.g. &amp; to &amp;) when they're in an attribute value. Also, made related changes to tests, where we store html request with symbol "&amp;" in annotations. <a href="https://jira.itextsupport.com/browse/DEV-1735" target="_blank"><span>DEV-1735</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Remove $Id$ macros<br /> Jgit does not support .gitattributes and does not use the ident macro. This causes `jgit blame` not to work correctly (SonarQube needs this). Closes <a href="https://jira.itextsupport.com/browse/QA-76" target="_blank"><span>QA-76</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Port itextsharp github pull request <a href="https://github.com/itext/itextsharp/pull/18" target="_blank"><span>#18</span></a>: Add 'SuppressTagging' property to PdfContentByte.<br /><a href="https://jira.itextsupport.com/browse/DEV-1744" target="_blank"><span>DEV-1744</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Disallow Q operator in a BT-ET block</span></span></span></span></span></li> <li><span><span><span><span><span>Restore matrix when disallowing Q in BT-ET</span></span></span></span></span></li> <li><span><span><span><span><span>Reformat tabulation in a pom file</span></span></span></span></span></li> <li><span><span><span><span><span>Update CompareTool: try System.getenv if getProperty fails</span></span></span></span></span></li> <li><span><span><span><span><span>Fix XFAForm data retrieval from datasets: skip dataDescriptions and add non-leaf nodes to the search map<br /><a href="https://jira.itextsupport.com/browse/DEV-1722" target="_blank"><span>DEV-1722</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Change error message for conflict in RoleMap entry<br /><a href="https://jira.itextsupport.com/browse/DEV-1740" target="_blank"><span>DEV-1740</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix leading of paragraphs in XmlWorker in case of not default font sizes<br /><a href="https://jira.itextsupport.com/browse/DEV-1749" target="_blank"><span>DEV-1749</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Replace Indicator parameter type from Boolean to boolean for SpecifiedTradeAllowanceCharge<br /> SpecifiedTradeAllowanceCharge has a 1 .. 1 cardinality for Indicator in the ZUGFeRD 1.0 Technical Documentation, so null values shall not be passed to addSpecifiedTradeAllowanceCharge. Moreover, passing null value would lead to exception as Boolean is unboxed further in code anyway</span></span></span></span></span></li> <li><span><span><span><span><span>Arabic: fix isolated fonts in \uFxxx ranges<br /> If an isolated form is not available in the \uFxxx range, fall back to the base glyph in the \u06xx range. e.g. if \uFE8D (isolated alif) doesn't exist in a font, fall back to \u0627. Fixes <a href="https://jira.itextsupport.com/browse/SUP-1495" target="_blank"><span>SUP-1495</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>port pull request <a href="https://github.com/itext/itextsharp/pull/21" target="_blank"><span>#21</span></a> from .NET to Java<br /><a href="https://jira.itextsupport.com/browse/DEV-1774" target="_blank"><span>DEV-1774</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Set Java version of xtra to Java 7<br /> Closes <a href="https://jira.itextsupport.com/browse/DEV-1766" target="_blank"><span>DEV-1766</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>OCGParser: Fix exceptions of parsing inline images<br /><a href="https://jira.itextsupport.com/browse/DEV-1786" target="_blank"><span>DEV-1786</span></a></span></span></span></span></span></li> <li><span><span><span><span><span><a href="https://jira.itextsupport.com/browse/SUP-1486" target="_blank"><span>SUP-1486</span></a> Add check in PdfReader to see if the authentication event is EFOPEN. Previously we had no check for it and encountered a BadpasswordException when trying to open the Pdf even though only the attachments are encrypted. Encryption check will now be skipped if the authentication event is EFOPEN and there is no password provided.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="https://jira.itextsupport.com/browse/SUP-1513" target="_blank"><span>SUP-1513</span></a> Made the readPages method more lenient towards typos</span></span></span></span></span></li> <li><span><span><span><span><span>Add additional documentation to PdfReader<br /> The method GetNumberOfPages() behaves differently depending on whether the reader was opened in partial mode. The method documentation has been updated to reflect this. SUPP-1552</span></span></span></span></span></li> <li><span><span><span><span><span>updating encryption documentation</span></span></span></span></span></li> <li><span><span><span><span><span>updating encryption documentation on PdfStamper</span></span></span></span></span></li> <li><span><span><span><span><span>Add soft hyphens to word boundaries for word hyphenation detection. Avoid writing soft hyphens to the output<br /><a href="https://jira.itextsupport.com/browse/DEV-1795" target="_blank"><span>DEV-1795</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix additional documentation to PdfReader<br /> Cleaner and correct version of the additional documentation <a href="https://jira.itextsupport.com/browse/SUP-1552" target="_blank"><span>SUP-1552</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>BarcodeDataMatrix: add possibility to force the square size of barcode<br /><a href="https://jira.itextsupport.com/browse/DEV-1801" target="_blank"><span>DEV-1801</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Change behavior of pdfReader#computeUserPassword in case of AES256 encryption. Add corresponding test.<br /> As stated in Acrobat Supplement to the ISO 32000 in revision 5 (AES256) of standard security handler the user and owner keys where made independent. So the computing of user password from owner password isn't supported. The behavior was changed to return null in that case and now it matches the one in iText7. <a href="https://jira.itextsupport.com/browse/DEV-1802" target="_blank"><span>DEV-1802</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix thread safety issues in OCGParser<br /><a href="https://jira.itextsupport.com/browse/DEV-1797" target="_blank"><span>DEV-1797</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix Image binary transparency bug<br /> Transparent pixels in ARGB images sometimes were mistreated as non transparent. See <a href="http://stackoverflow.com/questions/39119776/itext-binary-transparency-bug" target="_blank"><span>http://stackoverflow.com/questions/39119776/itext-binary-transparency-bug</span></a><br /> This commit also contains additional fix suggested by Michael Klink <a href="https://jira.itextsupport.com/browse/DEV-1796" target="_blank"><span>DEV-1796</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add support for signature policy for EPES signatures support<br /> This is originally suggested by J. Arturo <a href="https://jira.itextsupport.com/browse/DEV-1806" target="_blank"><span>DEV-1806</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix Xmlworker eating chars when parsing &amp;<br /> When Xmlworker encountered a '&amp;' followed by a ' ', it would leave the special char state without appending the ' '. Update broken cmp-files <a href="https://jira.itextsupport.com/browse/SUP-1596" target="_blank"><span>SUP-1596</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Handle NPE when removing floating AcroField<br /> Fix Acrofields present in the document but not linked to the annotations dic throwing and NPE when they are removed <a href="https://jira.itextsupport.com/browse/SUP-1602" target="_blank"><span>SUP-1602</span></a></span></span></span></span></span></li> </ul><h2><span><span><span><span><span><span><span>RUPS 5.5.10</span></span></span></span></span></span></span></h2> <ul><li><span><span><span><span><span>No changes in RUPS between version 5.5.9 and 5.5.10.</span></span></span></span></span></li> </ul><h2><span><span><span><span><span><span><span>XFA Worker 5.5.10</span></span></span></span></span></span></span></h2> <ul><li><span><span><span><span><span>support fontHorizontalScale property for template telements<br /><a href="https://jira.itextsupport.com/browse/DEV-1701" target="_blank"><span>DEV-1701</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>move from converting measurements to points on parsing towards storing them with units as is for the sake of correct JS processing<br /><a href="https://jira.itextsupport.com/browse/DEV-1701" target="_blank"><span>DEV-1701</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix issue with multiple consequent tabs in case of right-to-left line<br /><a href="https://jira.itextsupport.com/browse/DEV-1701" target="_blank"><span>DEV-1701</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test</span></span></span></span></span></li> <li><span><span><span><span><span>Make XMLWorker CssApplier framework extensible</span></span></span></span></span></li> <li><span><span><span><span><span>Fix failing test for extensible CssAppliers in XFA</span></span></span></span></span></li> <li><span><span><span><span><span>fix duplicating page areas in case they are reused<br /><a href="https://jira.itextsupport.com/browse/DEV-1710" target="_blank"><span>DEV-1710</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>more accurate BreakConditions comparison<br /><a href="https://jira.itextsupport.com/browse/DEV-1710" target="_blank"><span>DEV-1710</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Restrict cases when cell overflowing is checked to proceed correctly with a row.</span></span></span></span></span></li> <li><span><span><span><span><span>More accurate computation of width of table subforms in case of lr-tb layout</span></span></span></span></span></li> <li><span><span><span><span><span><a href="https://jira.itextsupport.com/browse/DEV-1710" target="_blank"><span>DEV-1710</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix next page area retrieval in case of break before conditions specified.</span></span></span></span></span></li> <li><span><span><span><span><span>Fix lr-tb root subform layout</span></span></span></span></span></li> <li><span><span><span><span><span><a href="https://jira.itextsupport.com/browse/DEV-1710" target="_blank"><span>DEV-1710</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Evaluate scripts for repeated leader elements<br /><a href="https://jira.itextsupport.com/browse/DEV-1713" target="_blank"><span>DEV-1713</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test</span></span></span></span></span></li> <li><span><span><span><span><span>avoid infinite loop in case of an element is invisible but the area is overflown and there is not enough place for it<br /><a href="https://jira.itextsupport.com/browse/DEV-1711" target="_blank"><span>DEV-1711</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>fix overflowing of non-breakable elements<br /><a href="https://jira.itextsupport.com/browse/DEV-1711" target="_blank"><span>DEV-1711</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Change positoner sorting algorithm so that non-breakable draw elements come before the positoiners they contain<br /><a href="https://jira.itextsupport.com/browse/DEV-1711" target="_blank"><span>DEV-1711</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test<br /><a href="https://jira.itextsupport.com/browse/DEV-1717" target="_blank"><span>DEV-1717</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test</span></span></span></span></span></li> <li><span><span><span><span><span>XmlWorker: add test for hebrew text alignment</span></span></span></span></span></li> <li><span><span><span><span><span>font scaling for caption text<br /><a href="https://jira.itextsupport.com/browse/DEV-1737" target="_blank"><span>DEV-1737</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fixed bug with XML parser not processing XML entities in attributes.<br /> Now special XML entities are processed correctly (e.g. &amp; to &amp;) when they're in an attribute value. Also, made related changes to tests, where we store html request with symbol "&amp;" in annotations. <a href="https://jira.itextsupport.com/browse/DEV-1735" target="_blank"><span>DEV-1735</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add migdal-font test.<br /><a href="https://jira.itextsupport.com/browse/DEV-1738" target="_blank"><span>DEV-1738</span></a> <a href="https://jira.itextsupport.com/browse/SUP-1393" target="_blank"><span>SUP-1393</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Update MigdalFontTest</span></span></span></span></span></li> <li><span><span><span><span><span>fix processing colspan value of -1</span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test</span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XmlWorker test</span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>support xfa.host.language property<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>add new nodes to prototype xml<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Refactor putCallback for future consistency of Java and C#. Add JsValueNode and synchronize value changes with rawValue. Add new tests<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix processing of direct string text value assignments<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix parent Data DOM node retrieval fallback. It used to replace the root node with descendant one even if the root one did match<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix minW property processing in case of ExclGroup fields and the child elements also have minW property set<br /><a href="https://jira.itextsupport.com/browse/DEV-1741" target="_blank"><span>DEV-1741</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add a new XFAWorker test. Fix exception in case choice list field contains only text entries, but no value entries<br /><a href="https://jira.itextsupport.com/browse/DEV-1762" target="_blank"><span>DEV-1762</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix issue with XFAFontProvider with bold font<br /><a href="https://jira.itextsupport.com/browse/DEV-1738" target="_blank"><span>DEV-1738</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Revert debug mode in FlattenTest</span></span></span></span></span></li> <li><span><span><span><span><span>fix issue with unwanted leader and trailer element retrieval in cases of empty SOM expression provided<br /><a href="https://jira.itextsupport.com/browse/DEV-1724" target="_blank"><span>DEV-1724</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add a new test for XFAForm data search<br /><a href="https://jira.itextsupport.com/browse/DEV-1722" target="_blank"><span>DEV-1722</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>fix exception in case a page area does not contain any content areas<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>implement info property for document JS object (Acrobat API)<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Add caption text value to prototype.xml so that it can be accessed even if not specified in template<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Define className for nodes created from XML template or XML prototype template.</span></span></span></span></span></li> <li><span><span><span><span><span>Add field.format.picture entry to prototype.</span></span></span></span></span></li> <li><span><span><span><span><span>Refactor formatting of rawValue so that changes are considered if applied via JS</span></span></span></span></span></li> <li><span><span><span><span><span><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Implement isContainer, oneOfChild properties and isPropertySpecified method for node class<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Respect font color for CheckButton elements. Add a handy child retrieving method<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Fix element visibility with presence="inactive" property<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>fix for rawValue JS assignment. If data binding is specified for a field and the rawValue is assigned to an empty string, it is treated as null<br /><a href="https://jira.itextsupport.com/browse/DEV-1758" target="_blank"><span>DEV-1758</span></a></span></span></span></span></span></li> </ul> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-notes field--type-text-long field__items"> <div class="field__label">Release notes</div> <h2>iText 5.5.10 Core and XML Worker</h2> <ul><li> <p>Worked on the XML Worker CSSApplier Framework</p> </li> <li> <p>Some bug fixes.</p> </li> <li>Improvement aggregrated report.</li> <li><span><span><span>XML Worker: set default context key to class name of parent class for all descendants of CSSResolverPipeline and HtmlPipeline.</span></span></span></li> <li><span><span><span>Updating documentation</span></span></span>.</li> </ul><h2>XFA Worker 5.5.10</h2> <ul><li>S<span><span><span>upport fontHorizontalScale property for template elements.</span></span></span></li> <li>Some bug fixes.</li> </ul> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/itext-5-release" hreflang="en">iText 5 release</a> <a href="/en/tags/core" hreflang="en">Core</a> <a href="/en/tags/rups" hreflang="en">RUPS</a> <a href="/en/tags/xmlworker" hreflang="en">XMLWorker</a> <a href="/en/tags/xfa-worker" hreflang="en">XFA Worker</a> <a href="/en/tags/xtra" hreflang="en">Xtra</a> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="field__label">About the release.</div> <p>iText <code>5.5.10</code> is a maintenance release that rolls up 112 commits since last release.</p> <ul></ul> </div> <div class="field field--name-field-release-number field--type-entity-reference field__items"> <div class="field__label">Release number</div> <a href="/en/releases/5510" hreflang="en">5.5.10</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-5-legacy" hreflang="en">iText 5</a> <a href="/en/products/rups" hreflang="en">RUPS</a> <a href="/en/products/itext-5-legacy/xml-worker" hreflang="en">XML Worker</a> <a href="/en/products/itext-5-legacy/xfa-worker" hreflang="en">XFA Worker</a> </div> <div class="field field--name-field-teaser-text field--type-string-long field__items"> <div class="field__label">Teaser text</div> iText 5.5.10 is a maintenance release that rolls up 112 commits since last release. </div> <div class="field field--name-field-release-code-link field--type-link field__items"> <div class="field__label">Release code link</div> <a href="https://github.com/itext/itextpdf/releases">Release iText 5.5.10</a> </div> Fri, 05 Oct 2018 08:53:18 +0000 daphne.detroch 1621 at https://itextpdf.com How to add a page number in the header of a PDF/A Level A file? https://itextpdf.com/en/resources/faq/technical-support/itext-7/how-add-page-number-header-pdfa-level-file <span class="field field--name-title field--type-string field--label-hidden">How to add a page number in the header of a PDF/A Level A file?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/admin-marketing" typeof="schema:Person" property="schema:name" datatype="">admin-marketing</span></span> <span class="field field--name-created field--type-created field--label-hidden">Tue, 05/31/2016 - 02:00</span> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="stackoverflow-question-block"> <div class="stackoverflow-question-content"> <p>I am trying to create a document that conforms with PDF/A-1 level A. As long as I don't introduce a header or a footer using a page event, the code works fine. However, when I introduce text that is added at an absolute position, iText throws an exception telling me that the content I'm adding isn't tagged. How do I solve this problem?</p> <p>Posted on StackOverflow on <a href="https://stackoverflow.com/questions/27500586/itext-page-number-in-header-within-pdf-a"> Dec 16, 2014 </a> by <a href="https://stackoverflow.com/users/2790215/praan">Praan</a></p> </div> </div> <p>I've written an example that creates a PDF/A document based on a CSV file. I'm adding a header to this document using a simple HeaderHandler implementation: <a href="https://github.com/itext/i7js-examples/blob/develop/src/main/java/com/itextpdf/samples/sandbox/pdfa/PdfA1a.java">PdfA1A</a></p> <p>The problem you are experiencing can be explained as follows: when you tell the that you need to receive Tagged PDF using <code>pdfDoc.setTagged()</code>, iText will make sure that the appropriate tags are created when adding <code>Element</code> objects to the <code>document</code>. As long as you stick to using high-level objects, this will work.</p> <p>However, the moment you introduce objects that are added at absolute positions, you take responsibility to correctly tag any content you add. In your case, you are adding a footer. Footers are not part of the "real content", hence they need to be marked as "artifacts".</p> <p>In my example, I have adapted your implementation in a way that allows me to explain two different approaches:</p> <p>In the first approach, I set the role at the level of the object:</p> <pre> <code>total = new Image(template); total.setRole(PdfName.Artifact); </code></pre> <p>In the second approach, I mark content as an artifact at the lowest level:</p> <pre> <code>PdfCanvas canvas = new PdfCanvas(page); canvas.beginText(); canvas.setFontAndSize(font, 12); canvas.beginMarkedContent(PdfName.Artifact); canvas.moveText(34, 575); canvas.showText("Test"); canvas.moveText(703, 0); canvas.showText(String.format("Page %d of", pageNum)); canvas.endText(); canvas.stroke(); canvas.addXObject(template, 0, 0); canvas.endMarkedContent(); </code></pre> <p>I use this second approach to add several elements.</p> <p>Click this <a href="https://itextpdf.com/question/how-add-page-number-header-pdfa-level-file">link</a> if you want to see how to answer this question in iText 5.</p> </div> <div class="field field--name-field-faq-category field--type-entity-reference field__items"> <div class="field__label">FAQ type</div> <a href="/en/faq-category/technical-support" hreflang="en">Technical support</a> <a href="/en/faq-category/page-events" hreflang="en">Page events</a> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> <a href="/en/tags/tagged-pdf" hreflang="en">tagged pdf</a> <a href="/en/tags/marked-content" hreflang="en">marked content</a> <a href="/en/tags/artifact" hreflang="en">Artifact</a> <a href="/en/tags/itext-7" hreflang="en">iText 7</a> </div> <div class="field field--name-field-itext-version field--type-entity-reference field__items"> <div class="field__label">iText version</div> <a href="/en/itext-version/itext-7" hreflang="en">iText 7</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-7/itext-7-community" hreflang="en">iText 7 Community</a> <a href="/en/products/itext-7/itext-7-core" hreflang="en">iText 7 Core</a> <a href="/en/products/itext-7" hreflang="en">iText 7 Suite</a> </div> <div class="field field--name-field-field-related-faq field--type-entity-reference field__items"> <a href="/en/resources/faq/technical-support/itext-5-legacy/how-add-page-number-header-pdfa-level-file" hreflang="en">How to add a page number in the header of a PDF/A Level A file?</a> </div> Tue, 31 May 2016 00:00:00 +0000 admin-marketing 4426 at https://itextpdf.com Release iText 5.5.8 https://itextpdf.com/en/resources/releases/release-itext-558 <span class="field field--name-title field--type-string field--label-hidden">Release iText 5.5.8</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/admin-marketing" typeof="schema:Person" property="schema:name" datatype="">admin-marketing</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 11/30/2015 - 01:00</span> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-changelog field--type-text-long field__items"> <div class="field__label">Release changelog</div> <h2>iText 5.5.8 Core and XML Worker</h2> <h3>Bugs</h3> <ul><li>Embed the full font in case of subset issues<br /> Fix issue with Noto font. Also PdfATtfUnicodeWriter was updated. <a href="http://jira.itextsupport.com/browse/DEV-1488">DEV-1488</a></li> <li>Remove dependency on javax.management<br /> Remove an unnecessary dependency on javax.management.OperationsException and replace it by java.io.IOException. <a href="http://jira.itextsupport.com/browse/DEV-1564">DEV-1564</a></li> <li>Fixed the code generating unique name for tmp file used for signing<br /> Resolves: <a href="http://jira.itextsupport.com/browse/DEV-1571">DEV-1571</a></li> <li>Update current page content height on table add even in case of immediate start of new page (used for PdfPageEvent in case PdfWriter#getVerticalPosition is called) <a href="http://jira.itextsupport.com/browse/DEV-1572">DEV-1572</a></li> <li>Signing ZUGFeRD document throws null pointer (<a href="http://jira.itextsupport.com/browse/DEV-1570">DEV-1570</a>)</li> <li>(<a href="http://jira.itextsupport.com/browse/SUP-1077">SUP-1077</a>) Added a transformation to account for a change in scale in the annotation.</li> <li>Separated page finalizing and page initializing logic <a href="http://jira.itextsupport.com/browse/DEV-1568">DEV-1568</a></li> <li>Fix partial reading from bytes array <a href="http://jira.itextsupport.com/browse/DEV-1563">DEV-1563</a></li> <li>The range of chars in ToUnicode decoding was being incremented from start to end using just the last 8 bits due to a misunderstanding of the specification.</li> <li>Fix adding tagged elements on startPage and endPage page events<br /> Elements were not added to the root document entry, but as siblings instead.<br /> Now the order in which page events are called in consistent with tagged elements flushing <a href="http://jira.itextsupport.com/browse/DEV-1573">DEV-1573</a></li> <li>Removed unneeded call from PDFStamperImp</li> <li>Add get method to get the PdfReader from a PdfStamperImp instance (<a href="http://jira.itextsupport.com/browse/DEV-1570">DEV-1570</a>)</li> <li>Signing ZUGFeRD document throws null pointer (<a href="http://jira.itextsupport.com/browse/DEV-1570">DEV-1570</a>)</li> <li>Annotation flattening with skew and rotation (<a href="http://jira.itextsupport.com/browse/DEV-1569">DEV-1569</a>)</li> <li>Fixed issue with Noto font<br /> Resolves: <a href="http://jira.itextsupport.com/browse/DEV-1488">DEV-1488</a></li> <li>Set version in append mode.<br /> iText didn't set the version in append mode. By definition this shouldn't be necessary, but PdfSignatureAppearance uses PdfVersion.getVersion() to create its dictionaries. In the case of PDF/A2-a it would incorrectly use 1.4 as a version and not the provided (or original version) and as such iText generated PDFs that weren't compliant to PDF/A2-a. <a href="http://jira.itextsupport.com/browse/SUP-1117">SUP-1117</a></li> <li>BarcodeDatamatrix: add placeBarcode method for writing barcode directly to content stream <a href="http://jira.itextsupport.com/browse/DEV-1588">DEV-1588</a></li> <li>Fixed PdfSignatureAppearance.preClose method<br /> Returned the use of .getWidget method instead of .getMerged since the case, when signature field dictionary and dictionary its widget annotation are not merged, is rather uncommon if can be encountered at all. Moreover the use of merged dictionary instead of widget requires more efforts since .getMerged method returns not actually the dictionary obtained by merging signature field dict and widget annotation dict, but also AcroForm dict. Resolves: <a href="http://jira.itextsupport.com/browse/DEV-1579">DEV-1579</a> Dmitry Trusevich</li> <li>PdfSmartCopy: ignore recursive call (<a href="http://jira.itextsupport.com/browse/DEV-1581">DEV-1581</a>)</li> <li>Add support for numeric font-weight <a href="http://jira.itextsupport.com/browse/DEV-1574">DEV-1574</a></li> <li>Improve OCSP verifier: now we check OCSP response strongly by RFC 6960<br /> Resolved: <a href="http://jira.itextsupport.com/browse/DEV-1587">DEV-1587</a></li> <li>change PdfPageLabels.getPageLabels() to scope prefixes to the range they are defined for<br /> While reading a PDF generated by Adobe InDesign CS6 using the Adobe PDF Library 10.0.1 which included several page label sections I noticed iText was keeping the prefix applied to subsequent sections in the values return by PdfPageLabels.getPageLabels(), even when the key was omitted in the following page label dictionary entries. According to the PDF Reference 1.7, Table 8.10 says that /P is an optional label prefix for page labels in this range. PDF Readers I have installed scope the prefix only to the range it is specified. This change empties out the prefix field to give behaviour I think aligns with the reference and my experience of other PDF readers. I am not aware of any potential regression issues introduced by this change, existing page label dictionaries created by iText set /P to an empty string so this will only affect reading PDFs with partially prefixed page label ranges as far as I know.</li> <li>Fonts: Create fallback for absent OS/2 table (<a href="http://jira.itextsupport.com/browse/DEV-1586">DEV-1586</a>)</li> <li>convert tabs to spaces in getPageLabels method to match rest of file<br /> The rest of the codebase seemed to be using 4 spaces to indent while this method had been written a while ago and contained a mix of tab characters and spaces.</li> <li>Revert automatic field renaming in case of field name collisions in PdfSmartCopy (commits 30f947b2035d4d4deb7ac1139fbb7f716ff5f7cf, 15ebe33e323718fe3f583ade0953e7d2f85b3909)<br /> One should be able to merge two fields with same names so that the field value is shared across all the widgets of that new field. <a href="http://jira.itextsupport.com/browse/DEV-1578">DEV-1578</a> <a href="http://jira.itextsupport.com/browse/SUP-1026">SUP-1026</a></li> <li>Add XMLWorker#closeLocalWC <a href="http://jira.itextsupport.com/browse/DEV-1594">DEV-1594</a></li> <li>Add constructor with new signature for XMLWorkerHelper (<a href="http://jira.itextsupport.com/browse/DEV-1595">DEV-1595</a>)</li> <li>Improve CompareTool: enable more lenient comparison of content streams and numbers using specified epsilon value <br /><a href="http://jira.itextsupport.com/browse/DEV-1576">DEV-1576</a></li> <li>Improving the Counter functionality Call is not excessive: putAll method allocates memory for new entries at once, while mergeDifferent method can lead to multiple resizing.</li> <li>Performance improvements <a href="http://jira.itextsupport.com/browse/DEV-1605">DEV-1605</a></li> <li>Fix adding of tagged content with onStartPage event<br /> Such content used to be outside of Document Tag <a href="http://jira.itextsupport.com/browse/DEV-1607">DEV-1607</a></li> <li>The bug with lettered list was fixed <a href="http://jira.itextsupport.com/browse/DEV-1618">DEV-1618</a></li> <li>Add CIDSet for PDF/A-2 and PDF/3 documents.<br /> Due to specification we have to add CIDSet only for PDF/A-1, but the PDFBox preflight validator reports an issue, if we don't add CIDSet for PDF/A-3. Resolved: <a href="http://jira.itextsupport.com/browse/DEV-1615">DEV-1615</a></li> <li>Make border-width and border-style independent of order <a href="http://jira.itextsupport.com/browse/DEV-1621">DEV-1621</a></li> <li>A little fix for PdfPTable.setWidthPercentage method.<a href="http://jira.itextsupport.com/browse/DEV-1625">DEV-1625</a></li> <li>Revert previous commit with CIDSet. Add CID0 to CIDSet revert rev.[9ae2eb9]</li> <li>Move Git configs and MarkDown files to root of repository</li> </ul><h2>iText RUPS</h2> <ul><li>Add Object Inspection Action.<br /> Right clicking a stream in the tree view allows for an inspection action which opens a new window containing the stream. This allows the user to keep a stream open while looking at other information, e.g. its resources</li> <li>Add basic information about Maven in BUILDING.md.<br /> Most importantly, mention the goal (install), as does the main itext BUILDING.md.</li> </ul><h2>XFA Worker</h2> <ul><li>XFAWorker: implement insertInstance JS function <a href="http://jira.itextsupport.com/browse/DEV-1562">DEV-1562</a></li> <li>XFAWorker: simulate Acrobat behavior - use bottom margin area in case text does not fit</li> <li>XFAWorker: support DataMatrix barcodes. Initial implementation of data descriptions prototyping model for Data DOM. <a href="http://jira.itextsupport.com/browse/DEV-1588">DEV-1588</a></li> <li>XFAWorker: postpone JavaScript variables evaluation - Form DOM objects might be used there <a href="http://jira.itextsupport.com/browse/DEV-1583">DEV-1583</a></li> <li>XFAWorker: generate fictive missing entries in Data DOM in case of forced binding (e.g. min occur)</li> <li>XFAWorker: ExclGroups must have empty rawValues when the bound value does not correspond to any of the child check button on values <a href="http://jira.itextsupport.com/browse/DEV-1588">DEV-1588</a></li> <li>XFAWorker: performance optimization - do not generate fictive nodes in Data DOM for draw elements. Fix subformSet choice relationship child subform occurrance</li> <li>XFA Worker: Fix resolving of $data.* binding references and nested wildcard references starting with $data <a href="http://jira.itextsupport.com/browse/DEV-1583">DEV-1583</a></li> <li>XFAWorker: ignore startNew breakBefore conditions in case the target pageArea or pageSet is not found in the template <a href="http://jira.itextsupport.com/browse/DEV-1582">DEV-1582</a></li> <li>Add support for numeric font-weight <a href="http://jira.itextsupport.com/browse/DEV-1574">DEV-1574</a></li> <li>Add removing of XFAWorker context after flattening <a href="http://jira.itextsupport.com/browse/DEV-1594">DEV-1594</a></li> <li>XFAWorker: avoid executing initialize script for the second time when resolving embedded elements <a href="http://jira.itextsupport.com/browse/DEV-1584">DEV-1584</a></li> <li>XFAWorker: fix empty QRCode exception. XFA Worker: fix applying of break conditions <a href="http://jira.itextsupport.com/browse/DEV-1592">DEV-1592</a></li> <li>XFAWorker: more accurate page area retrieval. Respecting oddOrEven property and pagePosition=first <a href="http://jira.itextsupport.com/browse/DEV-1609">DEV-1609</a></li> <li>XFAWorker: Avoid double repeating of parent subform during binding <a href="http://jira.itextsupport.com/browse/DEV-1608">DEV-1608</a></li> <li>Reset root form positioner layout in case of incorrectly specified value <a href="http://jira.itextsupport.com/browse/SUP-1169">SUP-1169</a></li> <li>Fix NullPointerException in case of retrieval of properties of table leader element <a href="http://jira.itextsupport.com/browse/SUP-1178">SUP-1178</a></li> <li>XFAWorker: Fix synchronization issue <a href="http://jira.itextsupport.com/browse/DEV-1619">DEV-1619</a></li> </ul> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-notes field--type-text-long field__items"> <div class="field__label">Release notes</div> <h2>iText 5.5.8 Core for Java and .NET</h2> <p><br /><br /> iText 5.5.8 fixes a problem with digital signatures that was accidentally introduced in version 5.5.7. While we were at it, we also improved the verification of OCSP responses. There were also problems when signing PDFs that are compliant with the PDF/A-2, PDF/A-3 and ZUGFeRD standard. Those are now fixed.<br /><br /> Other improvements involve:</p> <ul><li> <p>Fonts: there were issues with some Noto fonts, we fixed the range of characters in the ToUnicode table, we provided a fallback mechanism in case of absent OS/2 tables,</p> </li> <li>Annotations: fixed some scaling issues and some flattening problems when skew and rotation are involved,</li> <li>PdfReader: fixed partial reading when a PDF file is imported as a byte array,</li> <li>Tagged PDF: fixed a problem with the structure tree when using page events,</li> <li>Page labels: we received code contributions from Nick Park that improve page label extraction.</li> </ul><h2>iText RUPS</h2> <p>We also have a new RUPS release. You can now click a stream in tree view to inspect its contents in a new window. This allows the user to keep a stream open while looking at other information such as the resources (fonts, XObjects, images,...) used by the stream.</p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/itext-5-release" hreflang="en">iText 5 release</a> <a href="/en/tags/xtra" hreflang="en">Xtra</a> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> <a href="/en/tags/core" hreflang="en">Core</a> <a href="/en/tags/xmlworker" hreflang="en">XMLWorker</a> <a href="/en/tags/xfa-worker" hreflang="en">XFA Worker</a> <a href="/en/tags/rups" hreflang="en">RUPS</a> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="field__label">About the release.</div> <p>A new site, a new release! We've been working very hard on a new web site that would contain more <a href="https://developers.itextpdf.com/examples">code samples</a> and <a href="https://developers.itextpdf.com/frequently-asked-developer-questions">answers to questions</a>. We've also made it easier to find the information you need by creating different, easy-to-understand categories, but also through better search functionality and the use of tags.</p> <p><br /><br /> We are now releasing iText 5.5.8 and we've reorganized the source code. The projects itextpdf, pdfa, xtra, and xmlworker, are now all in one place: <a href="https://github.com/itext/itextpdf" target="_blank">itext/itextpdf</a>. You'll have to make small changes to your development environment if you import the iText source code.</p> </div> <div class="field field--name-field-release-number field--type-entity-reference field__items"> <div class="field__label">Release number</div> <a href="/en/releases/558" hreflang="en">5.5.8</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-5-legacy" hreflang="en">iText 5</a> <a href="/en/products/itext-5-legacy/xml-worker" hreflang="en">XML Worker</a> <a href="/en/products/rups" hreflang="en">RUPS</a> <a href="/en/products/itext-5-legacy/xfa-worker" hreflang="en">XFA Worker</a> </div> <div class="field field--name-field-teaser-text field--type-string-long field__items"> <div class="field__label">Teaser text</div> We are now releasing iText 5.5.8 and we&#039;ve reorganized the source code. The projects itextpdf, pdfa, xtra, and xmlworker, are now all in one place: itext/itextpdf. </div> <div class="field field--name-field-release-code-link field--type-link field__items"> <div class="field__label">Release code link</div> <a href="https://github.com/itext/itextpdf/releases">iText 5 Release on GitHub</a> </div> <!-- strip all div's as they break the logic behind brick--no-vertical-padding --> <div> <div class="paragraph paragraph--views-blocks paragraph--views-blocks--default"> <div id="block-compatibilitymatrix" class="block block--itext-release block--itext-compatibility-matrix block--compatibilitymatrix"> <section class="brick brick--gray-light"> <div class="brick__inner"> <drupal-render-placeholder callback="Drupal\itext_release\Plugin\Block\CompatibilityMatrix::lazyBuildTable" arguments="" token="IpjpBXHI2APjumjDWJV26WDeRQ0S6gUn-dgeAgj_hBo"></drupal-render-placeholder> </div> </section> </div> </div> </div> Mon, 30 Nov 2015 00:00:00 +0000 admin-marketing 76 at https://itextpdf.com How to add a page number in the header of a PDF/A Level A file? https://itextpdf.com/en/resources/faq/technical-support/itext-5-legacy/how-add-page-number-header-pdfa-level-file <span class="field field--name-title field--type-string field--label-hidden">How to add a page number in the header of a PDF/A Level A file?</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/admin-marketing" typeof="schema:Person" property="schema:name" datatype="">admin-marketing</span></span> <span class="field field--name-created field--type-created field--label-hidden">Thu, 11/05/2015 - 01:00</span> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="stackoverflow-question-block"> <div class="stackoverflow-question-content"> <p>I am trying to create a document that conforms with PDF/A-1 level A. As long as I don't introduce a header or a footer using a page event, the code works fine. However, when I introduce text that is added at an absolute position, iText throws an exception telling me that the content I'm adding isn't tagged. How do I solve this problem?</p> <p>Posted on StackOverflow on <a href="https://stackoverflow.com/questions/27500586/itext-page-number-in-header-within-pdf-a"> Dec 16, 2014 </a> by <a href="https://stackoverflow.com/users/2790215/praan">Praan</a></p> </div> </div> <p>I've written an example that creates a PDF/A document based on a CSV file. I'm adding a footer to this document using a simple page event implementation: <a href="/examples/archiving-and-accessibility/page-numbers-and-pdfa#pdfa1a.java">PdfA1A</a></p> <p>The problem you are experiencing can be explained as follows: when you tell the <code>PdfWriter</code> that it needs to create Tagged PDF (using <code>writer.setTagged();</code>), iText will make sure that the appropriate tags are created when adding <code>Element</code> objects to the <code>document</code>. As long as you stick to using high-level objects, this will work.</p> <p>However, the moment you introduce objects that are added at absolute positions, you take responsibility to correctly tag any content you add. In your case, you are adding a footer. Footers are not part of the "real content", hence they need to be marked as "artifacts".</p> <p>In my example, I have adapted your page event implementation in a way that allows me to explain two different approaches:</p> <p>In the first approach, I set the role at the level of the object:</p> <pre> <code>Image total = Image.getInstance(t); total.setRole(PdfName.ARTIFACT); </code></pre> <p>In the second approach, I mark content as an artifact at the lowest level:</p> <pre> <code>PdfContentByte canvas = writer.getDirectContent(); canvas.beginMarkedContentSequence(PdfName.ARTIFACT); table.writeSelectedRows(0, -1, 36, 30, canvas); canvas.endMarkedContentSequence(); </code></pre> <p>I use this second approach for <code>PdfPTable</code> because if I don't, I would have to tag all sub-elements of the table (every single row) as an artifact. If I didn't, iText would introduce <code>TR</code> elements inside an artifact (and that would be wrong).</p> </div> <div class="field field--name-field-faq-category field--type-entity-reference field__items"> <div class="field__label">FAQ type</div> <a href="/en/faq-category/technical-support" hreflang="en">Technical support</a> <a href="/en/faq-category/page-events" hreflang="en">Page events</a> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> <a href="/en/tags/tagged-pdf" hreflang="en">tagged pdf</a> <a href="/en/tags/itext-5" hreflang="en">iText 5</a> </div> <div class="field field--name-field-itext-version field--type-entity-reference field__items"> <div class="field__label">iText version</div> <a href="/en/itext-version/itext-5-legacy" hreflang="en">iText 5-legacy</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-5-legacy" hreflang="en">iText 5</a> </div> <div class="field field--name-field-field-related-faq field--type-entity-reference field__items"> <a href="/en/resources/faq/technical-support/itext-7/how-add-page-number-header-pdfa-level-file" hreflang="en">How to add a page number in the header of a PDF/A Level A file?</a> </div> Thu, 05 Nov 2015 00:00:00 +0000 admin-marketing 2856 at https://itextpdf.com Release iText 5.5.6 https://itextpdf.com/en/resources/releases/release-itext-556 <span class="field field--name-title field--type-string field--label-hidden">Release iText 5.5.6</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/admin-marketing" typeof="schema:Person" property="schema:name" datatype="">admin-marketing</span></span> <span class="field field--name-created field--type-created field--label-hidden">Fri, 05/08/2015 - 02:00</span> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-changelog field--type-text-long field__items"> <div class="field__label">Release changelog</div> <h2>iText 5.5.6 Core</h2> <ul><li> <p><span><span><span><span><span><span>iText 5.5.5 still referred to 2014. Starting with iText 5.5.6, the producer line will mention 2015.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>resolve some issues with div positioning</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Body color issue solution</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Updated Documentation to reflect incompatibilities in table configuration.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Wrong Body element processing in PdfDocument. pageEmpty property should be true.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>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 (<a href="http://jira.itextsupport.com/browse/SUP-820"><span>SUP-820</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1259"><span>DEV-1259</span></a>: Issue with wrong implementing UNDERLINE if Chunk has newline symbol inside.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>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).</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>BarcodeQRCode: add a method for drawing qr code directly on canvas.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>(<a href="http://jira.itextsupport.com/browse/SUP-766"><span>SUP-766</span></a>) TIFF offsets are absolute (starting from the start of a file). I changed a seek that was happening relative to the current pointer.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Fix for incomplete table (<a href="http://jira.itextsupport.com/browse/DEV-1260"><span>DEV-1260</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>CompareTool: fix StackOverflowError in case of repeated recursive objects comparison.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span> <a href="http://jira.itextsupport.com/browse/DEV-1302"><span>DEV-1302</span></a>: Updated error messages for PdfArray PDF/A-1 compliance</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Changed faulty error message <a href="http://jira.itextsupport.com/browse/DEV-1302"><span>DEV-1302</span></a></span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Tagged PDF: Prevent infinite loops when there is a missing entry in the NumTree of the StructureTreeRoot. <a href="http://jira.itextsupport.com/browse/DEV-1293"><span>DEV-1293</span></a> <a href="http://jira.itextsupport.com/browse/SUP-854"><span>SUP-854</span></a></span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Added classes for path abstraction</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Modified PdfContentStream to be able to process path construction and painting, extended existing render listener</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Improving Tab stop implementation for RTL writing direction</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Added operators for W and W* in PdfContentStreamProcessor, fixed currentPoint initialization in Path, added new callback in ExtRenderListener interface</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Processing of nested lists in ColumnText. List items are disappeared after nested list if the nested list has bottom nested list. <a href="http://jira.itextsupport.com/browse/SUP-879"><span>SUP-879</span></a> Nested List items not displaying properly</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/SUP-883"><span>SUP-883</span></a> preventing an arrayindexoutofboundsexception when assertions are enabled</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/SUP-761"><span>SUP-761</span></a> Text Extraction returns identical coordinates</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>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)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Tagged Pdf: make the localDestinations (DESTS) a NameTree. <a href="http://jira.itextsupport.com/browse/DEV-1302"><span>DEV-1302</span></a></span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>(IT-57) convert line endings for text files to LF</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Refactored code</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1333"><span>DEV-1333</span></a> XmlWorker: Fixed incorrect line spacing calculation in html lists.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1271"><span>DEV-1271</span></a> Fixed leading applying.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Added file header for DocumentLayoutTest.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Fixed resolving of numbers with multiple minus signs in PRTokensier.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>updated check to include the header offset</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>BaseFont: update spaces.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-669"><span>DEV-669</span></a>: Precision Fix.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>added constructors to allow ExternalDecryptionProcess to be used with a byte[] or an inputstream (<a href="http://jira.itextsupport.com/browse/DEV-1361"><span>DEV-1361</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Remove duplicate setting of base font name.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>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: <a href="http://jira.itextsupport.com/browse/SUP-911"><span>SUP-911</span></a> <a href="http://jira.itextsupport.com/browse/DEV-1367"><span>DEV-1367</span></a></span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Fixed performance issues with PdfCopy (<a href="http://jira.itextsupport.com/browse/DEV-1368"><span>DEV-1368</span></a>).</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Port Clipper library from C# to Java (<a href="http://jira.itextsupport.com/browse/DEV-1369"><span>DEV-1369</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Fixed bug causing infinite loop in Merging PDFs with incomplete Num Tree (<a href="http://jira.itextsupport.com/browse/DEV-1293"><span>DEV-1293</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Fixed bug with stamping PDF with identical Contents array (<a href="http://jira.itextsupport.com/browse/DEV-1384"><span>DEV-1384</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Explicitly set LF endings for text files.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>(<a href="http://jira.itextsupport.com/browse/DEV-1384"><span>DEV-1384</span></a>) When stamping, differentiate between pages if they have the same Contents array</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Eliminated double entries in Nums entry of ParentTree. <a href="http://jira.itextsupport.com/browse/DEV-1359"><span>DEV-1359</span></a></span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Check PDF/A-2 and PDF/A-3 compliance when signing (<a href="http://jira.itextsupport.com/browse/DEV-1378"><span>DEV-1378</span></a>)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Add support for text in CMYK to PdfGraphics2D</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Ported e770bc17 (Added possibility to apply piecewise linear approximation to Subpath)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Replaced usages of int (32 bit) with long (64 bit) in the Clipper library, refactored the code a bit</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>(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)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Clipping: Added processing for line width, line cap style, line join style.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>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.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Replaced PdfCleanUpGraphicsState with existing GraphicsState from itext.pdf.parser package, added missing parameters into the latter</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1380"><span>DEV-1380</span></a>: Fixed incorrect processing of closed dashed subpaths (the effects of line join between the last and the first segment of a subpath was lost)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1325"><span>DEV-1325</span></a>: 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.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1377"><span>DEV-1377</span></a> Fixed PdfPTable.setKeepTogether() when using a tagged writer</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>BaseFont: avoid synchronization of fontCache and using ConcurrentHashMap instead.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Fixed bug (wrong PDF operator was written into content stream instead of fill color operator).</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>first version of contribution guidelines<br /> CONTRIBUTING.md describes how users can send pull requests to iText.</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span> <a href="http://jira.itextsupport.com/browse/DEV-1379"><span>DEV-1379</span></a>: 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)</span></span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><span>Removed deprecated logic of saving and restoring color for tagged pdf documents in PdfContentByte class (<a href="http://jira.itextsupport.com/browse/DEV-1371"><span>DEV-1371</span></a>).</span></span></span></span></span></span></p> </li> </ul><h2><span><span><span><span><span><span>PDF/A</span></span></span></span></span></span></h2> <h2><span><span><span><span><span>Note</span></span></span></span></span></h2> <p><span><span><span><span><span>There was a mistake in the <strong>metadata</strong> 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. <strong>This is only relevant if:</strong></span></span></span></span></span></p> <ul><li> <p><span><span><span><span><span><span>You build iText PDF/A from source.</span></span></span></span></span></span></p> </li> <li><span><span><span><span><span><span>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.</span></span></span></span></span></span></li> </ul><h3><span><span><span><span><span><span>Bugs and improvements</span></span></span></span></span></span></h3> <ul><li> <p><span><span><span><span><span>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.</span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/SUP-817"><span>SUP-817</span></a>: Added temporary fix for bug related to font synchronization, fixed bug related to incorrect font caching</span></span></span></span></span></p> </li> <li><span><span><span><span><span>Adapted rule + error message in PDF/A compliance checker classes, and also tests for the changed behavior. <a href="http://jira.itextsupport.com/browse/DEV-1302"><span>DEV-1302</span></a></span></span></span></span></span></li> <li><span><span><span><span><span>Tagged Pdf: test for iTextPDF commit: make the localDestinations (DESTS) a NameTree. <a href="http://jira.itextsupport.com/browse/DEV-1302"><span>DEV-1302</span></a></span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1303"><span>DEV-1303</span></a> Verify restrictions in PDF/A checks</span></span></span></span></span></li> <li><span><span><span><span><span>Normalize line endings. Please don't forget to use -w when using diff or blame!</span></span></span></span></span></li> <li><span><span><span><span><span>first version of contribution guidelines ...</span></span></span></span></span></li> <li><span><span><span><span><span>CONTRIBUTING.md describes how users can send pull requests to iText.</span></span></span></span></span></li> </ul><h2><span><span><span><span><span>RUPS</span></span></span></span></span></h2> <p> </p> <ul><li><span><span><span><span><span>changed close behavior</span></span></span></span></span></li> <li><span><span><span><span><span>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.</span></span></span></span></span></li> </ul><h2><span><span><span><span><span>XML Worker</span></span></span></span></span></h2> <ul><li> <p><span><span><span><span><span>Resolve some issues with div positioning</span></span></span></span></span></p> </li> <li> <p><span><span><span><span><span>Paragraph indents are mirrored in case RTL layout. It is done on Element processing level, not on CSS applying level.</span></span></span></span></span></p> </li> <li><span><span><span><span><span>Body color issue solution</span></span></span></span></span></li> <li><span><span><span><span><span>Wrong Body element processing in PdfDocument. pageEmpty property should be true.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1252"><span>DEV-1252</span></a>: Several bugs about analyzing font styles are fixed</span></span></span></span></span></li> <li><span><span><span><span><span>Handle unquoted url() values</span></span></span></span></span></li> <li><span><span><span><span><span>Css At-Rule issue is fixed. Jira <a href="http://jira.itextsupport.com/browse/DEV-128"><span>DEV-128</span></a>.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-61"><span>DEV-61</span></a>: Wrong processing star comments (/* */)</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/SUP-800"><span>SUP-800</span></a> xdp with fragments</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/SUP-662"><span>SUP-662</span></a> Arabic content loosing html styles after converting from HTML to PDF</span></span></span></span></span></li> <li><span><span><span><span><span>resolve strikethrough issue</span></span></span></span></span></li> <li><span><span><span><span><span>Removed using of NoImageProviderException in non-exceptional flow.</span></span></span></span></span></li> <li><span><span><span><span><span>XMLworker should ignore the CSS attribute "tab-stops ", instead of not showing contents of HTML tags with that attribute. <a href="http://jira.itextsupport.com/browse/DEV-1296"><span>DEV-1296</span></a></span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1287"><span>DEV-1287</span></a> XMLWorker ignores</span></span></span></span></span> <span><span><span><span><span>tag at the end of</span></span></span></span></span> <span><span><span><span><span>tag. Do not cut </span></span></span></span></span>tags from paragraph items at all.</li> <li><span><span><span><span><span>Correct Accessible PDF role for TH HTML tag</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1333"><span>DEV-1333</span></a> XmlWorker: Fixed incorrect line spacing calculation in html lists.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1271"><span>DEV-1271</span></a> Fixed leading applying.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-986"><span>DEV-986</span></a> Fixed css parsing of @rules.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1360"><span>DEV-1360</span></a> Not all InputStreams support mark/reset</span></span></span></span></span></li> <li><span><span><span><span><span>Fixed list rendering.</span></span></span></span></span></li> <li><span><span><span><span><span>Process in tags content. Avoid synchronization in CssUtils.</span></span></span></span></span></li> </ul><h2><span><span><span><span><span>iText xtra</span></span></span></span></span></h2> <ul><li><span><span><span><span><span>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).</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1264"><span>DEV-1264</span></a>: Fixed incorrect affine transformations caused cutting of incorrect image regions when the image was rotated or scaled, added additional test</span></span></span></span></span></li> <li><span><span><span><span><span>Tool that allows you to split an existing PDF file in separate PDFs that do not exceed a predefined size.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1251"><span>DEV-1251</span></a>: Added javadoc's for PdfCleanUp, refactored some code there.</span></span></span></span></span></li> <li><span><span><span><span><span>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)</span></span></span></span></span></li> <li><span><span><span><span><span>Improved CleanUp tool: now it can also process completely covered line arts.</span></span></span></span></span></li> <li><span><span><span><span><span>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)</span></span></span></span></span></li> <li><span><span><span><span><span>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</span></span></span></span></span></li> <li><span><span><span><span><span>Added processing for line width, line cap style, line join style).</span></span></span></span></span></li> <li><span><span><span><span><span>Added processing for line dash pattern (closed path is processed a bit incorrect now)</span></span></span></span></span></li> <li><span><span><span><span><span>Replaced PdfCleanUpGraphicsState with existing GraphicsState from itext.pdf.parser package, added missing parameters into the latter</span></span></span></span></span></li> <li><span><span><span><span><span>Added static field to PdfCleanUpProcessor, allowing to prevent cleaned area from being filled (it's quite convenient for testing purposes)</span></span></span></span></span></li> <li><span><span><span><span><span>Fixed bugs (transformation of annotation's rect, EndType value when doing offsetting for path using Clipper library, clipping rule, stroke to fill color</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1380"><span>DEV-1380</span></a>: Fixed incorrect processing of closed dashed subpaths (the effects of line join between the last and the first segment of a subpath was lost)</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1325"><span>DEV-1325</span></a>: 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.</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1374"><span>DEV-1374</span></a>: Redesigned CleanUp Render-Filter architecture so that now there is only one filter responsible for all areas to be cleaned from a document</span></span></span></span></span></li> <li><span><span><span><span><span>Replaced Clipper library port with the correct one, refactored CleanUp code</span></span></span></span></span></li> <li><span><span><span><span><span>Fixed bug (wrong PDF operator was written into content stream instead of fill color operator)</span></span></span></span></span></li> <li><span><span><span><span><span><a href="http://jira.itextsupport.com/browse/DEV-1379"><span>DEV-1379</span></a>: 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)</span></span></span></span></span></li> <li><span><span><span><span><span>Changed ArrayDeque to Stack since the former is not supported in Java 5.</span></span></span></span></span></li> </ul> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-notes field--type-text-long field__items"> <div class="field__label">Release notes</div> <h2>iText 5.5.6 Core for Java and .NET</h2> <p>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.</p> <p>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.</p> <p><strong>Note:</strong><br /> 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:</p> <ul><li> <p>You build iText PDF/A from source.</p> </li> <li> <p>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.</p> </li> </ul><p>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.</p> <h2>From svn on SourceForge</h2> <p>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.</p> <p>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.</p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/core" hreflang="en">Core</a> <a href="/en/tags/xmlworker" hreflang="en">XMLWorker</a> <a href="/en/tags/xtra" hreflang="en">Xtra</a> <a href="/en/tags/itext-5-release" hreflang="en">iText 5 release</a> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="field__label">About the release.</div> <p>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.</p> </div> <div class="field field--name-field-release-number field--type-entity-reference field__items"> <div class="field__label">Release number</div> <a href="/en/releases/556" hreflang="en">5.5.6</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-5-legacy" hreflang="en">iText 5</a> <a href="/en/products/itext-5-legacy/xml-worker" hreflang="en">XML Worker</a> </div> <div class="field field--name-field-teaser-text field--type-string-long field__items"> <div class="field__label">Teaser text</div> 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. </div> <div class="field field--name-field-release-code-link field--type-link field__items"> <div class="field__label">Release code link</div> <a href="https://github.com/itext/itextpdf/releases">Release iText 5.5.6</a> </div> <!-- strip all div's as they break the logic behind brick--no-vertical-padding --> <div> <div class="paragraph paragraph--views-blocks paragraph--views-blocks--default"> <div id="block-compatibilitymatrix" class="block block--itext-release block--itext-compatibility-matrix block--compatibilitymatrix"> <section class="brick brick--gray-light"> <div class="brick__inner"> <drupal-render-placeholder callback="Drupal\itext_release\Plugin\Block\CompatibilityMatrix::lazyBuildTable" arguments="" token="IpjpBXHI2APjumjDWJV26WDeRQ0S6gUn-dgeAgj_hBo"></drupal-render-placeholder> </div> </section> </div> </div> </div> Fri, 08 May 2015 00:00:00 +0000 admin-marketing 91 at https://itextpdf.com Release iText 5.5.2 https://itextpdf.com/en/resources/releases/release-itext-552 <span class="field field--name-title field--type-string field--label-hidden">Release iText 5.5.2</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/admin-marketing" typeof="schema:Person" property="schema:name" datatype="">admin-marketing</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 07/21/2014 - 02:00</span> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-changelog field--type-text-long field__items"> <div class="field__label">Release changelog</div> <h2>iText 5.5.2 Core</h2> <ul><li><strong>Changes made by Alexander Chingarev</strong> <ul><li>Improved generic testing framework (<code>GenericTest</code>, <code>WrapToTest</code>,...).</li> <li>Added a method to <code>PdfContentByte</code> that allows you to add a Form XObject using a stream, a name and the coordinates of the CTM.</li> <li><code>PdfName.ON</code> was changed from "ON" to "on" by mistake in one of the previous release. This has now been fixed.</li> <li>Officially deprecated <code>PdfCopyFields.</code></li> <li>Officially deprecated <code>HTMLWorker.</code></li> </ul></li> <li><strong>Changes made by Pavel Alay</strong> <ul><li>Added <code>PdfACopy</code> class for coping PDF/A documents.</li> <li><code>PdfWriter</code>: add <code>cacheObject()</code> method.</li> <li><code>PdfCopy</code>, <code>PdfAWriter</code>, <code>PdfAStamperImp</code>: improve cache logic, overriding <code>PdfWriter</code>'s <code>cacheObject()</code> method.</li> <li>Improved generic testing framework (<code>GenericTest</code>, <code>CompareTool</code>,...).</li> <li>Prevent the use of <code>PageStamp</code> when using <code>PdfCopy</code> in tagged mode.</li> <li>Added support of FDF <code>setJavaScriptAction()</code>.</li> <li><code>WebColors</code>: change transparent color to (0xff, 0xff, 0xff, 0x00).</li> </ul></li> <li><strong>Changes made by Eugene Markovskyi</strong> <ul><li>Fixed a bug that caused a StackOverflowException when copying forms. The fix was suggested by Michael Klink on <a href="https://stackoverflow.com/questions/23893488/pdfcopyforms-in-itextsharp-causing-a-stack-overflow-error" target="_blank">Stack Overflow</a>.</li> <li>Moved method <code>PdfCopyForms.copyDocumentFields()</code> to <code>PdfCopy.</code></li> <li>Fixed a potential NPE in <code>PdfBody.Add().</code></li> <li>Fixed incorrect processing of the Standard Type 1 Symbol and ZapfDingbats fonts (glyph mapping / encoding issue).</li> <li>Restoring Tab functionality where a tab switched to the next line when the previous content risks to overlap with the new content. Solved some problems in case a tabs "overflows".</li> </ul></li> <li><strong>Changes made by Alexey Subach</strong> <ul><li><code>PdfCopyFields</code> and <code>PdfCopy</code>: now we also create the Tag structure when merging fields (this wasn't supported in the past).</li> </ul></li> <li><strong>Changes made by Raf Hens</strong> <ul><li>Added translations for error messages.</li> <li>Improved <code>PdfAWriter.addFileAttachment()</code> by adding a new method with an extra parameter.</li> </ul></li> <li><strong>Changes made by Michaël Demey</strong> <ul><li>Implemented a suggestion by Bennie Lohr to move a <code>super.close()</code> call in <code>PdfWriter</code> to a <code>finally</code> clause so that the method is called even if an exception occurs.</li> </ul></li> <li><strong>Changes made by Amedee Van Gasse</strong> <ul><li>Unchecked parameter input in <code>WebColors</code> caused <code>NoSuchElementException.</code></li> <li>Overall improvement of the testing environment.</li> </ul></li> <li><strong>Changes made by Bruno</strong> <ul><li><code>GifImage</code>: added an extra <code>close()</code> so that an <code>InputStream</code> is closed. This bug was reported by Manfred Neundlinger on <a href="https://stackoverflow.com/questions/24200300/itext-gifimage-first-inputstream-not-closed" target="_blank">Stack Overflow</a>.</li> <li>Added an entry to <code>PdfName</code> for Associated Files (<code>AF</code>).</li> <li>In case of a Type3 font, we now just show the characters as is (before we showed nothing). Note that this change doesn't always make sense: Type 3 fonts are user defined fonts where arbitrary characters are mapped to custom glyphs. For instance: the character a could be mapped to an image of a dog, the character b to an image of a cat. When parsing a document that shows a cat and a dog, you shouldn't expect seeing a cat and a dog. Instead you'll get b and a. That doesn't make sense in this context, but at least you get two different characters.</li> </ul></li> </ul><h3>XML Worker 5.5.2</h3> <ul><li><strong>Changes made by Pavel Alay</strong> <ul><li>Major improvements to the CSS parser (complete rewrite of the functionality resulting in much better interpretation of CSS syntax).</li> </ul></li> <li><strong>Changes made by Alexey Subach</strong> <ul><li>Better support for the <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc2">&lt;<span class="kw2">blockquote</span>&gt;</span></code></span> tag.</li> <li>Better support for underlined and strike-through text.</li> </ul></li> <li><strong>Changes made by Eugene Markovskyi</strong> <ul><li>Div width is not limited by page width from <code>HtmlPipelineContext</code>.</li> </ul></li> <li><strong>Changes made by Michaël Demey</strong> <ul><li>Avoiding a NPE in the <code>Table</code> class.</li> </ul></li> <li><strong>Changes made by Bruno</strong> <ul><li>Avoiding a NPE in the <code>Table</code> class.</li> </ul></li> </ul><h3>XFA Worker 5.5.2</h3> <p>(This is a closed source project on top of iText and XML Worker)</p> <ul><li><strong>Changes made by Alexander Chingarev</strong> <ul><li><code>ComplexResolver</code> renamed to <code>FlattenerContext.</code></li> <li>Added XFA Signature flattening.</li> <li>Fixed a problem where text got duplicated.</li> </ul></li> <li><strong>Changes made by Eugene Markovskyi</strong> <ul><li>Fixed inconsistency where the PDF resulting in a different page count, depending on the view mode (print vs. screen).</li> <li>Fixed value formatting issue: empty zero pattern(zero{}) was not applied to zero values.</li> <li>Added an interface for configuring which JS events should be evaluated.</li> <li>Impove support of SOM expressions in JavaScript resolveNode; JS sentences like <code>"this.resolveNode("$")"</code>.</li> <li>Improved JavaScipt interpretation for some text fields that weren't rendered properly.</li> <li>Fixed incorrect processing of the Standard Type 1 Symbol and ZapfDingbats fonts (glyph mapping / encoding issue).</li> <li>Fixed a problem with tables widths in case of documents with landscape orientation.</li> <li>Fixed performance regression problem for specific types of forms when upgrading from XFA Worker 5.4.5 to 5.5.1.</li> <li>Fixed a problem in <code>XFAFontProvider</code> that caused some fonts not being used.</li> <li>Fixed incorrect processing of nested paragraphs.</li> </ul></li> <li><strong>Changes made by Pavel Alay</strong> <ul><li>Fixed an issue where a wrong font was selected in some specific cases.</li> </ul></li> <li><strong>Changes made by Alexey Subach</strong> <ul><li>JavaScript to hide fields wasn't evaluated. This has now been fixed.</li> <li><code>JsTree</code>: the index lookup was refactored to be consistent with the C# version.</li> <li>Incorrect flattening in case there were several fields with the same name: they all got the same value: the first value in the sequence. This has now been fixed.</li> <li>Fixed incorrect flattening of a combo box.</li> <li>Fixed incorrect box height of a field with an empty caption.</li> <li>JavaScript improvement and arc elements.</li> <li>Fixed several problems with Right to Left (RTL) writing systems.</li> <li>Several fixes regarding images: fix nextPageArea retrieving, draw vs field elements, z-layer priority in PageAreas, image aspects.</li> </ul></li> </ul> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-notes field--type-text-long field__items"> <div class="field__label">Release notes</div> <h2>iText 5.5.2 Core</h2> <p>We noticed that many people are starting to be aware of Tagged PDF, PDF/A and PDF/UA. We received numerous questions on the subject of merging Tagged PDFs, more specifically PDF/A compliant documents. This wasn't supported in previous versions and it's also kind of tricky because you can't just mix the different flavors of PDF/A. For instance: you shouldn't expect that a PDF/A-1B document merged with a PDF/A-2A document will result in a PDF/A-2A document. Nevertheless we've added a class <code>PdfACopy</code> that allows you to make combinations that make sense and that throws an exception when you're trying to make a combination that doesn't.</p> <p>We made sure that you can't use the <code>PageStamp</code> functionality when using <code>PdfCopy</code> in tagged mode. This way, we avoid that people don't introduce untagged data out of ignorance regarding the nature of Tagged PDF. <code>PdfCopy</code> now also supports merging fields with tags.</p> <p>When parsing documents with Type 3 fonts, we used to return space characters because Type 3 fonts are user defined fonts where a random character is mapped to a custom made glyph. We've changed this so that iText returns the characters that were stored inside the PDF. This doesn't always make sense because it can result in a set of random characters, but it is more in line with what people expect when parsing a PDF file that contains Type 3 fonts.</p> <p>Finally, we've introduced functionality to cache objects to improve the PDF writing process, and we've improved the generic testing framework.</p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/itext-5-release" hreflang="en">iText 5 release</a> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> <a href="/en/tags/pdfua" hreflang="en">PDF/UA</a> <a href="/en/tags/tagged-pdf" hreflang="en">tagged pdf</a> <a href="/en/tags/xmlworker" hreflang="en">XMLWorker</a> <a href="/en/tags/css" hreflang="en">CSS</a> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="field__label">About the release.</div> <p>Two months have passed since iText 5.5.1 and we're ready to release iText 5.5.2. Although the <a href="/changelog/552">changelog</a> may seem relatively short, there's one line in specific we've put a lot of effort into: <em>Major improvements to the CSS parser</em>. This is actually a complete rewrite of the CSS functionality, resulting in much better interpretation of CSS syntax. You'll find these changes in iText's XML Worker. The <code>HTMLWorker</code> class that was shipped with iText core was finally deprecated</p> </div> <div class="field field--name-field-release-number field--type-entity-reference field__items"> <div class="field__label">Release number</div> <a href="/en/releases/552" hreflang="en">5.5.2</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-5-legacy" hreflang="en">iText 5</a> <a href="/en/products/itext-5-legacy/xml-worker" hreflang="en">XML Worker</a> </div> <div class="field field--name-field-teaser-text field--type-string-long field__items"> <div class="field__label">Teaser text</div> For the release o iText 5.5.2 we have put a lot of effort into: major improvements to the CSS parser. This is actually a complete rewrite of the CSS functionality, resulting in much better interpretation of CSS syntax. You&#039;ll find these changes in iText&#039;s XML Worker. The HTMLWorker class that was shipped with iText 5 Core was finally deprecated. </div> <div class="field field--name-field-release-code-link field--type-link field__items"> <div class="field__label">Release code link</div> <a href="https://github.com/itext/itextpdf/releases">Release iText 5.5.2</a> </div> Mon, 21 Jul 2014 00:00:00 +0000 admin-marketing 116 at https://itextpdf.com Release iText 5.5.1 https://itextpdf.com/en/resources/releases/release-itext-551 <span class="field field--name-title field--type-string field--label-hidden">Release iText 5.5.1</span> <span class="field field--name-uid field--type-entity-reference field--label-hidden"><span lang="" about="/en/users/admin-marketing" typeof="schema:Person" property="schema:name" datatype="">admin-marketing</span></span> <span class="field field--name-created field--type-created field--label-hidden">Mon, 05/12/2014 - 02:00</span> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-changelog field--type-text-long field__items"> <div class="field__label">Release changelog</div> <h2>iText 5.5.1 Core</h2> <ul><li> <p><strong>Changes made by Alexander Chingarev</strong></p> <ul><li> <p>Fixed incorrect element tagging when a template image is added to the document.</p> </li> <li>Added <code>pdfaExtension</code> schema to XMP metadata in order to add support of the PDF/A-* and PDF/UA standard simultaneously in a single PDF document.</li> <li>New functionality: <code>Image</code> and <code>PdfTemplate</code> can now be added to FDF file as field values.</li> <li>Bugfix: <code>FdfReader</code> should not close input source automatically. Otherwise we cannot read stream data. <strong>Important consequence:</strong> you are now responsible for closing the input source in your code!</li> </ul></li> <li><strong>Changes made by Pavel Alay</strong> <ul><li>Bugfix in <code>PdfAChecker</code>: there was an issue with PDF/A validation of <code>PRIndirectReference</code> objects.</li> <li><code>TaggedPdfReaderTool</code>: removed dependency on <code>java.nio.charset.Charset</code> to avoid issue with default charset on linux.</li> <li><code>TaggedPdfReaderTool</code>: add alt attribute of tag structure to output xml.</li> <li><code>TaggedPdfReaderTool</code>: fix issue with null-symbol in alt text attribute.</li> <li>CompareTool speedup, add <code>compareByContent()</code> method.</li> <li><code>CompareTool</code>: fix issue with comparing tag structure.</li> <li><code>CompareTool</code>: fix issue with PdfBoolean and PdfArray comparing.</li> </ul></li> <li><strong>Changes made by Eugene Markovskyi</strong> <ul><li>Refactoring of the verification of output intents in the Pdf/A checker classes.</li> <li>When a <code>Chunk</code> is a link, tagged PDF requires that an accessible attribute is added. We also add alternate text for link annotations.</li> <li>Tagged PDF and form fields: widget annotations can now be tagged.</li> <li>Better support for gradient colors</li> <li>LAB color space support</li> </ul></li> <li><strong>Changes made by Alexey Subach</strong> <ul><li>Fixed link comparison in <code>CompareTool</code>: we compare the pages the links refer to, not the page references. We don't compare if the links are external. We compare the boxes of the links and simple parameters (all except dictionaries, arrays and indirect references).</li> <li>Added a new <code>setType(PdfArtifact.ArtifactType)</code> method for <code>PdfArtifact</code> and throw an exception in <code>setType(PdfString)</code> if the string parameter is not a valid artifact type.</li> <li>FDF: added status message functionality</li> <li>Added support for the ZUGFeRD standard (which is based on PDF/A-3)</li> <li>Bugfix for creating PolyLine annotations (actually fixing a typo).</li> <li>Added a missing <code>break;</code> statement in <code>PdfAXmpWriter</code></li> </ul></li> <li><strong>Changes made by Raf Hens</strong> <ul><li>XMP: ignore empty or whitespace only keywords.</li> </ul></li> <li><strong>Changes made by Michaël Demey</strong> <ul><li>Bugfix <code>CompareTool</code>: check to prevent <code>NullPointerException</code>; <code>new File(compareExec).exists();</code> throws an exception if <code>compareExec</code> is <code>null</code>.</li> <li>Flattening a form would overwrite AP streams of annotations when it shouldn't. Reverting a commit from February 8, 2013 fixed this issue.</li> <li>Replaced redundant code with a call to the <code>keepRowsTogether()</code> method and updated its Javadoc comments to include thrown exceptions.</li> <li>An issue with "ImageMasks that have uncompressed bitmap data" was <a href="http://thread.gmane.org/gmane.comp.java.lib.itext.general/66109/focus=66140">reported on the mailing list</a>. User Darren correctly pointed out that 0 can be a whitespace. Added additional checks on <code>ch == '0'</code> in the <code>readLineSegment()</code> method. This method was being called from two places: <code>rebuildXref()</code> and <code>checkPRStreamLength()</code>.</li> <li>Fixed the formatting of the <code>checkPRStreamLength()</code>.</li> <li>Fixed a bug that cut off rows of nested tables even though they fitted in the available space. The culprit was <code>rowsNotChecked</code> not being copied in a <code>PdfPTable.shallowCopy()</code> method.</li> <li>Fixed a problem regarding invisible signatures. For the full explanation, see the mailing-list discussion <a href="http://itext-general.2136553.n4.nabble.com/Possible-bug-on-PdfSignatureAppearance-preClose-tt4659307.html#a4659319">Possible bug on PdfSignatureAppearance</a>. We accepted the proposal made by Emanuele Paterna.</li> <li>Bugfix regarding spacing before and after when a new page is created.</li> <li>bugfix TIFF: "EOL code in white run" threw an exception when it could end reading the white run. Also avoided an <code>ArrayIndexOutOfBoundsException</code>.</li> </ul></li> <li><strong>Changes made by Bruno</strong> <ul><li>Avoiding a <code>NullPointerException</code> in <code>PdfReader</code>: you can't read a stream that is <code>null</code>.</li> <li>Bugfix: When compressing a stream that was already compressed using at least one different filter, the <code>FlateDecode</code> key needs to be added first.</li> <li>New <code>Image</code> functionality: Suppose that you have a JPEG image, then the filter used by iText will be <code>/DCTDecode</code>. Suppose that you want to compress the image even more, then you may want to add <code>/FlateDecode</code> as a filter. This is no possible by choosing a compression level different from "default compression" and "no compression".</li> <li>New <code>AcroField</code> functionality: it is now possible to set the value of /AS if the normal appearance doesn't provide two states to choose from.</li> <li>Bugfix <code>PdfA1Checker</code>: the value of <code>outputIntentDictionary</code> was checked for a <code>null</code> value at a point that could never be reached if <code>outputIntentDictionary</code> was <code>null</code>: a <code>NullPointerException</code> would have been thrown when getting the value of the <code>/S</code> entry. (This was eventually refactored by Eugene.)</li> <li>Added an extra method to add JavaScript to <code>PdfStamper</code> as explained on <a href="http://stackoverflow.com/questions/22261964/any-way-to-manually-set-the-script-name-when-adding-javascript">Stack Overflow</a>.</li> <li>Added a method to define the rendering intent to <code>PdfContentByte</code> (to complete the list of general graphics state operators).</li> <li>In PDF 2.0, inline images will be limited to images of maximum 4 KB. We've already anticipated and added the new /L key (specific to PDF 2.0). We've put the code that throws an exception in a comment section, just so we don't forget when we work on PDF 2.0.</li> <li>Implemented <a href="http://thread.gmane.org/gmane.comp.java.lib.itext.general/66306">a suggestion made by Vahid Nasiri</a> who says that dropping formatting chars causes problems in <code>FontSelector</code>. Alexey Subach improved the fix.</li> </ul></li> </ul><h2>XML Worker 5.5.1</h2> <ul><li> <p><strong>Changes made by Michaël Demey</strong></p> <ul><li> <p>Code contribution by a customer, Arnost Havelka (SUP-425), fixing a problem when parsing table tags. The fix worked, and Michaël added some extra fixes on top of the suggestions by Arnost Havelka: cells with a rowspan wouldn't be skipped on the calculation of the widths of the second (and other) row.</p> </li> <li>Bugfix: <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc-1">&lt;!----&gt;</span></code></span> wasn't recognized as a closed comment block and kept writing the rest of the html file to <code>memory().comment()</code>.</li> <li>changed the value of <code>TBODY</code> to <code>"tbody"</code> instead of <code>"thead"</code></li> <li>bugfix: <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc2">&lt;<span class="kw2">b</span>&gt;</span></code></span> inside a <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc2">&lt;<span class="kw2">p</span> <span class="kw3">style</span><span class="sy0">=</span><span class="st0">"font-weight: normal"</span>&gt;</span></code></span>  tag was overridden</li> <li> <p>bugfix: <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc2">&lt;<span class="kw2">small</span>&gt;</span> </code></span> and <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc2">&lt;big&gt;</span></code></span> inside a <span class="geshifilter"><code class="html5 geshifilter-html5"><span class="sc2">&lt;<span class="kw2">p</span>&gt;</span> </code></span> tag resulted in subtracting 1 from the parentSize, which was -1 (<code>Font.UNDEFINED</code>), which resulted in inverted text</p> </li> </ul></li> </ul><h2>iText RUPS 5.5.1</h2> <ul><li><strong>Changes made by Michaël Demey </strong> <ul><li>Cleaning up unused objects before saving a file.</li> <li>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).</li> <li>Show warning before you're about to overwrite a file (giving you the opportunity to cancel the operation).</li> <li>Reload file on save.</li> <li>Code optimization: using <code>loadFile()</code> instead of <code>new PdfFile()</code> in the <code>RupsController</code> class.</li> <li>Adding drag and drop functionality to open a PDF file in RUPS.</li> </ul><strong> </strong></li> </ul><h2>XFA Worker 5.5.1</h2> <p>(This is a closed source project on top of iText and XML Worker)</p> <ul><li> <p><strong><strong>Changes made by Raf Hens</strong> </strong></p> <ul><li>Renamed "licensekey" to "itext-licensekey" (Customers informed us that "licensekey" is too generic and thus confusing in large projects)</li> </ul></li> <li><strong><strong>Changes made by Alexander Chingarev</strong> </strong> <ul><li>Added "Read Out Loud" and "Tool Tip" element support</li> </ul></li> <li><strong><strong>Changes made by Eugene Markovskyi</strong> </strong> <ul><li>Implemented <em>if / then</em> statements in FormCalc</li> <li>Fixed a specific XFA flattening problem regarding page area definitions.</li> <li>FormCalc: Implemented "round", "abs", "date", "time", "time2num" methods</li> <li>FormCalc: Ignore non-numeric values in the numeric expressions</li> <li>Improvements to solve a problem of slow flatten times and large file size output with specific templates</li> <li>Bugfix: table cell bounding box correction, after splitting at bottom boundary of page</li> <li>Avoid tagging of elements that don't need to be tagged: tag graphical elements as artifact.</li> <li>Improve tagging of nested DIV elements. Replace the DIV by Section when appropriate.</li> <li>Bugfix: XFA Worker wasn't flattening <em>Radio Button List</em> items correctly</li> <li>Flattening of check boxes (and some other interactive elements) as AcroFields. Prototyping / implementation based on what we expect to be defined in ISO-32000-2. This is experimental code!</li> <li>Fixed a time-zone issue that caused the tests to fail when changing to Summer-time.</li> <li>Added support for the Validate element script</li> <li>Implemented instanceManager for JS element</li> <li>Adding <code>dataSet</code> structure to XFA JS element.</li> <li>Support for barcode element type 'code2of5interleaved'</li> </ul><strong> </strong></li> <li><strong><strong>Changes made by Pavel Alay</strong> </strong> <ul><li>Added round border support; added raised, etched and embossed borders</li> <li>Clip fill region in case round borders</li> <li>Fixed issue with embossed borders and check box</li> <li>Bugfix: resolved issue where a subform's height attribute was ignored</li> </ul><strong> </strong></li> <li><strong><strong>Changes made by Alexey Subach</strong> </strong> <ul><li>Minor change in FormCalc grammar.</li> <li>Bugfix: return <code>null</code> if no properties are found for JsObjects</li> <li>Bugfix: fix a DateTime field issue</li> <li>Optimization: use <code>Map</code> interface in a flatten method instead of <code>HashMap</code></li> <li>Add possibility to choose ViewMode before flattening</li> <li>Fix for a <code>Positioner</code>'s <code>compareTo()</code> method bug (found during the porting)</li> <li>Fix Incorrect JavaScript evaluation</li> <li>Added new XFA Scripting methods for working with field items.</li> <li>Add getter for selectedIndex property, modification of script evaluation.</li> <li>JsTree modification: added empty node list to every JsTree element in constructor. It should be possible to access for instance <code>[element].nodes.length property</code>, even for an element without children.</li> <li>Bugfix <code>FormatResolver</code>: trim the patterns before trying to parse a number.</li> <li>Avoid creating a <code>JsNode</code> with <code>null</code> parent.</li> </ul><strong> </strong></li> </ul> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-field-release-notes field--type-text-long field__items"> <div class="field__label">Release notes</div> <h2>XFA Worker 5.5.1</h2> <p>About a month ago, Adobe announced that it would never support XFA forms in Adobe Reader on mobile platforms (<a href="http://blogs.adobe.com/livecycle/2014/04/adobe-reader-mobile-and-xfa-forms-from-livecycle-designer.html">see blogs.adobe.com on April 16, 2014</a>). XFA forms are much more dynamic and interactive than ordinary PDF forms (AcroForms) and some mobile operating systems place restrictions on what can be done on a mobile device.</p> <p>This makes it very difficult (impossible actually) to provide the same dynamic PDF experience you expect on the desktop across all mobile devices using PDF. As a result, Adobe Reader Mobile does not support XFA based PDF’s created in the LiveCycle Designer and it will not provide this support in the future.</p> <p>Does this mean XFA is no longer important? On the contrary! A year ago, our colleagues at IDR Solutions already explained why XFA is important on <a href="https://www.idrsolutions.com/" target="_blank">their blog</a>.</p> <p>But then how are we going to present these forms on mobile devices?</p> <p>There are basically two options. Adobe and IDR Solutions offer the interactive solution, converting XFA to HTML 5 for consumptions on the mobile device. We offer the non-interactive solution, where we flatten the XFA form into an ordinary PDF document that can be viewed in any PDF viewer. The former solution is recommended when the form needs to be dynamic and when you need the form to respond to user input; the latter solution is recommended when you want to display, archive, secure the data in the form.</p> <p>When you look at the <a href="/changelog/551">changelogs of iText 5.5.1</a>, you immediately see that we've invested in even more development of XFA Worker.</p> <p>Now that XFA Worker creates Tagged PDF, our customers started experimenting with the generation of PDF/A and PDF/UA from XFA forms. This resulted in some extra enhancements and bug fixes. For instance: we discovered that we didn't fully support PDFs that comply with PDF/A as well as PDF/UA from XFA. This is now fixed.</p> <h2>ZUGFeRD</h2> <p>Apart from further PDF/A enhancements, we introduced a conformance level that allows you to create documents that are in compliance with the ZUGFeRD standard (for instance: invoices). The ZUGFeRD standard is a superset of PDF/A-3 where you combine a human-readable PDF with a machine-readable XML attachment.</p> <h2>XML Worker and RUPS 5.5.1</h2> <p>Talking about XML: We have also fixed a number of bugs in XML Worker. Some combinations of tags gave odd results, and there was a problem with tables and rowspans.</p> <p>As we speak, the ISO committee for the PDF standards is meeting in South-Africa. One of the new standards that is being discussed involves XFDF. This new standard introduces much needed documentation for the Forms Data Format in general. We noticed that FDF is used quite frequently and we added some new functionality.</p> <p><strong>Important:</strong> the input source is no longer closed automatically when using <code>FdfReader;</code> you're responsible for closing that stream in your code.</p> <p>Finally, we still find ways to improve RUPS. Not a day goes by without us using RUPS to look inside a PDF.</p> </div> <div class="field field--name-field-tags field--type-entity-reference field__items"> <div class="field__label">Tags</div> <a href="/en/tags/itext-5-release" hreflang="en">iText 5 release</a> <a href="/en/tags/core" hreflang="en">Core</a> <a href="/en/tags/itext-5" hreflang="en">iText 5</a> <a href="/en/tags/zugferd" hreflang="en">ZUGFeRD</a> <a href="/en/tags/rups" hreflang="en">RUPS</a> <a href="/en/tags/xmlworker" hreflang="en">XMLWorker</a> <a href="/en/tags/xfa-worker" hreflang="en">XFA Worker</a> <a href="/en/tags/tagged-pdf" hreflang="en">tagged pdf</a> <a href="/en/tags/xfa-forms" hreflang="en">XFA forms</a> <a href="/en/tags/pdfa" hreflang="en">PDF/A</a> <a href="/en/tags/pdfua-0" hreflang="en">PDF//UA</a> </div> <div class="wysiwyg-content clearfix text-formatted field field--name-body field--type-text-with-summary field__items"> <div class="field__label">About the release.</div> <p>For this release, we've invested in even more development of XFA Worker, including tagged PDF functionality. Offering the possibility to generate PDF/A and PDF/UA documents from XFA forms. We have introduced a conformance level that allows you to create documents that are in compliance with the ZUGFeRD standard.  We have also fixed a number of bugs in XML Worker and RUPS.</p> </div> <div class="field field--name-field-release-number field--type-entity-reference field__items"> <div class="field__label">Release number</div> <a href="/en/releases/551" hreflang="en">5.5.1</a> </div> <div class="field field--name-field-related-products field--type-entity-reference field__items"> <div class="field__label">Related products</div> <a href="/en/products/itext-5-legacy" hreflang="en">iText 5</a> <a href="/en/products/rups" hreflang="en">RUPS</a> <a href="/en/products/itext-5-legacy/xfa-worker" hreflang="en">XFA Worker</a> <a href="/en/products/itext-5-legacy/xml-worker" hreflang="en">XML Worker</a> </div> <div class="field field--name-field-teaser-text field--type-string-long field__items"> <div class="field__label">Teaser text</div> For this release, we&#039;ve invested in even more development of XFA Worker, including tagged PDF functionality. Offering the possibility to generate PDF/A and PDF/UA documents from XFA forms. </div> <div class="field field--name-field-release-code-link field--type-link field__items"> <div class="field__label">Release code link</div> <a href="https://github.com/itext/itextpdf/releases">Release iText 5.5.1</a> </div> Mon, 12 May 2014 00:00:00 +0000 admin-marketing 121 at https://itextpdf.com