# PDFNet SDK - What's New? Version 11.9.0 - November 26th, 2025 See the 11.9.0 changelog on apryse.com ## New In This Release ### Version 11.9 is primarily a bugfix release. ### New Features Added support for the Structured Output Module to convert PDF to office documents without creating a temporary file. (Convert.ToWord(), Convert.ToExcel(), Convert.ToPowerPoint()) Added support for OCSP responders with non-standard port numbers. ### New Options Added the new property IncludeNonPlottableLayers to CADConvertOptions. If set, layers in the CAD drawing that have the Plottable value set to false will still be exported to PDF. Added an ability to enable text wrapping in redactor appearances added by PDF.Redactor. (EnableTextWrapping option in PDF.Redactor.Appearance). Added a PDF/UA auto-tagging option to help specify the default language property. (PDFUAOptions.SetDefaultLangCode()) Added a PDF/UA auto-tagging option to help customize "alt text" generation for figures (images/graphics). (PDFUAOptions.SetFigureAltTextPrefix()) Added an option to force showing gridlines in Excel sheets. (OfficeToPDFOptions.SetShowExcelGridlines()) Added an option to disable height limit for Excel sheets. (OfficeToPDFOptions.SetDisableSheetHeightLimit()) Added an option to disable conversion of headers and footers in Excel sheets. (OfficeToPDFOptions.SetDisableExcelHeadersFooters()) Added an option to disable page margins in Excel sheets. (OfficeToPDFOptions.SetDisableExcelMargins()) Added an option to paginate animation content in PowerPoint documents. (OfficeToPDFOptions.SetAnimationHandling()) Added an option to disable automatic non-standard encoding repair when converting from PDF to Word, Excel, PowerPoint, HTML using the Structured Output Module. (WordOutputOptions.SetTextRecoveryNSE(), ExcelOutputOptions.SetTextRecoveryNSE(), PowerPointOutputOptions.SetTextRecoveryNSE(), HTMLOutputOptions.SetTextRecoveryNSE()) Added an option to disable automatic non-standard encoding repair to the Data Extraction Module using the e_DocStructure mode. (DataExtractionOptions.SetTextRecoveryNSE()) Added an option to disable automatic table of contents detection converting from PDF to Word using the Structured Output Module. (WordOutputOptions.SetDetectTOC()) ## Improvements [pdf] Added support for chunked encoding in HTTP responses on platforms other than windows. [pdf] Timestamp verification is now accepting timestamp authority response with HTTP 201. [.net] Added support for PDFNet.GetSystemFontList() on .NET. [.net] Added support for PDFNet.GetResourcesPath() on .NET Framework. [pdfa] Added ability to resolve UseCMap violations with embedded CMaps by flattening them. [pdfa] Added checking of Lang entry format for PDF/A level A validation (1A/2A/3A). [pdf] Improved order of lines in TextExtractor conversion results with Right2Left mode on. [pdf] Improved text extraction of the fonts that come with no glyph shapes (invisible text). Previously, such text could be excluded from extraction. [pdf] Improved processing speed for merging an FDF with many annotations. [pdfa] Updated the ErrorCode enum in PDFACompliance to align with latest definitions. [pdf] Added better logging around xfdf import and corrupt documents. ## Bugfixes [pdf] Fixed an issue with saving large PDF documents in linearized format. Previously, this operation could fail with "XRef Estimate error occurred" error. [pdf] Fixed an issue where a very thin gap was observed at high zoom levels when rendering text drawn using vector graphics (not fonts.) [xfdf] Added support for mutually exclusive checkboxes in PDFDoc.FDFExtract(). [html] Fixed an issue in PDF to HTML conversions where inline image masks sometimes did not show up in the output HTML in e_fixed_position mode. (Convert.ToHtml()) [image] Fixed an issue where a corrupt TIFF image that doesn't contain enough image data could cause a crash in Convert.ToPdf(). [pdf] Fixed an issue where passing an empty string to SDF.Obj.PutString(), SDF.Obj.InsertString(), SDF.Obj.SetStreamData() or SDF.Obj.PushBackString() could cause buffer length exceptions. [xod] Fixed a rendering issue with text at small font size for XOD (and XPS) files that are converted from PDF with embedded TrueType fonts. [core] Fixed an issue in TransPDF and FindReplace APIs where saving a PDF after editing could cause some colors to be lost. Edited files now retain their original appearance more reliably. [pdf] Fixed an exception that could occur when updating documents with invalid non-string document Info entries. [pdf] Fixed an issue with vertically centering free text annotations that contain rich text with differing font sizes. [pdfa] Fixed a PDF/A conversion issue on Type3 fonts so that the width value in the font data matches the widths specified in the font dictionary. [pdfa] Fixed PDFACompliance to no longer report Annot color array errors when not required. [core] Resolved an issue where text boxes were unnecessarily split when a clip or group change occurred. This fix improves text continuity and layout consistency across both the TransPDF and FindReplaceText APIs. [core] Fixed an issue where full-width punctuation and East Asian symbols were incorrectly italicized when using TransPDF.ApplyXLIFF(). [pdf] Fixed an issue where DataExtractionOptions.SetDetectEmptyFields(false) did not turn off empty fields detection. [pdfua] Fixed incorrect syntax for scope property in auto-tagged Table Headings (TH). [pdf] Fixed issues that caused incorrect text field values and formats to be used when generating the appearance of AcroForm fields. Previously, the parent text field value and format were unconditionally overridden by the first kid data. [java] Fixed an issue where PDFNet left temporary .dlls files after shutting down in Java. ## Office Fidelity [docx] In addition to English, added automatic hyphenation for the following languages: Danish, Dutch, German, Finnish, French, Italian, Polish, Portuguese, Russian, Spanish, Swedish, Ukrainian. [docx] Added support for Arabic alphabetic numbering in Word documents. [office] Fixed an issue with incorrect bar chart direction in a multi-axis chart. [doc] Fixed an issue where bullet lists in DOC documents failed to apply legal-style numbering formats. [office] Added support for "Pie of Pie" charts. [docx] Implemented an improved column balancing algorithm. [docx] Improved handling of paragraph breaking rules in older Word documents. [docx] Fixed an issue where a floating object in a table cell with vertical alignment relative to the page was placed outside the table. [doc] Fixed an issue with incorrect list numbering in some DOC documents. [ppt] Improved consistency of bullet rendering across paragraphs for PPT documents. [doc] Fixed an issue where page numbers were incorrect in some DOC documents. [docx] Fixed an issue where a paragraph in a header near the edge of the page was missing. [docx] Fixed an issue where paragraph borders extended too far around a paragraph. [docx] Fixed an issue where a line of text with only one word was not hyphenated. [office] Fixed issues where some embedded fonts failed to load in PPTX, PPT, and DOC documents. [docx] Fixed an uncommon issue with tracked-change comments not appearing. [office] Added support for the "Best fit" label placement option in pie charts. [office] Improved Arabic text shaping accuracy when using a substitute font. [docx] Fixed an issue where a table in a text box was too narrow. [docx] Fixed an issue causing incorrectly sized pages during docx-to-docx templating. [docx] Fixed an issue where the transparency value of a page watermark was ignored. [office] Added support for stock charts. [office] Fixed pattern fill scaling for shapes, cells, and chart areas, and corrected small and large checkerboard patterns. [docx] Fixed an issue where a table with "Keep with next" and "Keep lines together" flags was unexpectedly moved to the next page. [doc] Fixed incorrect list number indentations for DOC documents. [xlsx] Fixed an issue where LEFT, RIGHT and MID Excel functions did not handle UTF-8 multi-byte characters. [docx] Added full support for Eq (equation) content fields. [office] Fixed an issue where time values in a document could be off by up to one minute. [office] Added support for color customization in pattern fills. [docx] Fixed an issue with missing breaks inside of some equations. [xlsx] Added support for Finnish locale in Excel formatting. [docx] Fixed an issue with some content controls displaying incorrect values. [docx] Fixed an issue where auto-fit tables with vertical content had incorrect column widths. [ppt] Fixed an issue with missing gradient slide background in PPT documents. [docx] Fixed an issue where a floating object in a footer that referenced the top margin was misplaced. [docx] Fixed an issue with extra pages added due to section breaks inside Word fields. [office] Added support for histogram charts. [docx] Fixed an issue where very large footers were not displayed correctly in older versions of Word. [ppt] Fixed an issue with incorrect bullet point size in PPT documents. [xlsx] Fixed a rare issue with extremely wide pages produced by Excel document conversion. [docx] Added support for Symbol fields in Word documents. [docx] Added support for GoToButton fields in Word documents. [office] Fixed an issue where a WMF image was scaled incorrectly. [ppt] Fixed an issue where some images were incorrectly positioned or clipped in PPT documents. [docx] Fixed a rare crash happening when multiple conversions are run simultaneously in the same process. [docx] Added support for Arabic Abjad numbering in Word documents. [docx] Fixed an issue with missing document comments when they span no content. [docx] Added support for overlapping tracked insertions and deletions. [xls] Fixed a rare "XML parse error" exception thrown for some XLS documents. [office] Added support for per-point marker properties in line charts. [doc] Added support for line numbering in DOC documents. [docx] Fixed an issue with a missing line of text containing a right tab outside the page range. [docx] Fixed an issue where table cell contents were missing when a table has thick borders. [ppt] Fixed an issue where an unexpected slide number was added to the first slide. [docx] Fixed an issue where floating tables that get bumped to the next page are not rendered correctly because their width is set to zero. [xlsx] Fixed an issue with partially missing text inside some shapes. [xlsx] Fixed an issue with flipped width and height measurements of some rotated shapes. [docx] Fixed an issue where the first symbol of a list spanned by a comment would not be highlighted. ## Fixes and improvements for the Structured Output Module [docx] Expanded support for the detection of Type3 fonts. [docx/pptx] Improved the detection of hyperlinks containing special characters, multiple lines and E-mail addresses. [docx] Support retention of special characters for URLs. [pptx] Improved detection of multi-line hyperlinks. [docx] Improved the detection of hyperlink text ending with '/*'. [docx] Improved detection of text to display for E-mail address links. [docx] Improved the conversion time of document containing a large amount of ortholine graphics. [office] Improved the detection of Korean text. [xlsx] Improved number detection to exclude IP addresses. [docx] Fixed an issue causing an incorrect text style detection. [docx] Fixed an issue preventing list detection in a certain document. [docx] Fixed an issue causing a paragraph break to be detected in a multi-line list item. [pptx] Fixed an issue preventing detection of an image in a document. [pptx] Fixed an issue resulting in the trial watermark interfering with text detection. [docx] Fixed an issue causing rows of a nested table to become merged in a document. [docx] Fixed a reading issue of the Xref stream preventing successful conversion of a document. Version 11.8.0 - October 8th, 2025 See the 11.8.0 changelog on apryse.com ## New In This Release ### Version 11.8 is primarily a bugfix release. ### New Features Node 24 is now supported. Python 3.13 for DataExtraction is now supported. Added a new Document classification engine to the Data Extraction Module. (DataExtractionModule.e_DocClassification). ### New Options Added an option to the Generic Key-Value extraction engine to control if empty fields should be recognized. (DataExtractionOptions.SetDetectEmptyFields()). ### End of Support Node 8 and Node 9 are no longer supported. ## Changed Behavior [pdf] Exception is not raised when rendering an empty object. ## Improvements [pdf] Added support for formatting PDF widget content for cases when JavaScript is disabled. If the widget's presentation depends on AFNumber_Format() function call, it now formats the widget's text according to the function's parameters. [pdf] Added APIs for setting font name and size in the redaction annotation. [pdf] Added support for repairing corrupt PDF files, where regular stream objects were incorrectly marked as type "ObjStm". Previously, pages could turn blank after PDFDoc.InsertPages() when the input was corrupt. [pdfa] Improved the output file size for conversion when a color space needs to be added. [pdf] Improved handling of documents with missing color space resources. [pdf] Improved handling of corrupted documents with empty objects. ## Bugfixes [pdf] Fixed a rare memory leak caused by duplicated PDF dictionary keys. [pdf] Fixed a minor memory leak in TransPDF::ApplyXLIFF and FindReplace APIs. [pdf] Fixed loss of PDF content when calling FindReplace::FindReplaceText. [pdf] Fixed a null pointer dereference crash in TransPDF::ApplyXLIFF and FindReplace::FindReplaceText. [pdf] Fixed the FindReplace.findReplaceText Java interface and the FindReplaceTest.java sample. [pdf] Fixed an exception in TransPDF::ApplyXLIFF() caused by italic styling applied to CJK characters, which do not support italicization. [pdf] Fixed an issue where TransPDF::ApplyXLIFF() reported an incorrect error message when an italic variant of a character was unavailable. [pdf] Fixed an issue where TransPDF.ApplyXLIFF() could fail with an error "Invalid charcode" when Type3 fonts are present in PDF files. [pdf] Fixed an issue when importing free text annotations that are vertically centered incorrectly. [pdf] Fixed an issue where annotation text size may be incorrect. [pdf] Fixed a crash that happens following a sequence of calls to optimize the document, linearize it and then render to get a bitmap of a page. [pdf] Fixed an issue where TextExtractor incorrectly inserted two extra spaces in between words when SetRightToLeftLanguage(true) was set. [pdf] Fixed Font parsing to properly handle CMaps referencing another embedded CMap via the usecmap operator. [pdfa] Fixed a corruption that may occur when converting certain files with missing XMP Metadata in a specific order. [pdfa] Fixed incorrect detection of "e_PDFA 351: Embedded composite (Type0) font program does not define all font glyphs." for Type 2 CIDFonts. [xfdf] Fixed an issue in PDFDoc.FDFExtract() when working with files with self referring links. [image] Fixed a bug where .jpc files weren't being converted into PDFs in some cases. [.net] Fixed an issue with different behavior of some strings in Windows and Linux. ## Office Fidelity [doc] Fixed an issue that caused missing content in some DOC documents with endnotes. [docx] Fixed an issue where East Asian characters in a text box were incorrectly rotated. [office] Improved text layout accuracy when the font family in the document is not available on the system. [docx] Fixed an issue causing missing highlight annotations for document comments. [office] Improved font substitution on Linux for documents with non-covered characters. [docx] Fixed an issue where drop caps backgrounds were extended across a page. [office] Added support for error bars in office charts. [docx] Improved handling of floating objects with top-and-bottom wrapping in multi-column text. [ppt] Fixed an issue where unexpected bullet points appeared in PPT documents. [office] Added support for "horizontal stripes" and "vertical stripes" pattern fills. [docx] Fixed an issue with missing headers and footers on pages containing endnotes. [xlsx] Fixed a rare issue with missing borders in Excel sheets. [office] Fixed a rare crash in office documents containing math matrix elements. [docx] Fixed an issue with incorrect date format in some Word documents. [docx] Fixed an issue where some words in RTL text could wrap to the next line unnecessarily. [docx] Fixed an issue where the teardrop shape was incorrectly rendered when using Crop to Shape in Word documents. [docx] Fixed an issue where table cell contents were missing when a table has thick borders. [office] Fixed superscript/subscript scale for Type 1 fonts. [docx] Fixed an issue with missing section breaks in some Word documents. [docx] Fixed an issue with incorrect column balancing when the columns contain paragraphs with "Keep with next" and "Keep lines together" flags. [docx] Fixed an issue where paragraphs with borders had incorrect spacing between them. [office] Improved font substitution for style variants on macOS. [doc] Improved memory efficiency and parsing performance for binary DOC documents. [docx] Fixed an issue with overlapping text in framed paragraphs. [xlsx] Improved conversion performance for some Excel documents with extensive conditional formatting. [docx] Fixed an issue where floating tables that get bumped to the next page are not rendered correctly because their width is set to zero. [docx] Fixed several issues with comment annotations being highlighted incorrectly. [office] Fixed a rare issue with a table being pushed to the next page indefinitely. [docx] Fixed an issue with incorrectly positioned floating elements in headers/footers. [docx] Fixed an issue where the first table rows would unexpectedly repeat on the next page. [docx] Fixed layout issues with En Space (U+2002) and Em Space (U+2003) characters. [docx] Improved table cell comment annotations. [docx] Preventing missing content in documents with `IF` fields spanning section breaks. [docx] Fixed an issue where some framed paragraphs were misplaced. [office] Added support for pattern fills in some previously unsupported cases. [xls] Fixed a rare "XML parse error" exception thrown during XLS conversion. [office] Improved font substitution for Wingdings 3 and Webdings fonts. [ppt] Fixed an issue with incorrect slide background colors in legacy PPT documents. [docx] Fixed an issue with missing blank pages in some Word documents. [docx] Enhanced support for “Crop to Shape” in Word documents, ensuring accurate rendering of cropped images and shapes. [pptx] Fixed incorrect font size in some PowerPoint tables. [xlsx] Fixed incorrect currency value formatting in some XLSX files. [office] Fixed an issue causing incorrectly colored math content. [doc] Fixed incorrect paragraph alignment in some legacy Word documents. ## Fixes and improvements for the Structured Output Module [office] Improved text encoding detection for complex glyphs like ligatures. [office] Improved encoding recovery for self-intersected glyphs. [office] Significant improvements to hyperlink detection with an emphasis on multiline hyperlinks. [docx] Improved text transparency conversion. [docx] Fixed pdf annotation to MSWord comments conversion. [pptx] Fixed tabs placement. Prefer using space characters for small gaps. [office] Fixed a bug preventing the accurate detection of vector glyphs in a document. [docx] Fixed a bug causing borderless table headers to be detected as page headers in a document. Version 11.7.0 - August 20th, 2025 See the 11.7.0 changelog on apryse.com ## New In This Release ### New Options Added an option to update dynamic fields in Word documents (OfficeToPDFOptions.SetUpdateDynamicFields()). Added an option to display hidden columns and rows in Excel sheets (OfficeToPDFOptions.SetDisplayHiddenCells()). ### End of Support This will be the last release supporting Node 8 and 9. ## Improvements [cad] Added a warning message when converting a CAD file with OLE content. [pdf] Changed the default encryption scheme used in the Standard Security Handler to 256-bit AES. Previously, by default new Standard Security handler instances would be configured for 128-bit RC4. [pdf] Improved the parsing of corrupt PDFs that contain version history in the form of incremental updates. Previously, it was possible that in rare circumstances, newer incremental updates were ignored in a corrupt PDF, causing the wrong content to be displayed, or the wrong text to be extracted. [pdf] Type3 font support in the TransPDF API. ### Data Extraction (Tabular Data) [xlsx] Addressed an issue where column headers caused the separation of rows with headers from the table body. [xlsx] Fixed an issue where the header of a solitary table was not recognized. [xlsx] Addressed an issue where horizontally shifted table headers caused incorrect table column positions. [xlsx] Addressed an issue where one table was incorrectly split into two tables with different structures. [xlsx] Addressed an issue where the key column for row merging was not automatically identified when column headers spanned more than one row. [xlsx] Addressed an issue where the key column for row merging was not automatically detected when merged data spanned two columns. [xlsx] Addressed an issue where the key column for row merging was not automatically detected due to rows containing subtotals. ## Bugfixes [pdf] Fixed an issue in FindReplace::FindReplaceText where an exception was thrown if the "to" or "from" parameters contained angle brackets (< or >). [pdf] Fixed potential security issues. [pdfua] Fixed failure to autotag certain images with large margins. [pdf] Fixed a bug in TransPDF::ApplyXLIFF where valid target tags with attributes were incorrectly ignored. [pdfa] Fixed a potential failure to detect illegal transfer function (TR entry) in ExtGState in case of Identity function. Note that this also changes GetRefObjs() of the reported violation to point at the ExtGState dictionaries instead of the containing streams. [pdfa] Fixed an issue where PDF/A validation failed to detect bad permission dictionary errors. [pdf] Fixed a problem where TransPDF::ExtractXLIFF never returned. This issue could cause translation extraction to hang indefinitely for certain heavily tabulated PDFs. [pdf] Removed pages now preserve inherited attributes when reinserted. [pdf] Fixed a memory error that could occur when using the TextExtractor [pdf] Fixed a problem in FindReplace::FindReplaceText where the alignment parameter had no effect. [pdf] Fixed a problem in FindReplace::FindReplaceText where reflow issues were not being reported back as an exception. [pdf] Added a default appearance for the overlay text in redaction annotations [pdf] Fixed an issue where the semantic text comparison (PDFDoc.HighlightTextDiff()) could sometimes highlight a few extra characters when the text or the page was rotated by 90 degrees. [java] Fixed an issue where setting the OCR language had no effect in Java. [pdf] Fixed an issue that some free text annotations may have empty space between the text and the top of the bounding box. [pdf] Fixed processing of invalid action objects in document's name tree. Previously, loading of such objects could result in memory access violation exception if JavaScript was enabled. [html] Fixed an issue where the HTML2PDF.SetTimeout() option was ignored by the HTML2PDF module. [pdf] Fixed font substitution matching in the TransPDF and Find/Replace. [pdf] Added PDF text find and replace capabilities. (FindReplace.FindReplaceText()) [pdf] Disabled B/W image interpolation at all scaling ratios greater than 1.0 if image smoothing was off. Previously, interpolation could be enabled at some scaling levels even with image smoothing turned off. [pdf] Fixed construction of standard security handler with explicit specification of the key length and encryption algorithm. Previously, improperly constructed security handler could result in malformed PDFs that could not be opened by some PDF readers. [xfdf] Fixed a regression that checkboxes become radio buttons after merging pdf with xfdf. [pdf] Fixed a crash in TextExtractor on Linux. [pdf] Fixed a crash that happens following a sequence of calls to optimize the document, linearize it and then render to get a bitmap of a page. [pdf] Fixed an issue that PrinterMode.SetDuplexing() had no effect in Windows. [cad] Fixed support for older versions of some CAD files missing codepage information when converting to PDF on Linux. [cad] Fixed crash when loading a CAD file that has empty layouts that should be skipped when converting to PDF. [cad] Fixed issue where substitute font name was not properly set when converting DGN to PDF. ## Office Fidelity [xlsx] Excel conversion now handles the NETWORKDAYS and ODD Excel functions. [office] Fixed an issue with missing or incorrectly formatted comments and speaker notes. [docx] Fixed issues with incorrect footnote numbering. [xlsx] Fixed the unexpected appearance of an additional dollar sign in Excel cells. [office] Fixed an issue with drawings where lines extended beyond arrow positions. [docx] Fixed an issue where repeated table headers were not displayed in Word documents. [docx] Fixed an issue where empty font names caused the wrong font to be used. [docx] Fixed an issue where text was missing in a single-line, vertically merged table cell at the top of the page. [docx] Fixed the placement of framed paragraphs with height set to 0. [docx] Fixed an issue where framed tables were placed in the wrong position. [office] Fixed an issue where math operators were incorrectly displayed in italics. [docx] Fixed an issue where lines in some drawings started at incorrect positions. [docx] Fixed an issue causing incorrectly sized checkboxes. [docx] Fixed an issue with incorrect page number references (PageRef field). [pptx] Fixed an issue causing math content to be incorrectly sized. [pptx] Fixed an issue causing speaker notes to be placed on incorrect slides. [pptx] Fixed a rare issue with missing shapes inside a shape group. [doc] Added support for preserving text box styles when converting DOC documents. [docx] Fixed an issue where framed paragraphs were overlapping each other. [xlsx] Fixed an issue where data bars and icon sets appeared outside of the data table. [docx] Fixed an issue with misplaced content-anchored floating objects in headers. [docx] Fixed a bug where the bullet character for lists was displayed in an incorrect font family. [doc] Fixed an issue where table alignment was incorrect in DOC documents. [xlsx] Implemented support for the SUMPRODUCT Excel function. [docx] Fixed an issue where hidden paragraphs caused tables to overlap. [office] Standardized WebFontDownloader to behave the same when using HTTPS and local file URLs. [office] Improved conversion speed for documents using many fonts, especially non-Latin fonts. [docx] Fixed an issue where a page break was pushed to the next page, creating an extra blank page. [docx] Resolved an issue with missing content caused by non-standard positioning of OOXML text runs in Word documents. [docx] Fixed an issue where decimal tab stops in tables were placed incorrectly. [doc] Fixed an array index out-of-range exception caused by incorrect structure length during DOC conversion. [docx] Fixed an issue where page numbers were displayed when they should not have been. [docx] Fixed an issue where paragraph indentations were not applied to vertical text. [office] Significantly improved chart element layout code, leading to better chart conversion accuracy. [docx] Fixed a rare issue where list paragraph numbers were not displayed. [docx] Fixed incorrect positions of floating shapes that crossed the page boundary in legacy Word documents. ## Fixes and improvements for the Structured Output Module [office] Improved the support of transparent graphics. [docx] Improved the layout of type 1 font handling to improve paragraph detection. [docx] Improved detection of single borderless table structure. [docx] Improved the optical character recognition of Korean documents. [pptx] Fixed a bug preventing the detection of alternate text on a slide. Version 11.6.0 - July 9th, 2025 See the 11.6.0 changelog on apryse.com ## New In This Release ### New Features Added support for automatic text hyphenation in Word documents (English only) to Convert.OfficeToPDF(). Added support for sunburst charts in MS Office documents to Convert.OfficeToPDF(). Added PDF text find and replace capabilities (FindReplace.FindReplaceText()). ### New Options Added an option to export speaker notes from PowerPoint documents as PDF annotations (OfficeToPDFOptions.SetDisplaySpeakerNotes()). Added an option to include invisible layers during CAD conversion (CADConvertOptions.SetIncludeInvisibleLayers()) Added an option to resize single line text boxes when applying translated text (TransPDFOptions.SetResizeSingleLine()) ### End of Support Python 2 is no longer supported. ## Changed Behavior: [ocr] OCROptions.SetIgnoreExistingText() and OCROptions.GetIgnoreExistingText() are now deprecated. OCROptions.SetIncludeExistingText() and OCROptions.GetIncludeExistingText() can be used instead. ## Improvements: [node] Added support for Node v23 on MacOS. [pdf] Improved support for corrupted PDFs where the MediaBox rectangle contained a null object. Previously, the following exception may have occurred with a corrupt input file: "GetNumber() can't be invoked on Obj of this type." [pdf] Improved the performance of incremental save of PDF documents containing digital signatures. [pdfa] Updated PDF/A conversion to remove non-conformant Metadata from XObj Properties. [pdfua] Added PDF.Page.AnnotInsertWithTagging() to facilitate tagging annotations at time of creation. This can help maintain semantic labelling and accessibility compliance. [python]Python packages are now built using the Py_LIMITED API allowing for support of all 3.x versions [xfdf] Added support for the "lock" entry in signature fields. [xfdf] Added support for GoToE action in link annotations. ## Bugfixes: [cad] Fixed an issue in CAD to PDF conversion on Linux that could result in the conversion never completing. [cad] Fixed an issue during CAD to PDF conversion that could result in an exception with the message "Number of Layouts are not equal to number of pages". [java] Fixed an issue that could potentially cause early garbage collection of some PDFNet objects in Java. Previously, this could result in memory errors or crashes. [.net] Fixed a memory leak in ElementBuilder.CreateUnicodeTextRun() [pdf] Fixed an issue where the read-out-loud feature in some 3rd-party viewers could misbehave because of large BBox coordinates of a Stamp object of type text. [pdf] Resolved an exception in TransPDF.ApplyXLIFF() where the Reflow XLIFF API failed with the error: 'TransPDF Exceptions: Read failed: Error reading links from filter'. [pdf] Fixed an issue where the document could become corrupt when moving pages within the same document. [pdf] Fixed an issue when updating text for a multi-line text form field. Previously, a new font was generated unnecessarily. The current font is now used instead. [pdf] Fixed a crash that occurred when a redact annotation lacks a DA entry. [pdf] Resolved an issue with the Reflow XLIFF API (TransPDF) where PDFs containing ampersands and/or double quotes in the "Document Properties Title" field would generate invalid XLIFF files. [pdf] Fixed an issue where the Reflow XLIFF API (TransPDF) was incorrectly throwing an exception for valid permission-based keys. [pdf] Fixed non-regex text search failures in PDF.TextSearch when the search phrase contained ligatures. [pdf] Fixed potential crashes when processing PDFs using the Reflow XLIFF API (TransPDF). [pdf] Fixed incorrect logic for justification of redaction text. [pdf] Fixed an issue where erroneous parsing of font names could cause non-embedded fonts to match incorrectly. ## Office Templating: [docx] Added support for more preset CSS colors in office templating. [docx] Added QR code generation capability to office templates with docx output. ## Office Fidelity: [xlsx] Reduced the size of PDF files produced by Excel conversion by avoiding unnecessary clipping paths. [xlxs] Fixed an issue where merged cells were missing if they started in a hidden row. [doxc] Fixed an issue where floating tables that span multiple pages could have the wrong size. [docx] Improved conversion speed for Word documents with large amounts of floating elements. [docx] Fixed incorrect text displayed in form fields referencing customXml properties. [office] Improved font substitution when using self-serve web fonts for fonts with non-normal/regular weight. [xlsx] Fixed an exception thrown in a valid file containing conditional formatting. [office] Modified font processing to recognize "italic" in the font name. [docx] Fixed an issue with extra empty space after a table placed inside a table cell. [docx] Fixed incorrect text displayed in form fields referencing the document properties (title, author, etc). [pptx] Fixed the placement of paragraphs with extra line spacing in PowerPoint documents. [office] Reduced the output PDF file size when the StructureTagLevel option is set to 'none'. [xlsx] Implemented counting of <c> elements in Excel files to enable early exit for large documents. [pptx] Fixed an issue where the paragraph's right margin value was not applied correctly in text boxes in PowerPoint documents. [docx] Improved handling of floating elements that interact with the neighboring columns and document sections. [xls] Fixed a rare issue with empty XLS document conversion output. [docx] Fixed a rare issue with a fixed layout table rendered with zero width. [docx] Added support for multi-column footnotes in Word documents. [docx] Fixed an issue with repeated content in page-spanning vertically merged table cells. [office] Fixed alignment issues affecting text and symbols in EMF images. [office] Implemented various optimizations that reduce the output PDF file size. [pptx] Fixed incorrect position and size of some fallback images of OLE objects in PowerPoint documents. [xls] Fixed a rare "File is not a valid zip archive." exception thrown when converting some legacy XLS files. [xlxs] Fixed a crash in Excel documents with print titles set outside of the sheet bounds. [docx] Improved East Asian text layout by adding support for the balanceSpacesAndIdeographicSpaces compatibility option. [docx] Fixed an issue with missing right-to-left text in some Word documents. [docx] Fixed an issue with incorrect right-to-left text order in documents with explicit right-to-left control characters. [docx] Fixed an issue where footnotes were sometimes placed in the wrong position. ## Fixes and improvements for the Structured Output Module [office]Improved the shape detection of complex glyph structures in Chinese, Japanese and Korean language documents. [office]Improved GNSE detection by expanding decision tree for lowercase letter 'e'. [docx]Support the detection of FreeText annotations. [docx]Improved the order detection of overlapping shapes and text. [docx]Improved borderless table detection. [docx]Improved the detection of borderless tables within a two column layout. [docx]Improved column detection. [docx]Improved the detection of highlighted table content. [docx]Improved the detection of a separate text layer when content is overlayed with a stamp image. [docx]Improved the detection of multi-line cell content in hybrid tables. [docx]Fixed a bug causing a transparent hyperlink to disrupt the visible text. [docx]Fixed a bug preventing the detection of a Japanese character in a specific document. [docx]Fixed a bug causing an image to be detected as part of the header. [docx]Fixed a bug that caused footer content to be detected as body text. [docx]Fixed a bug preventing accurate text detection. [docx]Fixed a bug causing footer detection to interfere with page numbering. Version 11.5.0 - May 28th, 2025 See the 11.5.0 changelog on apryse.com ## New In This Release ### Version 11.5 is primarily a bugfix release. ### New Features Added support for Word 2003 XML document format. Added to the Optimizer the API function RemoveDuplicateStreams() which can be called separately without doing any other optimization changes. ### New Options Added new API function FillTemplateJsonToOfficeWithFilter. The behavior is the same as FillTemplateJsonToOffice, except it writes to a filter instead of a file. Added new API function HTML2PDF.SetSandbox() to disable process sandboxing in HTML2PDF, which could be necessary for Azure App Services on Windows. ### End of support This will be the last release supporting Python 2. ## Improvements: [node.js] Added support for Node version 23 for Windows, Linux, Linux Alpine, and Linux ARM 64. [python] Added support for Python version 3.13 for Windows, Linux, Linux Alpine, and Linux ARM 64. [python] Added support for Nuget packages on Linux ARM 64. [pdf] Enabled the TransPDF XLIFF Reflow API for Alpine. [pdf] Improved efficiency of document structure imports during PDF->PDF streaming conversion. [pdf] Improved the ability to repair corrupt documents with missing objects. Previously, an "Attempt to load free object" exception could be thrown during various operations, such as PDFDoc.ImportPages(). The error is now replaced with a silent warning log, in line with how other PDF viewer applications handle these corruptions. [pdf] Improved the parsing of corrupt PDFs that contain invalid circular references inside an xref table. Previously, we could skip parsing some corrupt objects, which could lead to errors such as "[function] can't be invoked on Obj of this type". [pdf] Improved the performance of PDFDoc.GetGeometryCollectionForPage(). [pdf] Deprecated the HasNext() function in the dictionary iterator and replaced it with the more accurately named HasCurrent(). [pdfua] Improved contiguity of generated marked-content-sequences during auto-tagging. ## Bugfixes: [all] Fixed an issue in Xcode 16.3 with compilation of user pre-C++11 code would fail due to an unsupported C++ feature. [all] Fixed an issue in Xcode 16.3 compatibility issue with compilation of user C++ code failing with an std::basic_string<unsigned int> related error due to missing specialization of std::char_traits<unsigned int>. [html] Fixed an issue in HTML2PDF where the conversion log did not contain the correct information when using the HTML2PDF.SetLogFilePath() function. [html] Fixed potential issues in the HTML2PDF converter that could be caused by cookie values being ignored due to a bug in the HTTP protocol handler. [java] Fixed a crash in Android when retrieving an object name which contains non UTF encoded text. [java] Fixed an issue that could cause a segmentation fault in native code when calling PDFDoc.mergeXFDFString() from Java. [node.js] Fixed a potential crash that could have occurred when calling APIs with a file buffer parameter in a folder without write permission. [pdf] Addressed an issue with FieldIterator when a broken AcroForm field had an empty Kids array. For example, previously Field.GetType() could fail with an error "Required field attribute (/FT) not found". [pdf] Changed the default export format of image masks and images with soft masks to PNG. Previously, the default format could be JPG which would result in lost transparency layer. [pdf] Fixed a crash that could occur when printing a pdf with annotations. [pdf] Fixed a PDF rendering issue where certain lines with an unusual dashed pattern could fail to render. Specifically, this could occur when using 0-width dashes combined with rounded line caps to produce a circular dash pattern. [pdf] Fixed a text selection and highlight issue in WebViewer and PDFViewCtrl related to Type3 fonts. When such text was selected, the selection's bounding boxes were sometimes inaccurate. [pdf] Fixed an issue where a certain JPEG2000 image with the GIMP sRGB profile inside a PDF input could cause the image to be missing entirely from the output when the PDF was rendered or converted. [pdf] Fixed an issue where an invalid RGB JPEG image with a mismatched CMYK ICC color profile could cause an invalid image in the output PDF document during image to PDF or Office to PDF conversion. (Convert.ToPdf(), Convert.OfficeToPDF()) [pdf] Fixed an issue where annotations on the OFF OCG layers were always visible. [pdf] Fixed an issue where certain JavaScript page navigation bookmark actions were not preserved by Convert.ToXod(). [pdf] Fixed an issue where Courier Bold Oblique, Helvetica Bold Oblique and Times Bold Italic fonts could reset to the default regular font when updating text widget content in some PDF viewer applications. [pdf] Fixed an issue where PDFView failed to render the OCG from the source PDF after it was merged into the viewing document. [pdf] Fixed an issue where TextExtractor could sometimes return an excessively tall bounding box around the text. Previously, this could cause text selection and markup annotations to be too high in the vertical dimension. [pdf] Fixed invalid memory access invoked by TransPDF API throwing an exception. [pdfa] Fixed a regression when converting a PDF file with CID fonts to PDF/A-2 or later, where the font descriptor contains an incomplete CIDSet that does not cover all the glyphs in the font data. [pdfa] Fixed PDF/A validation false positive for "'endobj' not preceded by EOL marker", in the case of multiple EOLs in front of endobj. ## Office Templating: [docx] Fixed an issue causing inconsistent font sizes in looped templating. [docx] Added dynamic table of contents generation support for document generation (templates) [docx] Fixed a crash in docx to docx templating caused by nested fields. ## Office Fidelity: [xlsx] Added support for pattern fill styles to cells and shapes in Excel documents. [docx] Fixed an issue where framed paragraph positions were not being correctly set. [office] Fixed an infinite loop in chart time axis layout. [docx] Fixed a bug with incorrectly placed outline bookmarks. [xls] Fixed an issue where decimal numbers were incorrectly truncated in XLS documents. [office] Fixed a bug related to supplementary Unicode where Adobe Acrobat would report an error when opening the output pdf. [office] Fixed a bug where font substitution results in an incorrect glyph when symbol fonts are not available. [office] Improved mixed-style East-Asian line breaking. [office] Fixed an issue with incorrect table cell backgrounds in WMF images. [docx] Fixed an issue with incorrectly positioned right-aligned tabs. [xls,xlsx] Added support for the icon set conditional formatting in Excel documents. [docx] Fixed an issue where table rows that are associated with dataBinding elements were missing. [xlsx] Added support for Italian locale in Excel documents. [office] Fixed a bug affecting vertical-flowing text on ARM64 architecture. [docx] Improved handling of malformed tables with merged cells. [pptx] Fixed incorrect link text color in PowerPoint documents. [docx] Added support for DATE field in Word document conversion. [docx] Fixed a rare issue with missing content in vertically merged cells in Word documents. [docx] Fixed an issue where footnotes were sometimes placed in the wrong position. [docx] Improved table column width calculation in Word documents. [doc] Fixed an issue where text box content was displayed incorrectly, and text boxes were mistakenly linked to the wrong shapes in DOC documents. [xlsx] Added support for top10 and aboveAverage conditional formats. [pptx] Added support for list bullet scaling in PowerPoint documents. [docx] Improved the placement of text around framed paragraphs close to the left margin. [docx] Added support for basic HTML formatting in Word. [pptx] Fixed incorrect order of columns in right-to-left tables in PowerPoint documents. [office] Prevented an exception when using bitmap fonts. [xlsx] Added support for explicitly specified locales in Excel data formats. [pptx] Fixed a rare issue with missing tables in PowerPoint documents. [office] Improved font substitution for Chinese fonts. [xlsx] Fixed a rare "document layout failed: false" error in Excel conversions. [docx] Added support for links to footnotes and endnotes. [docx] Fixed an issue where paragraphs beside full width floating content were misplaced. [xls] Fixed an issue where text was incorrectly rendered as hashes in Excel documents. [docx] Fixed an issue with incorrect total number of pages within a section in Word documents. [office] Fixed an issue that caused incorrect alphabetical glyphs to be drawn in equations. [xls] Fixed an issue where cell text alignment was incorrect in XLS documents. [docx] Fixed an issue where shape outline was incorrectly displayed in Word documents. [docx] Fixed an issue where floating objects relative to the bottom margin were misplaced. [xlsx] Added support for theme fonts in Excel headers and footers. [xlsx] Added implementation for the CHAR Excel function. ## Fixes and improvements for the Structured Output Module [docx] Content detection algorithm extended using pdf tags to bias output. [office] Improved detection of bound orientation for specific languages and the preferred orientation of that language. [office] Improve content detection of Korean language documents. [docx] Improved the detection of textboxes with similar layout to a two-cell table. [docx] Improved the detection of table header content. [docx] Improved table detection when cells in multiple columns contain only one hyphen. [docx] Improved the detection of line spacing. [docx] Improved detection of textboxes between column breaks. [docx] Improved the detection of grouped objects with similar layout to a table. [docx] Improved the detection of page headers. [json] Implemented strikethrough property in json export. [json] Improved the detection of text bounds. [docx] Improved the detection of tables within columns of text. [docx] Improved the detection of header content after page orientation change within a document. [pptx] Improved detection of character spacing. [office] Improved OCR analysis of non Latin glyphs. [docx] Fixed a bug preventing the detection of some tables in a certain document. [docx] Fixed a bug causing four characters on a variant color background to be omitted from conversion output. [html] Fixed a bug causing additional text to be included in the target of a URL link. [pptx] Fixed a bug causing a word to be mislocated on a slide. [xlsx] Fixed a bug causing the cells of one row to become merged on a certain document. Version 11.4.0 - April 9th, 2025 See the 11.4.0 changelog on apryse.com ## New In This Release ### Version 11.4 is primarily a bugfix release. ### New Features Added QR code generation capability to office templates. (qr_code keyword) Added PDF text translation capabilities. The translation process consists of three stages. First, the input PDF is tagged, and an XLIFF file is generated with the original text (TransPDF.ExtractXLIFF()). Next, the translators provide the translated text in the XLIFF file. Finally, the translated XLIFF text is applied to the PDF (TransPDF.ApplyXLIFF()). ### New Options Added an option to enable natural right-to-left text selection in PDFViewCtrl (PDFViewCtrl.SetRightToLeftLanguage()). ## Improvements: [pdf] Addressed an issue with FieldIterator when a broken AcroForm field had an empty Kids array. For example, previously, Field.GetType() could fail with an error: "Required field attribute (/FT) not found". [pdf] Improved handling of certain corrupt documents with malformed "RD" elements when calling FDFDoc.SaveAsXFDF(). Previously, the method could fail with "GetAt() can't be invoked on Obj of this type". [pdf] Improved support for corrupted PDFs with circular references to Type0 font objects. Previously, the SDK would overflow the stack while parsing this type of broken PDF. [pdf] Optimized output file size of PDF-to-PDF StreamingPDFConversion by reducing object duplication. [svg] Improved handling of bookmark trees in certain corrupt documents when converting from PDF to SVG. [pdf] Disabled printing of note icons for "in reply to" annotations. [html] Added a workaround for problems with locale in the HTML to PDF JavaScript VM. Previously, a bad locale could prevent the addition of user-specified headers and footers. ## Bugfixes: [node.js] Fixed a potential crash when converting from TIFF to PDF. [pdf] Fixed the addition of non-embedded Base14 fonts (Courier, Helvetica, and Times), which require an Encoding entry. Previously, certain non-English characters did not show up correctly when added to the document using Stamper.StampText. [pdf] Fixed a simple font character decoding issue where the character name starts with "uni". Previously, such characters could be mapped to the wrong Unicode code points during text extraction. [pdf] Fixed an issue while converting MSG to PDF using Office COM Interop due to corruption in the input document. [pdf] Patched a security issue in zlib (CVE-2016-9841). [pdfa] Fixed PDF/A conversion for cases where a content stream has inline images with the Interpolate key set to true. [pdf] Fixed an issue where a very large negative integer number could be interpreted as positive. Previously, this could cause large parts of the page to be rendered as blank. [image] Fixed an issue that could cause clipping of specific JPEG images when converting to PDF. [pdf] Fixed an issue that could cause incorrect spacing of glyphs in certain CID fonts. [pdf] Fixed a regression in XFDF handling where a group of checkboxes would be incorrectly imported as a radio button group. [pdf] Fixed an infinite loop that could occur when traversing a corrupted Bookmarks tree that contained a loop in the /Parent entries. [pdf] Fixed a potential timeout issue in the Data Extraction Module. Previously, the following exception may have occurred with very large PDFs: "Error extracting Form Fields from PDF using the AIPageObjectExtractor module Add-On. This module was not designed to run as a standalone application". [pdf] Fixed a bug that could cause text extraction to fail when PDFViewCtrl is set to RTL mode. [pdf] Fixed a PDF2SVG conversion issue where not all coordinate transformations of text and PDF objects, created with Google Sheets, were correctly reflected in the resulting SVG. [all] Fixed Xcode 16.3 compatibility issue. Previously, compilation of user C++ code could fail with an std::basic_string<unsigned int> related error due to missing specialization of std::char_traits<usigned int>. [pdf] Fixed an issue that could prevent concurrent use of the default OCR Module. Previously, the module could fail with "Error using OCR module Add-On. OCR Module Leadtools 1.0, ERROR: OCRModuleLead Internal Error, code: -14". ## Office Templating: [xlsx] Fixed styling for row loops in xlsx templates. [docx] Improved text styling when using table row loops in office templates. [docx] Improved preservation of table borders in docx to docx templating. [docx] Fixed a bug in docx to docx templating where adjacent tables could cause columns to change size. [docx] Fixed a crash when filling a template containing a positional tab in a loop. ## Office Fidelity: [docx] Fixed an issue with incorrectly positioned paragraph due to frame properties inherited from the parent style. [docx] Added support for numbering in paragraphs without pPr element (implicit Normal style). [xlsx] Improved performance of Excel functions that involve cell formulas. [xlsx] Fixed the "The column is not an alphabet" exception thrown for some valid Excel files. [office] Improved font substitution, specifically around bold and italic styles. [docx] Added support for inset and outset table borders. [docx] Fixed an issue with incorrect table background colors in some Word documents. [docx] Fixed an infinite loop caused by incorrect interaction between floating tables and a STYLEREF field in the header. [docx] Fixed an issue with the incorrect position of rotated floating elements in some documents. [office] Fixed issues with incorrect data label text in some charts. [pptx] Added support for internal links in PPTX documents. [xlsx] Fixed an issue where print titles were missing if not included in the sheet's print area. [docx] Fixed an issue with cut-off content in some autofit text boxes. [docx] Improved handling of floating obstructions in footers. [xlsx] Fixed a crash in Excel files with print areas outside the sheet dimensions. [office] Fixed incorrectly selected category colors in some pie charts. [docx] Fixed an issue with cut off content of inline drawing in Word documents. [docx] Fixed incorrect overlapping of textboxes with rounded corners. [office] Improved error handling when processing documents containing corrupted EMF images. [docx] Fixed incorrect paragraph borders in text boxes. [docx] Fixed the incorrect text color in some tables inside text boxes. [xlsx] Significantly improved memory efficiency for Excel conversions with many columns on one page. [xlsx] Fixed an issue with extremely slow conversion caused by trying to apply conditional formatting to a very large range of cells outside the sheet area. [docx] Added dynamic updating of PAGEREF fields, which are used to show page numbers in the table of contents. [docx] Added support for STYLEREF fields inside fldSimple element. [docx] Fixed incorrect default paragraph style for SDT runs. [docx] Fixed incorrect alignment of some floating shapes with oversized content. [docx] Improved handling of malformed documents with multiple w:body elements. [docx] Fixed an issue with incorrect page numbers and headers/footers when the custom start page number is set to 0. [xlsx] Significantly improved layout of angled text in Excel. [office] Fixed incorrect text orientation inside some rotated shapes. [docx] Fixed an issue where paragraphs beside full width floating content were being misplaced. [xlsx] Fixed an issue where automatic point markers in Excel documents were not displaying the correct styles. [office] Fixed incorrect oversized content clipping inside text boxes. [office] Fixed an issue where markers, when set to "no fill" and "no line" options, were not displayed in the correct styles in charts. [office] Fixed an issue with missing legend elements in charts with empty series. ## Fixes and improvements for the Structured Output Module [docx] Improved the detection of text when the left margin of the scanned document contains noise. [docx] Improved list detection in pdfs using image bullets. [office] Improved the detection of graphic tables. [xlsx] Improved column detection of partially bordered tables. [docx] Implemented internal bookmark to a specific page in the Word document to match the pdf links. [json] Improved detection of small caps. [docx] Improved the order detection of overlapping shapes and images. [docx] Improved detection of column breaks. [docx] Improved detection of vertical Japanese text. [docx] Improved detection of borderless tables. [json] Improved detection of "Table of Contents" bounds. [json] Improved handling of arbitrary text rotation in json export. [json] Fixed an issue causing partial detection of a line of text. [docx] Fixed an issue causing incorrect merging of separate tables on a page. [docx] Fixed an issue causing rows of certain table content to become merged. Version 11.3.0 - February 19th, 2025 See the 11.3.0 changelog on apryse.com ## New In This Release ### Version 11.3 is primarily a bugfix release. ### New Features Added a new Generic Key-Value engine to the Data Extraction Module. (DataExtractionModule.e_GenericKeyValue) Added a function to update http request custom headers for viewing linearized PDF file from URL. (PDFViewCtrl.UpdateCustomHeaders() and PDFViewWPF.UpdateCustomHeaders()) ### New Options Added Inclusion and Exclusion zones to the Data Extraction Module. These zones allow users to specify regions of interest in a document when using specific Data Extraction Module engines. (DataExtractionOptions.AddInclusionZonesForPage() and DataExtractionOptions.AddExclusionZonesForPage()) ## Improvements: [pdf] Improved file size when inserting a CCITT image into a page by using CCITT compression in the PDF image stream if the original image is a TIFF image that is CCITT compressed and if the user has not specified any particular compression to use. [pdf] Improved how overlay text is aligned inside a redaction rectangle for cases where the PDF pages have rotation. [pdfua] Improved placement of link annotations within the structure tree when auto-tagging. [pdf] Improved performance of rendering of corrupt PDFs that contain vector graphics paths with enormously long segments. Previously, rendering such PDFs could take an extremely long period of time. [pdf] Added getter and setter functions for the radio button groups of optional content groups (OCGs) to the OCG Config class. [pdf] Improved the Apryse SDK's repair capabilities when opening corrupted PDF files. Previously our repair could be incomplete, causing inaccurate rendering or content extraction. [c++] Added an overload of PDFDoc.SaveViewerOptimized(), which accepts a ViewerOptimizedOptions reference. ## Bugfixes: [all] Fixed issue that could cause the error "locale::facet::_S_create_c_locale name not valid" on certain AWS Lambda runtimes (e.g., Node.js 20.x) [pdf] Fixed an issue where the 32-bit SDK created corrupt output PDF files when the 4GB size limit was exceeded. Now an exception is thrown instead, and the 64-bit SDK has no such size limit. [pdfa] Fixed a PDF/A validation case where an error "Embedded Type1 font descriptor's CharSet string does not list all glyphs." was reported when it was not the case. [pdfa] Fixed conversion to PDF/A-1a when a font is missing a ToUnicode table. [pdfa] Fixed the regeneration of the CID font's CIDSet during PDF/A-1a conversion when the same descendant font is shared by more than one CID parent font. [pdf] Fixed an issue where digital signature verification could fail when the OCSP response contains multiple certificates. [xfdf] Fixed a crash that could occur when converting FDF to XFDF if a page's viewport has no BBox entry. [pdf] Fixed a potential timeout issue in the Data Extraction Module. Previously the following exception may have occurred with very large PDFs: "Error extracting Form Fields from PDF using the AIPageObjectExtractor module Add-On. This module was not designed to run as a standalone application". ## Office Fidelity: [docx] Improved handling of interaction between floating elements and inline tables. [docx] Fixed paragraph spacing when the space before is set to auto. [docx] Fixed incorrect default hooter and header sizes in Word documents. [docx] Fixed incorrect layout of vertical text in some shapes. [docx] Improved handling of malformed tables. [ppt] Fixed incorrect spacing between bullet points and text in some PPT documents. [docx] Fixed issues with incorrect content placement in linked text boxes. [docx] Improved Layout around rounded rectangles. [xlsx] Fixed a rare null position reference exception occurring during Excel conversion. [office] Fixed incorrect text color in some diagrams. [office] Fixed an issue with missing image outlines in some documents. [office] Fixed incorrect size of shape text boxes in rotated shapes with the "Do not rotate text" flag set. [docx] Fixed an unexpected default stroke added to some shapes. [docx] Fixed displaying of deleted section breaks when change tracking is disabled. [xlsx] Fixed template filling for XLS/XLSX workbooks. [office] Fixed incorrect 3D rotation applied to shapes when the "Isometric Top Up" preset is selected. [xlsx] Fixed the "caller.m_operators.back() == "f"" exception thrown for some Excel documents. [xlsx] Fixed an issue with incorrect evaluation of Excel formulas returning strings as boolean values. [docx] Added support for text outlines in DOCX documents. [xlsx] Fixed incorrect resolution of local hyperlinks in Excel. [xlsx] Avoided adding empty trailing pages to Excel sheets. [ppt] Fixed an issue missing tab indentations in PPT documents. [doc] Fixed an issue with missing bottom borders of the first row in tables in some DOC documents. [xlsx] Fixed an issue with missing text after images in Excel headers/footers. [docx] Fixed incorrect lengths of lines in some drawings. [pptx] Multi-column text boxes are now balanced when they overflow. [docx] Fixed an issue with extra borders between paragraphs with additional spacing. [pptx] Fixed incorrect text color in some PowerPoint documents. [docx] Fixed incorrect positions of floating shapes anchored inside framed paragraphs. [xlsx] Fixed an issue with horizontally oversized tables inside floating shapes. [doc] Fixed an issue where unexpected list numbers were appearing at the beginning of paragraphs in DOC document. [doc] Fixed an issue where some list numbers were being duplicated in DOC documents. [docx] Fixed the incorrect size of watermarks in some documents. [docx] Fixed an issue with "Keep lines together" paragraphs were moved to the next page for no reason. [docx] Content in "New column" sections is now placed on the correct page. [ppt] Fixed an issue where text did not appear bold when the "Times New Roman Bold" font was selected in PPT document. [docx] Accounted for border thickness when applying relative size and position to floating shapes. [office] Fixed incorrect rounding of percentage values in some chart data labels. [doc] Optimized output PDF size by eliminating duplicate images during DOC document conversion. [docx] Fixed a rare case of a floating table being in the wrong column. [docx] Fixed an issue with incorrect table width inside text boxes. [docx] Fixed incorrect line spacing after continuous sections breaks. [office] Fixed an issue where the EMF image lost transparency in office documents. [docx] Fixed incorrect positioning of some shapes in drawings. [xlsx] Added support for page number offsets in Excel headers/footers. [docx] Fixed an issue with incorrect float avoidance for some paragraphs with custom spacing. [office] Fixed an issue where chart labels were misaligned in EMF images. [office] Fixed an issue with unexpected reordering of digits in RTL text. [docx] Fixed an issue with extra paragraph lines placed inside table cells at the end of the page. ## Fixes and improvements for the Structured Output Module [docx] Improved column and row detection of hybrid split tables. [office] Implemented the recognition of non standard encoded vertical Japanese characters. [office] Improved the precision of non standard encoded Arabic character coordinates. [docx] Improved detection of single column non-table content. [docx] Improved table detection. [office] Improved the rendering of Type 3 font glyphs. [docx] Improved the optical character recognition of large images on 32 bit platforms. [docx] Implemented list recognition in pdfs using image bullets. [json] Implemented the option to ignore the detection of tiled pages in json export. [json] Improved json export of pages that exceed Microsoft size limitations. [json] Support nested tables being placed inside corresponding cell contents. [office] Applied custom language string options for Chinese text recovery. [office] Improved initialization mode for use of Thai trained data language file. [docx] Improved the detection of list items to prevent inclusion of undesirable footnote content. [office] Implemented automatic rotation detection of Japanese and Korean documents using optical character recognition. [docx] Fixed a bug causing the misdetection of multiple glyph shapes representing a single letter "e" in a document. [docx] Fixed a bug preventing detection of a borderless table when the table contained extended spaces between rows. [docx] Fixed a bug causing the detection of unnecessary column breaks in a document with right to left aligned Arabic text. [docx] Fixed a relative height calculation issue preventing a very large document from opening in Microsoft Word. [docx] Fixed a bug preventing the detection of columns when ignoring the tagged table structure of a pdf. Version 11.2.0 - January 8th, 2025 See the 11.2.0 changelog on apryse.com ## New In This Release ### Version 11.2 is primarily a bugfix release. ## Improvements: [pdf] Optimized rendering and display performance of large pages containing a lot of tiling patterns. [pdfua] Improved ordering of annotations during auto-tagging. [pdf] Improved support for badly formed PDFs where an indirect Length object was used inside an XRef stream. Previously this could cause most of the page content to come out as blank. [pdf] Improved handling of corrupt PDFs with negative object numbers. Previously this could cause PDFDoc.InsertPages to throw an exception when copying a page from one PDFDoc to another. [html] Improved HTML to PDF error reporting when the margins exceeded the paper size or were otherwise inconsistent. Previously the conversion could fail with the vague exception of "An internal error happened between the SDK and the HTML2PDF module", which was replaced by more descriptive error messages. ## Bugfixes: [pdf] Fixed a potential memory corruption issue in ElementWriter.WriteGStateChanges() that previously could sometimes lead to a crash. [pdf] Fixed an issue that could cause a stack overflow when iterating over deeply nested page trees. [pdfa] Fixed a crash with a specific set of files when converting to PDF-A levels 1, 2 or 3 conformance A. [pdf] Fixed an issue with redacting non-painting path operators. Previously non-redacted content on such pages could get incorrectly scaled, rotated and/or skewed. [pdf] Fixed an issue where reading a corrupt JPEG image was resulting in the process hanging indefinitely. [pdf] Fixed a memory leak that could occur when using Font methods to create a new CIDTrueTypeFont multiple times from the same path or memory buffer. [cad] Added the header "Error converting CAD content using CAD2PDF module Add-On." to the messages of exceptions resulting from failures to convert a CAD document to PDF. [pdf] Fixed various issues where the incorrect font was chosen when generating AcroForm field appearances. This was especially apparent when newline characters were used in a single-line text field. [pdfa] Fixed a PDF/A validation and conversion issue with subsetted CID fonts that have a CIDSet stream in the font descriptor with missing or incorrect entries. [pdfa] Fixed an issue with conversion to PDF/A-1b of a file that uses a CMYK color space. The document was missing a CMYK OutputIntent resulting in failure to validate with third party PDF/A validation tools. [pdf] Fixed an issue where TimestampingConfiguration.TestConfiguration() failed to verify a timestamp with CMS that contains both SigningCertificate and SigningCertificateV2 attributes. [pdf] Fixed a redaction issue where the overlay text did not appear vertically aligned to the top due to an unusually small font size. [pdfa] Fixed PDF/A-1, 2 and 3 validations of documents where form fields that are parents of widgets have actions of their own in addition to the widget. [pdf] Fixed an issue where ImportPages could cause some form field widgets to have the incorrect field value in the output document. Previously manually selecting a form field in some PDF viewers could cause its value to change unexpectedly. [pdf] Fixed an issue with FreeText annotation appearance generation where the vertical position of text within the generated appearance could be slightly different from what is displayed in WebViewer and other PDF viewers. [pdf] Fixed an issue where after XFDF import, more than one widget in a group of mutually exclusive checkboxes could be checked at the same time, due to the fields inappropriately sharing the same name. [pdf] Added file type verification to the Data Extraction Module's conversion methods. Previously conversions of files without a .pdf extension could fail with inconsistent error messages. ## Office Fidelity: [xlsx] Improved memory usage for large office files. [docx] Fixed issues with incorrect z-ordering of floating elements. [docx] Fixed incorrect position and size of the oversized (wider than the page width) floating tables. [docx] Fixed rare bug where word wrapping failed for CJK characters in a fully justified paragraph. [docx] Fixed an issue with incorrect default table borders in some documents. [docx] Improved handling of incorrectly placed fields in Word documents. [docx] Implemented support for displaying chapter numbers before page numbers. [doc] Fixed an issue where table borders were incorrectly displayed as dotted lines. [xlsx] Added support for checkboxes inside cells for Excel documents. [docx] Fixed a rare exception thrown in some DOCX documents with line numbering enabled. [xlsx] Fixed an issue with incorrectly scaled Excel content that led to extra pages in the output PDF. [xlsx] Implemented the EVEN and SUBTOTAL Excel functions. [doc] Fixed an issue with missing content due to incorrectly handled default row height in DOC documents. [xlsx] Fixed an issue with extra pages in some Excel documents. [xlsx] Fixed incorrect default alignment of text-formatted cells. [xlsx] Added proper support for right-to-left Excel sheets. [office] Fixed a rare issue with missing text in some right-to-left paragraphs. [xlsx] Implemented support for vertical text in Excel cells. [docx] Fixed a rare issue with hidden table rows that should not be removed. [xlsx] Fixed an issue with incorrectly positioned rotated line shapes in charts. [docx] Fixed an issue where the shape lines were misaligned in DOCX documents. [docx] Implemented better balancing of columns with inline images. [docx] Fixed an issue with incorrectly cut off inline images inside table cells. [xlsx] Fixed an issue with missing lines in line charts when some series values lie outside the plot area. [docx] Fixed incorrect handling of comma decimal separator in FORMULA (`=`) field in Word. [office] Fixed the scaling of some images. [docx] Added support for underlined shapes and images. [office] Added handling of a case where category names should be used instead of series names in a chart. [docx] Added basic support for EQ fields in Word. [docx] Fixed a bug in template generation where table cell borders were incorrectly added in the output. [docx] Fixed a bug where a floating text box in a framed paragraph could get duplicated. [docx] Improved conversion speed for Word documents containing the total number of pages in the header or footer. [docx] Improved accuracy of the estimated total number of pages in Word documents. [docx] Fixed the positioning of content beneath multiple columns. [doc] Fixed an issue where subscript and superscript formatting was ignored in DOC documents. [doc] Fixed an issue that caused underlines to not appear on the title in DOC documents. [docx] Fixed an issue where text content after a center tab would overlay a floating element. [doc] Fixed an issue that caused table captions to appear in incorrect positions in DOC documents. [docx] Fixed an issue with content moved to the next page due to an oversized element on the next line. [xlsx] Fixed an issue with incorrect scaling of Excel sheets with a 0 scale value in OOXML. [office] Added support for grayscale image effect. ## Fixes and improvements for the Structured Output Module [docx] Improved optical character recognition of black text on a gray background. [json] Support link property in JSON conversion output. [json] Improved the detection of annotation identification. [docx] Improved the forced detection of non-standard encoding of Arabic, Chinese, Japanese and Korean characters of multiple page documents. [docx] Improved the optical character recognition preprocessing of vector text. [docx] Improved detection of paragraph styles. [docx/xlsx] Improved the detection of borderless tables. [json] Improved hyperlink detection. [json] Improved reliability of paragraph coordinates of rotated textboxes. [json] Improved detection of the page rotation angle when autorotate is manually disabled. [json] Improved the detection of page orientation containing inconsistently orientated text. [docx] Fixed a bug causing an extra line of body text to be detected in the header. [docx] Fixed a bug resulting in the partial loss of specific bounding boxes of a document. Version 11.1.0 - November 27th, 2024 See the 11.1.0 changelog on apryse.com ## New In This Release ### Version 11.1 is primarily a bugfix release. ## Improvements: [ocr] Upgraded the IRIS OCR Module to IRIS OCR SDK 16.2.2+130. [pdf] Improved vertical positioning of text overlays for redaction rectangles. The gap between the rectangle edges and the text is now thinner and vertical center alignment is more precise. [pdf] Improved support for PDF to XOD conversion and rasterization when handling corrupt documents containing references to free indirect objects. Previously this could lead to a "FindObj() can't be invoked on Obj of this type." exception. [xod] Improved support for converting to XOD from corrupt PDF files containing free references to OCGs. Previously an "Attempt to load a free object" exception could be thrown. ## Bugfixes: [pdf] Fixed an issue with Field.SetFlag() on rare PDF documents containing form fields with an extraneous Field flag entry in the widget dictionary. Previously, this could cause subsequent calls to Field.GetFlag() to return a different value from the one that was set. [pdf] Fixed an issue with with ConvertPrinter.install() where it could sometimes fail on Windows 10 or later with error "Failed to install printer." Previously, this could happen with some applications that are running with compatibility mode for older Windows versions. [pdf] Fixed an issue with rendering images with an ICC color profile and a soft mask black matte. Previously these images could be rasterized darker than expected. [pdf] Fixed an issue with redaction of text objects containing text rise. Previously, the redaction rectangles could be vertically shifted. [pdfa] Fixed an issue when converting to PDF/A documents with unsupported metadata either in the page Property Lists resource or within Form XObjects. Previously such documents could throw an "Invalid Metadata" validation error even after conversion. [pdf] Fixed an issue in the OCR Module where combining multiple languages reduced the output accuracy. [nuget] Fixed a packaging issue on WinUI with the nuget packge "PDFTron.Net.x64". ## Office Fidelity: [docx] Fixed an issue with incorrectly evaluated value of some IF fields in Word. [office] Fixed an issue where the cell borders were missing in WMF images. [xls] Fixed an issue with incorrect chart trendline position in some XLS documents. [xls] Fixed incorrect addition of a legend to scatter charts in XLS documents. [ppt] Improved support of East-Asian fonts in PPT documents. [docx] Fixed an issue that prevented date strings from being displayed in the footers of DOCX documents. [xlsx] Added support for double underlines in Excel headers and footers. [doc] Fixed a rare crash in DOC documents caused by incorrect symbol code in the document. [docx] Improved the layout of complex right-to-left paragraphs. [docx] Added support for image links in DOCX documents. [docx] Implemented support for STYLEREF field in Word documents. [xlsx] Significantly improved performance and memory usage when converting Excel documents with large amounts of empty cells. [xlsx] Fixed issues with cut off overflown text in Excel documents. [xlsx] Fixed an issue where Excel cells were hidden due to an explicitly set hidden="false" flag in OOXML. [xlsx] Fixed an issue with incorrectly scaled Excel content that led to extra pages in the output PDF. [docx] Improved the ordering of elements in images containing grouped objects. [docx] Added support for CJK punctuation compression in justified paragraphs. [docx] Fixed an issue with incorrect placement of some tables with thick outer borders. [xlsx] Fixed an issue where very small numbers (<1E-15) were incorrectly rounded to zero in Excel. ## Fixes and improvements for the Structured Output Module [docx] Improved the detection of small images comprised of thousands of objects in the original pdf container. [docx] Improved the order detection of overlapping shapes and images. [docx] Improved the detection of Japanese characters. [docx] Improved the stability of font color detection in text boxes with varying fill colors. [docx] Improved the optical character recognition preprocessing of vector text. [docx] Improved the stability of page orientation when vertical Japanese text is detected. [docx] Improved the detection of bullet and list items in Korean language documents. [docx] Improved the detection of Latin characters in Korean language documents. [docx] Improved the detection of Japanese language. [docx] Implemented post processing of images to improve optical character recognition. [docx] Improved detection of full page black image overlaid with images of white text. [xlsx] Fixed an issue resulting in various rows of a large table to become combined. [docx] Fixed an issue causing a textbox to convert with an incorrect fill color. [docx] Fixed an issue preventing the detection of a hyperlink. [docx] Fixed an issue resulting in text being converted as an image. [docx] Fixed an issue that caused the conversion time of a specific document to be extended. [office] A limited number of third-party libraries have been updated to include the latest security fixes, including libpng and libcurl. Version 11.0.0 - October 30th, 2024 See the 11.0.0 changelog on apryse.com ## New In This Release ### PDF/UA-1 Conversion A new experimental interface to automatically convert and add accessible tags to existing PDF files so that they conform to PDF/UA-1. (PDFUAConformance class and PDFUAConformance.AutoConvert()) This autoconversion feature requires that DataExtractionModule be present and accessible from the SDK. Note that for full conformance with PDF/UA it is required that the generated output undergo manual review and editing as required. ### Barcode Module Added a new Barcode Module that can detect a wide range of barcode types in PDF files and provides output in JSON format. (BarcodeModule.ExtractBarcodes() or BarcodeModule.ExtractBarcodesAsString()) ### New Options Added an option to export comments from Word documents as PDF annotations. (OfficeToPDFOptions.SetDisplayComments()) ## Improvements: [ocr] The latest OCR module has significantly improved quality and run speed. [.net] Added support for .NET 9. [cad] Updated CAD module binaries to use ODA version 25.8. [pdf] Improved the exception message in TextSearch.Run() for when the search string is empty. Previously it could throw a "The instance hasn't been initialized yet." exception. [pdf] Reduced the memory required when loading PDF files with static XFA containing element names that are split into many parts. Previously loading these files could lead to very high memory usage. [pdf] Improved support for parsing corrupt PDF files containing TJ operators where the operator argument has an extra unmatched left square bracket. Previously, rendering a file with this error could lead to missing text or other content. [pdf] Improved support for rendering corrupt PDFs where there is an unexpected operator "n" within a text block. Previously this could cause words to incorrectly overlap with each other. [cad] When converting CAD to PDF hidden layers will now be retained. [pdf] Improved handling of corrupt PDF files with invalid path building commands in BT/ET blocks. Previously this could lead to rendering errors including incorrectly positioned text elements. [pdf] Improved handling for corrupt PDF files containing garbage data after trailers or inconsistent trailer dictionaries. Previously, such files could fail to load with an "Attempt to load free object" exception. [pdfa] Conversion to PDF/A-1 with transparency flattening enabled now supports flattening partially transparent text. Previously this text could become opaque after conversion. [pdf] Adjusted PDF incremental download to more efficiently fetch document info which can be required for rendering. [cad] Added support for using embedded DWF fonts on Linux. Previously, missing this support could cause incorrect glyphs or glyph spacing in the output. ## Bugfixes: [pdf] Fixed an issue where files with fields that have JavaScript actions containing whitespace-only values were being calculated incorrectly. Previously this could result in unexpected changes to unrelated field values. [pdf] Fixed an error where font styles (e.g., Bold, Italic) may fail to be applied during Freetext annotation appearance generation if they are supplied via the annotation's default resources (DR) dictionary. [pdfa] Fixed an issue with conversions to PDF/A-2 or higher which could occasionally lead to relevant characters mapped to glyph index 0 (the .notdef glyph) being removed from the content. [pdfa] Fixed an issue with conversions to PDF/A-2 or higher where the output file could have a validation error: "tintTransform is different in Separations with the same colorant name is not fixed in the output file", or a similar error for alternateSpace. [pdf] Fixed an issue with redacting rare PDF text that uses fonts with inaccurate or broken geometry information. Previously this could cause some text to be erroneously redacted or missed during redaction. [pdfa] Fixed an issue with PDF/A conversion, where the output file would have a validation error: "Corrupt content stream". This can happen on input files that are generated by merging different pdfs. [pdf] Fixed an issue with the appearance of applied redactions that include text. Previously, the top and bottom alignment of the text was noticeably offset from the top or bottom edge of the redaction rectangle. [svg] Fixed an issue with PDF to SVG conversion issue where, in rare cases, content could be placed incorrectly. Previously, this could lead to content piling up top of itself in one corner of the SVG canvas. [cad] Fixed an issue with DGN to PDF conversion where complex 3D objects could cause very high memory usage, sometimes leading to memory exhaustion. [html] Forced rendering of text/html part of the content in multipart EML files. Previously the module would render the part that was defined first which typically was plain text. [html] Fixed an issue handling html files with a large number of nested divs on Windows. Previously, an "HTML2PDF module crashed. To get more information, enable logging using SetLogFilePath." exception could be thrown. ## Office Fidelity: [doc] Fixed an issue where the left and right borders of table cells were incorrectly displayed in DOC documents. [office] Improved the accuracy of displaying the category axis with correct tick marks, labels, and axis crossing values in XLS documents. [xlsx] Fixed an issue with an unexpected exception thrown due to an incomplete dataBar element in an Excel document. [xlsx] Fixed a crash during Excel document conversion caused by a document with an empty print area. [xlsx] Fixed an indefinite Excel document conversion caused by page breaks outside the print area. [ppt] Fixed an issue where the absence of a specified text flow type in OOXML led to incorrect text rotation and alignment. [docx] Improved the spacing between paragraphs with the same default style. [docx] Fixed a crash caused by paragraph style inheritance cycles. [docx] Fixed bug where a list item bullet may persist after a template fill with a false conditional. [docx] Improved the handling of floating objects when the distance from text setting is non-zero. [docx] Fixed a rare infinite pagination bug related to placing right-to-left text in a table. [xlsx] Improved handling of Excel workbooks with invalid print area. [xlsx] Fixed an issue with missing print titles on the first page of Excel documents. [office] Improved accuracy of data label placement in pie charts. [office] Fixed incorrect intervals on a time axis in some charts. [xlsx] Fixed an exception thrown due to invalid cell references in Excel documents. [xlsx] Optimized Excel conversion speed for documents with large amounts of hidden rows. [xlsx] Fixed an issue where drawings in hidden cells were incorrectly visible in Excel documents. [docx] Improved the handling of documents with tables containing dataBinding elements in structured document tags (SDT). [docx] Fixed a rare issue with incorrect table edge borders. [docx] Fixed handling of documents that have page breaks in footnotes. [docx] Fixed a rare crash caused by nested paragraphs in some Word documents. [office] Fixed an issue where the bar chart displayed in a uniform color instead of the intended multiple colors. [docx] Fixed issues with incorrect interaction of tables with floating elements in Word documents. [doc] Fixed an issue where the table border color displayed incorrectly in some DOC documents. [xlsx] Fixed an issue with extra space added to Excel sheets containing empty columns. [xlsx] Fixed incorrect scaling of some Excel sheets with the "Fit sheet to page" option enabled. [xls] Fixed a rare issue where text within cells was truncated or certain rows were missing in XLS documents. [docx] Fixed an issue with missing paragraph borders between some paragraphs. [docx] Fixed an issue with incorrect paragraph spacing in SmartArt shapes. [docx] Improved the spacing between paragraphs with the same style when one paragraph is in an SDT. [docx] Improved the clipping of text box contents. [docx] Fixed an issue with incorrectly positioned images inside shape groups. [docx] Added application of image color effects to images inside shape groups. [pptx] Fixed an issue with extra spacing added to the first paragraphs in some text boxes. [office] Fixed an issue where an EMF image was partially or completely missing due to an incorrectly applied clipping. [docx] Added proper handling of decimal tabs in table cells. [xlsx] Fixed an issue where ExcelMaxAllowedCellCount option did not work correctly with some Excel documents containing empty styled tables. [doc] Fixed an issue where the hyperlinks were missing in Word documents due to unexpected placement of hyperlink elements within the OOXML tree. [docx] Null input values in template replacement values are now treated as empty instead of resulting in error. [xls] Fixed an issue where incorrect page margins caused the headers and footers in XLS documents to either overlap or disappear. [doc] Fixed an issue with an extra page in DOC documents caused by incorrect handling of the "Allow row to break across pages" property. [docx] Improved line breaking around hyphens in older Word documents. [docx] Improved the balancing of columns of different widths. [office] Improved visual appearance of dual-axis scatter charts. [xlsx] Fixed an issue where large numbers were replaced with `#` in shrink-to-fit cells. [xlsx] Fixed incorrectly rounded large numbers in some Excel documents. [doc] Fixed an issue where texts in the table of contents were incorrectly formatted in DOC documents. [xlsx] Implemented dynamic fitting and rounding of numbers in Excel cells. [xlsx] Fixed a crash when converting documents with chart sheets and the SetExcelMaxAllowedCellCount option is set. [docx] Fixed the unreadable content bug in docx to docx templating when filling table cells. [ppt] Fixed an issue with incorrectly displayed custom geometry shapes in PPT documents. [docx] Improved the positioning of floating objects with oversized content. [docx] Fixed an issue where the 3D shape contours were not appearing in DOCX documents. [docx] Fixed a rare crash in documents with list numbering in Normal style. [docx] Fixed an issue with an extra blank page added to the document when a paragraph with "Page break before" option is placed at the bottom of the page. [docx] Improved the application of cell formatting in spreadsheets. Previously some empty cells were missing formatting. [doc] Fixed an issue where certain WMF images were duplicated in DOC documents. ## Fixes and improvements for the Structured Output Module [docx] Improved the detection of standard office bar charts and variants. [docx] Improved the detection of Chinese language. [docx] Improved the optical character recognition preprocessing of vector text. [docx] Improved the column detection of left to right aligned text. [docx] Improved the stability of graphic color detection. [docx] Improved the detection of header content. [docx] Improved detection of white text located on a dark background. [docx] Improved handling of text where the text and background colour match. [docx] Improved table detection. [docx] Improved the detection of diagrams. [docx] Improved detection of black text located on a grey background. [office] Improved language and page orientation detection. [docx] Fixed an issue causing Latin characters in a Chinese document to be misplaced. [docx] Fixed an issue where a large graphic element caused text recovery failure. [docx] Fixed an issue preventing the detection of the correct bounds of a graphic element. [docx] Fixed a performance issue where dense vector graphics prevented successful optical character recognition of a file. [docx] Fixed an issue causing conversion delay of complex one-page document. [docx] Fixed a bug preventing the rendering of the first page of a detected Table of Contents. Version 10.12.0 - September 4th, 2024 See the 10.12.0 changelog on apryse.com ## New In This Release ### Version 10.12 is primarily a bugfix release. ## Changed Behaviour: [cad] Using the latest CAD Module now requires this version of the SDK or later. If this module is used with an older SDK an exception will be thrown. [ocr] Using the latest OCR or IRIS OCR Modules now requires this version of the SDK or later. If either module is used with an older SDK an exception will be thrown. ## Improvements: [pdf] Improved support for repairing corrupt documents where a space between %%EOF and the following object number was missing. Previously an "Object header not found" exception could be thrown. [pdf] Improved support in PDFDoc.MergeXFDF() for merging annotations into a certain type of corrupt PDF page. Previously this could lead to a "SetDirty() can't be invoked on Obj of this type." exception. [pdf] Improved the compatibility of compressed object streams created when saving corrupt files. Previously invalid objects could be compressed which could lead to PDF parsing problems in some applications. [html] HTML to PDF conversion will now include a document outline (also known as a bookmark tree) that aligns with the header structure of the html input. [pdf] Improved support for invalid object references in compressed object streams. Previously when handling these corrupt documents, a 'Bad obj stream' exception could be thrown. [pdf] The Data Extraction Module now supports detection of table headers when using the Doc Structure engine. [pdf] Improved detection of even-odd page header bounds in the Data Extraction Module's Doc Structure engine. [pdf] The Data Extraction Module now includes an object number for annotation graphic groups and textboxes when using the Doc Structure engine. [pdf] Improved detection of span bounds for lines with small caps in the Data Extraction Module's Doc Structure engine. ## Bugfixes: [cad] CAD to PDF conversion will now ignore irrelevant errors that occur after conversion has finished. Previously these would cause an exception to be thrown even if PDF generation is complete. [pdf] Fixed an issue where Annots.FreeText.GetLineColor() could incorrectly return a visible color after the color has been set to fully transparent (0 colorants) with Annots.FreeText.SetLineColor(). [pdf] Fixed an issue with rendering JPEG2000 images with embedded RGB-based ICC color profiles. Previously these images could be missing entirely. [pdf] Fixed an issue with redaction annotation appearance generation that could cause the final appearance to be transparent if the redaction were applied by a third-party application. [pdf] Fixed an issue with inserting pages from one document to another where it was possible for some types of malformed button form fields to be missing in the output document. [pdf] Fixed an issue with appearance generation of stamp annotations with non-standard rotation (not a multiple of 90 degrees). Previously the generated appearance could be distorted after applying multiple rotations. [ocr] Addressed some issues with inconsistent error handling for OCR and IRIS OCR modules. Previously some errors could cause OCR processing to fail silently. [pdf] Fixed a PDF rendering error that could result in sharp transitions when rendering extremely large gradients. [xps] Fixed an issue where PDF to XPS conversion or printing could throw a "The system cannot find the file specified." exception if the temp folder path contains non-ASCII characters. [pdf] Fixed rendering of a specific Identity-encoded font (GGothicBBB) when there is a metrically compatible substitute. Previously some incorrect characters could be displayed. [pdf] Fixed an issue with partial redaction of indexed grayscale images that could cause the non-redacted portion of the image to render incorrectly. [pdf] The Data Extraction Module's Doc Structure engine now outputs a rect entry for span elements. Previously this would be omitted despite being required in the output JSON specification. ## Office Fidelity: [doc] Fixed an uncommon issue where the background color of the first row in tables was incorrect in DOC documents. [pptx] Fixed an issue with overflowing text in some shapes with the "Shrink text on overflow" option set. [docs] Improved accuracy of rendering math equations, particularly vertical positioning of math elements. [docx] Documents with nested SDT table rows no longer have extra table rows. [docx] Added support for page background images (including tiled images) in Word. [docx] Fixed unexpected content displacement by line shapes with "through" wrapping. [docx] Improved the balancing of section columns with unequal widths. [office] Fixed an issue with the pixelated appearance of some EMF images. [xlsx] Implemented support for the "Scale with document" option for Excel headers and footers. [docx] Added proper handling of the "Next Column" section break type for Word documents. [docx] Improved handling of malformed Word documents with misplaced paragraph properties. [docx] Fixed a rare issue with vertically merged tables cells when they span rows which are split across different pages. [xlsx] Added implementation of EDATE Excel function. [ppt] Fixed a potential crash when processing PPT documents caused by non-standard binary data. [docx] Text boxes with rounded corners will now correctly resize to fit the size of the text, if set to do so. [office] Fixed an issue with incorrectly applied image cropping in some office documents. [docx] Improved positioning of VML shapes. [docx] Improved paragraph positioning following a column break. [xls] Resolved a crash that could occur when both header/footer images and content images were present in XLS documents. [xlsx] Implemented accurate row height calculation for rows containing cells with wrapped text. [xlsx] Adjusted checkbox control position to match Excel more accurately. [xlsx] Implemented re-calculation of some formula results in Excel sheets when necessary. [emf] Fixed an issue where a malformed PDF could be produced as a result of converting a document with a complicated EMF image. [xlsx] Fixed an issue with incorrect data labels shown in some charts. [xls] Fixed a potential crash that could be caused by incorrect handling of unsupported binary formula records. [office] Fixed a rare crash related to missing time unit information in charts. [docx] Fixed incorrect line height for some empty lines with floating elements. [docx] Added support for hyperlink anchors (hyperlinks with `#`) in Word. [docx] Resolved an issue where the list number could sometimes restart unexpectedly. [docx] Inline tables will now correctly avoid floating objects when there is a continuous section break on a page. [docx] Fixed multiple layout issues related to nested floating tables. [office] Implemented fast image tiling and improved the appearance of tiled shapes and backgrounds. [pptx] Implemented the display of fallback images for OLE objects in PPTX documents. [ppt] Fixed a rare issue with incorrect shape flipping in binary PPT documents. [docx] Fixed an issue with incorrect right indent in some documents with a character grid enabled. [docx] Fixed incorrect width of no-wrap cells with preferred width set. [docx] Fixed incorrect grid alignment for lines with large non-text elements in Word. [docx] Fixed a rare issue where table column widths were inaccurately set. [docx] Fixed a rare crash related to vanished paragraphs inside empty table cells. [docx] Corrected table widths for tables with percent column widths and without the preferred width set. [docx] Added support for custom list number formats with multiple leading zeroes. [xls] Improved handling of some cases of malformed XLS binary data. ## Fixes and improvements for the Structured Output Module [office] Improved the algorithm for averaging text properties of a paragraph that contains unicode groups to describe a single Arabic glyph. [docx] Improved list detection. [docx] Improved the text line assembly of Arabic content with diacritics. [office] Improved detection of small caps text. [office] Improved detection of Arabic language when minimal English text is near the Arabic language. [docx] Improved detection of header content. [docx] Improved z-order placement of graphic in conversion output. [docx] Improved detection of narrow columns on borderless tables. [docx] Improved conversion result of self-intersecting glyph outlines. [office] Improved page margin calculation to be multiples of 1/4 inch for the imperial measurement system and 1/4 centimeter for the metric measurement system. [docx] Improved the rendering of Type 3 fonts. [docx] Improved usage of tab stops to space content on a single line. [docx] Improved conversion results when the encoding of an incoming pdf contains large, broken text areas. [docx] Fixed an issue causing the background of an image to become transparent. [office] A number of third-party libraries have been updated to include the latest security fixes. Version 10.11.0 - July 24th, 2024 See the 10.11.0 changelog on apryse.com ## New In This Release ### Version 10.11 is primarily a bugfix release. ## New Options Added an option for PDFDoc.MergeXFDF() to support nonstandard rotations (that are not a multiple of 90) when generating annotation appearances. This can be necessary to generate appearances that match how annotations are displayed in WebViewer. (MergeXFDFOptions.SetUseNonStandardRotation()) Added options for conversion from PDF to Word, PowerPoint, Excel, and HTML (in e_reflow_full mode) that adjust how headers, footers and footnotes should be handled in the output. Options include removing them, including them as normal content, or recovering them as headers, footers, or footnotes. (SetDetectAndRemoveHeadersAndFooters() and SetDetectAndRemoveFootnotes() in WordOutputOptions, PowerPointOutputOptions, ExcelOutputOptions and HTMLOutputOptions) ## Improvements: [xps] Significantly improved PDF to XPS conversion performance when handling unmodified PDF documents with many annotations. [pdf] Improved support for loading corrupt password protected PDF files with an incorrectly long Perms entry. Previously the password would not be accepted. [pdf] Improved support for rendering corrupt PDF files containing non-standard fonts that are missing the FontDescriptor. Previously text using these fonts would be displayed incorrectly or not at all. [pdf] Base14 fonts are now created without an unnecessary Encoding entry when the font is not embedded. This can improve the display of check box appearances generated by the SDK in some PDF viewers. [java] Added support for usage of a predefined tmpdir 'com.pdftron.systemloadtmpdir' rather than the default 'java.io.tmpdir'. This provides an alternative way to load the library when the user path contains Unicode characters that can prevent Java's System.load() from working. [pdf] Improved support for rendering broken Type0 fonts that come with no Registry/Ordering information. Previously this could lead to unexpected characters being rendered. ## Bugfixes: [pdf] Fixed an uncommon issue with nested fields when merging XFDF to PDF. Previously the field content would not be merged to the PDF. [ocr] Fixed a rare issue related to the IRIS OCR module when unusually large pages exceeded maximum pixel limitations. Previously OCR could fail with error 'Image side [...] out of limits. Max: 32768 in SetImage()' or could quietly not detect any words. [xps] Fixed an issue when converting from PDF to XPS where text or paths formed by many thin lines could have spiky shapes around the edges (caused by extended miter joins) in the resulting XPS file. [pdf] Fixed a crash when deleting a specific type of corrupt PDF after ElementBuilder.CreateForm(Page) was used. [pdf] Fixed a divide by 0 crash which could occur when rendering some PDF files containing images of 0 width or height. [java] Fixed a potential memory leak for Java ObjectIdentifier and TimestampingConfiguration objects. [java] Fixed an issue where a Java TimestampingConfiguration object would become invalid after a call to TestConfiguration(), causing subsequent usages of the object to crash. [pdf] Fixed a memory leak that could occur when using Font methods to create a new font multiple times from the same path or memory buffer. [pdf] Fixed a crash in FreeText appearance generation that would occur when the rich text entry was corrupt and missing the `<body>` element. [pdf] Fixed a potential issue with FreeText appearance generation where some of the glyphs close to the top of the annotation could be cut off, particularly accents. [image] Fixed a memory leak that could occur during conversion from TIFF to PDF with Convert.StreamingPDFConversion() or Convert.UniversalConversion(). [node.js] Added a few OfficeToPDFOptions functions missing from Node.js. [pdf] Fixed issues with the functions Widget.GetTextColor(), Widget.GetFontSize() and Widget.GetFont() where the default appearance would not be inherited from parent fields. Previously they could incorrectly return a default value instead (black text color, font size 0, and Helvetica). [pdfa] Fixed an issue where certain types of pushbutton appearances could be missing after converting to PDF/A. [pdf] Fixed an error refreshing FreeText annotations on Linux where we could fail to find system fonts with spaces in their names (e.g., "Times New Roman"). [pdf] Fixed an issue with redaction of vector graphics defined clipping paths that are completely enclosed in the redaction area. Previously this could lead to invisible content becoming visible in rare cases. [cad] Fixed an issue where the DWG model pages defined in a specific way could be missing from the output PDF. [pdf] Fixed an issue with PDFDoc.FlattenAnnotations() when handling hidden or invisible annotations. Previously the annotations could become visible after flattening. [pdf] Fixed a crash that would occur when flattening or converting to XOD extremely uncommon and complex pages, with over 10,485,760 elements. [pdfa] PDF/A conversion will now skip creating empty appearance streams when not required. Previously this could wipe out the borders of Link annots for any PDF/A conformance level, and the appearance of non-Widget annots when converting to PDF/A-1. [.net] Fixed an issue where calling function Markup.SetTitle() with a non-ASCII string in .Net Core/Standard/5/6/7/8 would lead to a mangled annotation title. [cad] Fixed an error that occurred only when converting specific DGN files to PDF on Linux. Previously an "Error converting CAD content using CAD2PDF module Add-On." exception could be thrown. [html] Fixed issues with the HTML2PDF options HTML2PDF.SetLandscape(), HTML2PDF.SetPaperSize() and HTML2PDF.SetPrintBackground(). Previously these could be ignored. [html] Fixed an issue with handling double quotes around attribute values in HTML2PDF.SetHeader() or HTML2PDF.SetFooter(). Previously an exception with message "An internal error happened between the SDK and the HTML2PDF module. Contact Apryse support for assistance." would be thrown. ## Office Fidelity: [xlsx] Significantly reduced the memory usage of Excel document conversion. [xlsx] Improved the accuracy of Excel column width calculations. [xlsx] Fixed the incorrect row height set for some rows containing merged cells. [docx] Corrected an autofit table size issue for tables containing paragraphs with a non-zero right indentation. [pptx] Fixed an issue where hidden slides were unexpectedly visible when converting PPTX documents to PDF. [xls] Fixed an issue where some images placed in the header or footer of XLS documents were not sized correctly. [office] Added support for template loops and conditionals that span multiple sections. [office] Fixed a rare crash that occurred when creating an office template. [xlsx] Addressed an issue where getNextExcelSheetCellCount() would take too much time counting cells in a large sheet. [xlsx] XLSX conversion now correctly handles single cell print areas. [xlsx] XLSX conversion correctly retrieves the "protect" status of an Excel cell. [docx] Resolved an issue where paragraph borders were not visible when page borders were present in DOCX documents. [docx] Improved the handling of complex combinations of inline and floating shapes and images. [docx] Fixed an issue resulting in incorrect column widths for some tables in Word. [xlsx] Now correctly handle invalid cell references passed to the COUNTIFS() Excel function. [xlsx] Added support for default grid lines in Excel documents. [xlsx] Fixed issues with incorrectly drawn merged cells on Excel pages with headings and/or titles. [office] Fixed a bug in where diagonal cell borders could result in an exception being thrown. [office] Improved accessibility of PDF output when handling Arabic and other complex scripts by including original Unicode in the output PDF. [xlsx] Fixed a rare crash with Excel documents containing merged cells on the edge of the print area. [docx] Fixed an issue where the table header row color could be applied to non-header cells. [docx] Fixed an issue where right- or center-aligned tabs could be laid out incorrectly. [docx] Improved handling of malformed tables in Word documents (tables with missing cell widths). [office] Fixed a bug where self-serve web fonts were not chosen when converting certain documents. [docx] Now correctly generate an empty page at the end of a document with a trailing page break. [docx] Fixed an issue with displaying an incorrect total number of pages in a section. [office] Fixed an issue that could result in an incorrect text color in some diagrams. [xlsx] Avoided processing hidden columns in Excel, significantly reducing the conversion time for some documents. [docx] Fixed an issue that could incorrectly result in extra blank pages after page breaks in some Word documents. [xlsx] Fixed an edge case that could result in large amount of empty cells being included in an Excel sheet. [office] Fixed an issue with incorrect application of letter spacing adjustments in EMF images. [doc] Fixed an issue with incorrect table row alignment in some DOC documents. [docx] Improved handling of font size values in malformed Word documents. [docx] Added support for row-by-row table alignment in Word documents. [docx] Avoid overlapping floating objects when at least one object is set to not overlap. [docx] Added support for ListNum field for docx documents. The ListNum field in Word allows you to insert sequential numbers, letters, or legal numbering anywhere in a document. ## Fixes and improvements for the Structured Output Module [office] Improved algorithms required to layout right to left body paragraph text. [office] Improved right to left text character matching and diacritic handling. [office] Improved Tatweel (Arabic) language detection. [office] Optimized detection performance for non-standard encoded characters using Tesseract. [docx] Improved detection of footnote text. [docx] Improved header detection. [docx] Improved column detection. [docx] Fixed an issue preventing successful conversion of a file. Version 10.10.0 - June 12th, 2024 See the 10.10.0 changelog on apryse.com ## New In This Release ### Version 10.10 is primarily a bugfix release. ### New Options Added an option to underline DGN text data fields when converting CAD to PDF. (CADConvertOptions.SetUnderlineTextDataFields()) Added an option to set a preferred OCR engine for PDF to HTML conversion in e_reflow_full mode.(HTMLOutputOptions.SetPreferredOCREngine()) Added an option to embed a timestamp token into a digital signature. (CMSSignatureOptions.AddTimestampToken()) Added an option to allow all tables on each page to be on its own single sheet when converting from PDF to Excel using the StructuredOutput Module. (ExcelOutputOptions.SetPageSingleSheet()) ## Improvements: [pdf] Added support for converting .log files to pdf in Convert.ToPdf(), Convert.StreamingPDFConversion() and Convert.UniversalConversion(). [pdf] Annots.FreeText.GetLineColor() now returns the standard border color when the non-standard entry does not exist. Previously only the non-standard entry would be used. [pdf] Improved the logic for recovering corrupted object streams during PDF parsing. [pdf] Added support for repairing corrupt PDF files that include bad content in between otherwise valid PDF objects. Previously loading these files could throw a "doc root not found" exception. [java] Updated Iterator classes and Annot.BorderStyle to implement Autocloseable, allowing them to be used in try-with-resources blocks. [xfdf] Added font subsetting for inline annotation appearances when exported to XFDF. This improvement minimizes the output file size. [pdf] Fixed occasional unwanted line breaks introduced by subscript or superscript content during text extraction. [pdfa] Adjusted conversion to PDF/A-1 to utilize flattening to avoid cases where image soft mask conversion would produce notable visual artifacts. [cad] Added support for using embedded DWF fonts on Windows. [cad] Now allow CAD to PDF font substitution to optionally draw from a provided RSC file. (refer to https://docs.apryse.com/documentation/core/guides/features/conversion/convert-cad-to-pdf/#fonts for details on how fonts are substituted). ## Bugfixes: [image] Suppressed some error messages related to TIFF tags which were previously written to standard output. [xfdf] Fixed an issue in XFDF/FDF import using PDFDoc.FDFUpdate() or PDFDoc.MergeXFDF(), occuring when the ink list sizes of an annotation were different from the original in the PDF. Previously this could cause an "Index out of range" exception or a failure to update the Ink annotation. [.net] Fixed an unhandled exception crash that would occur in PDFViewWPF when the Open URL Dialog was used or PDFViewWPF.OpenURLAsync() was called. [pdf] Fixed an issue with SDFDoc.GetObj() on corrupt documents where the XRef table did not specify all objects. Previously using digital signature verification or calling methods like Obj.GetOffset() could result in a "can't be invoked on Obj of this type." exception. [pdf] Added missing Objective-C APIs to support custom signing with the RSASSA-PSS algorithm. [pdf] Fixed an undesirable vertical shift of text that could sometimes occur in FreeText annotation appearances on macOS ARM64. (Apple M1, M2, M3 CPUs) [pdfa] When converting to PDF/A, now use the alternate color space if the icc color profile of an image is invalid or not supported. Previously the profile could trigger a "Not a valid ICC color profile" validation error for the output file. [image] Fixed a potential crash due to stack overflow when attempting to convert a corrupt or improperly named image to PDF using Convert.StreamingPDFConversion() or Convert.UniversalConversion() with Filter input. [image] Fixed an issue with TIFF to PDF conversion that could occur when the TIFF resolution units were not specified. Previously this could lead to huge PDF page dimensions that would be rejected by some PDF consumers. [pdf] Fixed round artifacts that could occur in PDF rendering when the thin line scaling option was set to 6.0 or higher. [pdf] Fixed an issue where inserting pages from one document to another could fail due to exceptions from processing corrupt logical structure. [pdf] Fixed a rare issue with pdf processing where references to non-existent Type3 font characters and naming collisions could lead to a incorrect resources being used. [pdf] Fixed an issue with FreeText appearance generation where an empty rich-text style attribute "fontfamily" would cause the generated appearance to be blank. [pdf] Fixed PDF rendering issues in overprint mode caused by incorrect handling of some blend modes when painting on top of spot color ink. [pdf] Fixed a small memory leak when using AlgorithmIdentifier in the C++, Python, Ruby, PHP, Go and Objective-C versions of the SDK. [pdf] Fixed text rendering in PDFDraw in very rare cases where there is an embedded OpenType/CFF font that is incorrectly missing a cmap table. [pdf] Fixed the handling of Unicode characters in the headers of the comment summary for Print.StartPrintJob(). Previously non-ascii characters would be escaped using the hexadecimal Unicode value. [cad] Fixed an issue with incorrect text justification when converting certain DXF files to PDF. ## Office Fidelity: [xls] Added support for images in headers and footers for XLS documents. [docx] Fixed an issue with incorrectly limited header size when it is set to intersect the page. [docx] External padding no longer causes floating objects to move. [office] Fixed multiple minor chart rendering issues. [docx] Avoided adding accessibility tags for decorative shapes. [docx] Added support for "alt text" for drawings in accessibility tags of PDF output. [docx] Fixed a bug where the first row of a table is repeated in the output during DOCX to DOCX templating. [docx] Fixed a potential crash caused by repeated office template fills using HTML input. [docx] Fixed issues with handling complex nested Word fields. [office] Fixed an issue with incorrect default chart title size in some documents. [office] Fixed an issue where the last category label was missing in some charts. [office] Fixed incorrect application of default line chart series colors. [pptx] Fixed incorrect default column spacing value. [docx] Fixed positioning of vertically lowered inline shapes and vertically lowered and raised text. [docx] Fixed rare crash with multiple sections in multi-column layout. [docx] Fixed a potential infinite loop bug caused by a large row in a floating table. [ppt] Fixed an issue where the bullet points and paragraphs were misaligned in PPT documents created by Microsoft PowerPoint for Mac. [docx] Fixed an issue where extra lines were incorrectly added after hidden paragraphs. [xlsx] Fixed a rare issue where the cell borders would disappear when the text orientation was set to either 90 degrees or -90 degrees in Excel documents. [docx] Fixed an issue where the hyphen in hyphenated words would move to the next line when the word is split across lines. [xlsx] Fixed a rare issue where numbers that were rotated either 90 or 270 degrees would unexpectedly appear as the hash sign in Excel documents. [office] Fixed an issue with unexpected characters displayed in math equations on non-Windows platforms. [office] Fixed an issue with missing Symbol characters on non-Windows platforms. [docx] Fixed an issue with incorrect placement of page breaks, leading to extra or missing empty pages. [office] Improved font substitution for font families with the font weight included in the name. [docx] Improved layout of floating elements (e.g. shapes and pictures) inside table cells. [doc] Fixed an issue where table borders were missing when the default cell spacing value for the table was set in DOC files. [xls] Improved the accuracy of the size and position for pictures and text in XLS documents. [docx] Fixed a crash in documents with empty tables. [docx] Fixed an issue where content in vertically merged table cells was placed on the wrong page. [docx] Fixed incorrect column reference positions for floating elements in documents created by older Word versions. [doc] Fixed an issue with incorrect page background color in DOC documents. [docx] Improved handling of improperly formatted structured document tag content elements. [docx] Fixed an issue resulting in some floating elements being placed outside of the page. [office] Fixed an issue with incorrect size and alignment of chart titles. [docx] Fixed a rare issue with font substitution, occurring when fonts are specified with inconsistent letter case. [docx] Fixed an issue with text placement around footnotes. Lines of text near the bottom of a page with unplaceable footnotes are now moved to the next page. [docx] Added support for soft hyphens. ## Fixes and improvements for the Structured Output Module [office] Fixed an issue on Linux and Mac where error messages were displayed as hexcodes instead of a description string. [docx] Fixed an issue preventing successful conversion of a file. [docx] Fixed a chunk usage error preventing successful conversion of a file. [docx] Fixed an issue which could prevent all text boxes located in front of graphic from being detected. [pptx] Fixed an issue preventing a colored graph line from being rendered. [office] Fixed and issue causing Arabic characters to be misordered. [docx] Fixed an issue sometimes preventing the detection of a right table border. [office] Fixed a glyph width issue causing illegible text output. [docx] Fixed a bug detecting an extra tab after a bullet point. [docx] Improved detection of parenthesis in right-to-left aligned text when the PDF characters are incorrectly encoded. [docx] Improved detection of hanging indents for right-to-left aligned text. [office] Improved detection of Latin characters within Arabic document. [office] Improved detection of parenthesis in right-to-left aligned Arabic text. [office] Improved alignment detection of right-to-left aligned Hebrew document. [office] Improved detection of Arabic text when the PDF characters are incorrectly encoded. [docx] Improved hybrid table cell detection. [docx] Improved detection of custom numbered list. [docx] Improved hybrid table row detection. [docx] Implement custom metadata field support. [docx] Improved hybrid table column detection. Version 10.9.0 - May 1st, 2024 See the 10.9.0 changelog on apryse.com ## New In This Release ### Version 10.9 is primarily a bugfix release. ### Support for MHT and EML If the HTML2PDF module is available, Convert.ToPdf() and HTML2PDF.Convert() will now automatically use this module to convert .mht/.mhtml and .eml files to PDF. ### New Digital Signature Utilities Added support for digitally signing using the RSASSA-PSS signature algorithm. (DigitalSignatureField.GenerateCMSSignature() that takes AlgorithmIdentifier, RSASSAPSSParams class) ### New Options Added an option to save incrementally to a file when converting from Office to PDF. This saving leads to a significant reduction in memory usage when processing documents with many pages (particularly large Excel documents), but may slow the conversion down if the filesystem is slow. (OfficeToPDFOptions.SetIncrementalSave()). Added options to force or disable OCR processing when converting from PDF to PowerPoint or Excel using the Structured Output Module. These options bring these formats in line with the existing option for conversion to Word. (PowerPointOutputOptions.SetSearchableImageSetting() and ExcelOutputOptions.SetSearchableImageSetting()). Added an option to exclude bookmarks when converting office to PDF (OfficeToPDFOptions.SetIncludeBookmarks()). ## Improvements: [html] Added support for HTML2PDF.WebPageSettings.SetAllowJavaScript() when using html2pdf_chromium. This method is no longer deprecated. [pdf] Fixed occasional excessive highlights with semantic text comparison. [pdf] Exposed PDFDoc.FDFExtract() with a PageSet argument on Java and all versions of .Net. [all] Improved connection error messaging for network-enabled consumption license keys. [pdf] Adjusted cloudy FreeText annotation text padding and alignment to more closely match other PDF viewers. [ocr] Improved OCR quality for documents containing low resolution bitmaps that are not aligned with the crop box. [pdf] Improved support for extracting text from corrupt PDF documents with mismatched q/Q operator pairs. [pdf] Improved resilience of digital signature validation against corrupt files containing free references. Previously these could cause an exception to be thrown. ## Bugfixes: [node.js] Added missing e_ccitt enum value in PDFNet.Optimizer.MonoImageSettings.CompressionMode for Node.js. [html] Fixed issue when converting HTML to PDF that could lead to unexpectedly large PDF output. [html] Fixed invalid PDF structure tree generated by HTML to PDF conversion. [pdf] Fixed an issue with DataExtractionModule.DetectAndAddFormFieldsToPDF() when a page range is specified. [pdf] Fixed an issue with potentially incorrect text extraction in the case where a symbolic TrueType font is used for Latin text. [pdf] Fixed an issue with GeometryCollection where processing of Form XObjects could fail thereby preventing snapping to objects described within. [pdf] Fixed PDF rendering issues with a rare type of tiling pattern. [pdfa] Fixed a PDF/A validation error after converting a PDF that uses device CMYK colorspace with no default and has overprint enabled in the graphics state. [pdf] Fixed an issue with calling Annot.RefreshAppearance(RefreshOptions) in Python, Ruby, PHP and Go. [xod] Fixed an issue where some content could be missing after converting certain XOD files to PDF. [pdf] Fixed an issue where disabling digest verification would make TimestampingConfiguration.TestConfiguration() report a failure. [pdfa] Fixed an issue with validation and conversion to PDF/A where "/Interpolate true", which is not allowed in PDF/A, could be ignored in the "Mask" entry of images and in the page thumbnail. [pdfa] Fixed an issue when converting some documents to PDF/A-1, where the output could cause errors in other PDF consumers. This occurred when processing corrupt PDF files containing image masks that also have a colorspace. ## Office Fidelity: [office] Fixed multiple element placement issues in stacked column charts. [docx] Added clickable hyperlinks to tab leaders in the table of contents. [docx] Fixed an issue where the text within a textbox could appear upside down in Word 2013 documents. [docx] Enabled heading structure tags for PDF output. [xlsx] Reduced peak memory usage for Excel document conversions. [docx] Tuned line height and text baseline placement in a number of different scenarios. [xls] Fixed an issue with incorrect width of some shapes in XLS documents. [docx] Fixed a rare issue with infinite pages caused by floating elements pushed outside page margins. [docx] Fixed a rare "pure virtual method called" error on Linux. [xlsx] Fixed an issue with incorrect handling of Excel documents with more than 65,535 rows. [office] Various fixes for office to PDF accessibility tags for tables. [pdf] Changed font subsetting to also subset glyph widths, reducing PDF file size. [pdf] Improved font processing performance for office PDFs. [docx] Fixed an issue where a floating image could incorrectly overlap a line of text. [xls] Fixed a rare issue with unexpected (extra or missing) cell borders in Excel documents. [office] Added office file metadata to PDF output in office to PDF conversion (title, author. etc.). [docx] Improved text indentation accuracy within paragraphs and lists. [docx] Fixed an issue where floating images could be placed on the wrong page. [office] Fixed an issue with certain Thai accent characters, causing the Adobe "Character encoding" accessibility check to fail. [xlsx] Fixed an issue that could produce incorrect Excel cell margins for merged cells. [docx] Fixed a bug where vertically justified table cell contents were mispositioned. [doc] Fixed incorrect table header styles in some .doc files. [docx] Implemented clipping of floating elements inside table cells. [xls] Fixed an issue with too narrow column widths in some .xls documents. [docx] Fixed issues with incorrect application of kerning in Word documents. [docx] Improved the accuracy of paragraph spacing in Word documents. [office] Added accessibility tags for link annotations. [docx] Fixed a rare issue where an extra line could be added to the end of a table cell. [xlsx] Improved page breaking for large sheets when the ApplyPageBreaksToSheet option is not set. [docx] Improved text layout in justified paragraphs to better match Word's behavior. [xls] Added support for color scale conditional formatting for .xls files. [docx] Fixed an issue with text wrapping around images in table cells. [xls] Improved reading of shapes from malformed .xls documents. [xlsx] Added support for East Asian date formats in Excel. [xlsx] Fixed an issue with the display of numbers with rounding errors in Excel. [pptx] Fixed a rare issue with incorrect shape fill style inherited from the slide master. [docx] Fixed a rare issue where extra table rows were repeated on every page. [office] Fixed incorrect scaling of some SVG images. [xlsx] Fixed a bug where an Excel sheet was extended to its maximum height due to a full-column merged cell. [office] Improved font substitution for multi-language documents. [office] Improved typesetting of Arabic text. [office] Improved font substitution by preferring an exact font match if available in documents containing characters that are not supported by the font. [docx] Added accessibility tags for table header cells. [docx] Fixed a bug where a table row could be be incorrectly interpreted as a repeated header. ## Fixes and improvements for the Structured Output Module [docx] Fixed an issue preventing successful conversion of a file. [docx] Fixed an issue preventing one image of many from being correctly rendered. [docx] Fixed an issue preventing successful conversion of a file on Linux operating systems only. [docx] Fixed an issue preventing the detection of a Table of Contents due to the text order of the file. [docx] Improved detection of breaks on scanned documents containing Arabic text. [office] Streamlined optical character recognition workflow of large documents containing non-standard encoded text. [office] Allowed page snapshot deletion where annotations exist. [office] Improved processing of non-standard encoded characters to unicode. [office] Improved detection of combined characters. [office] Improved detection of Arabic diacritic characters. [office] Improved detection of transparent watermarks over scanned pages. [docx] Improved detection of Table of Contents. [docx] Improved detection of shapes when converting to DOCX. [docx] Improved detection of serial images that contain underlines. [office] A limited number of third-party libraries have been updated to include the latest security fixes. Version 10.8.0 - March 20th, 2024 See the 10.8.0 changelog on apryse.com ## New In This Release ### Version 10.8 is primarily a bugfix release. ### New Digital Signature Utilities Added a method to sign the digest of any arbitrary data with the private key provided in a PKCS #12 key file. This provides an effective way of validating custom signing logic. (DigestAlgorithm.SignDigest()) Introduced a new Digital Signature logging option, which should help with debugging more complex signing issues. (DigitalSignatureField.SetDigSigLogFilename()) ### New Options Added an option to disable PDF structure tag output when converting from office to PDF. Disabling tagging can result in much smaller output file size, particularly for large tables. (OfficeToPDFOptions.SetStructureTagLevel()). ## Improvements: [.net] Added support for .NET 7 and 8. [image] Added a version of Convert.ToTiff that accepts an output stream, allowing for fully in-memory conversion. [cad] Updated CAD module binaries to use ODA version 25.1. [pdfa] When converting to PDF/A, any previously valid and supported XMP metadata entries are now retained. [pdf] Improved the snapping precision for GeometryCollection.SnapToNearest. [pdf] Improved support for corrupt documents with unpaired key-value dictionary entries. [cad] Adjusted CAD layer conversion output to turn off children layers when the parent is off. [node.js] Improved error handling for a number of constructors that are not intended for direct use in Node.js. These will now throw a clear error when used. [cad] Adjusted DGN to PDF to map a number of symbols to Unicode so they can be substituted in the case where the expected font resource is not present. [cad] Provided a new default symbol font to improve substitution for common CAD symbol font resources. [pdf] Improved support for repairing corrupt PDF files that contain streams missing the endobj operator. [pdf] Improved Text Extraction word ordering for cases where text patterns inside PDF are not in reading order. [pdf] Adjusted annotation cloudy border appearance generation to more closely match WebViewer and other PDF viewers. [node.js] Added missing function Obj.getRawBuffer() to Node.js bindings. [pdf] Significant accuracy improvements to the FormKeyValue data extraction engine. ## Bugfixes: [pdf] Fixed an issue with appearance generation where a pre-existing rotation on appearances could sometimes impact future appearance generation. [all] Fixed an issue with PDFNet.AddFontSubst() where it could crash in rare cases due to a missing font family name. [pdf] Fixed an issue specific to Ruby where the Data Extraction Module could error out due to interrupts when extracting form fields. [html] Fixed an issue where the legacy HTML2PDF module could not be found when the file path rather than the directory path was specified. [xfdf] Fixed a rare crash when exporting empty stamp appearances to XFDF. [pdf] Added support for Unicode strings in push button captions. Previously only ascii strings would work as expected. [pdf] Fixed an issue where OCG Group.SetLocked() could incorrectly throw "Index is out of range" exceptions. [pdf] Fixed an issue where corrupt files with missing font descriptors could cause the document to be unexpectedly modified. [node.js] Fixed function Obj.getBuffer() for Node.js so that it properly returns a byte array. [node.js] Fixed an error that would occur when loading the TypeScript binding. [pdfa] Fixed an issue converting to PDF/A-1 corrupt image masks that include a colorspace. Previously the output could cause errors in other PDF consumers. ## PDF to Office Fidelity: ### Fixes and improvements for the Structured Output Module [docx] Improved detection of bold font styles on specific documents. [docx] Resolved a page count issue on macOS. [docx] Improved detection of the small caps font style effect. [office] Improved whitespace detection between Arabic words. [docx] Improved header and footer detection targeting one-page documents with a horizontal line below body content. [docx] Improved detection of tables that overlap with body content. [docx] Improved detection of word order with right-to-left aligned text. [docx] Improved detection of Arabic characters when the text layer does not match the character glyphs. [office] A limited number of third-party libraries have been updated to include the latest security fixes. ## Office Fidelity: [xls] Improved color resolution for XLS documents. [xlsx] Added implementation for the COUNTBLANK Excel function. [docx] Fixed a rare crash caused by placing inline text boxes inside framed paragraphs. [xlsx] Fixed incorrect default page margins in malformed Excel documents. [xlsx] Reduced peak memory usage of XLSX conversions. [xlsx] Adjusted horizontal cell padding in Excel documents to the exact value used by Excel. [docx] Text background color is now correctly applied to list items. [docx] Fixed issues with table of contents generation in non-English documents. [docx] Implemented proper handling of list number spacing in some legacy Word documents. [xlsx] Fixed a crash when a print area splits a merged cell in an Excel document. [xlsx] Fixed an issue with showing the incorrect number of pages in Excel documents. [xlsx] Fixed an issue with text formatting not applying to text cells. [xlsx] Fixed a rare issue with missing cell borders in Excel documents. [docx] Improved handling of footnotes near end of a page. [office] Significantly improved chart rendering code, which corrects multiple cases of incorrectly placed elements. [doc] Improved support for change tracking for legacy .doc files. [docx] Added support for footnote and endnote references with custom marks. [docx] Improved paragraph spacing for the first paragraph on a page. [docx] Improved line height calculation for documents with grid spacing. [doc] Fixed an issue where the extra table borders were displayed. [office] Improved visual appearance and corrected size of inline n-ary (e.g. sum) math elements. [pptx] Fixed an issue where brace shapes were converted to random lines. [office] Improved vertical layout of superscript math elements. [xlsx] Fixed an issue where rotated images were placed in incorrect positions. [docx] Fixed an issue causing a numbered paragraph to have incorrect indentation. [office] Fixed an issue with missing math equations due to the presence of tracked changes in them. [office] Fixed multiple issues with incorrect font selection. [office] Improved the visual appearance of the "small caps" font style to match Word. [docx] Fixed incorrect numbering of letter-based list numbers after 'z'. [xlsx] Fixed a rare issue where the print area of a sheet was applied to another sheet instead. [office] Improved visual result of the luminance adjustment effect on images. [xls] Fixed a rare case of infinite conversion of legacy XLS files. [xlsx] Added support for fallback images for OLE objects in Excel (when available). [office] Fixed multiple small WMF image conversion issues. [docs] Fixed incorrect line spacing for some East Asian fonts. [xlsx] Fixed an issue where some custom font styles were not applied to Excel cells. Version 10.7.0 - February 7th, 2024 See the 10.7.0 changelog on apryse.com ## New In This Release ### Data Extraction Features A new interface to run form detection and add form fields to PDF. (DataExtractionModule.DetectAndAddFormFieldsToPDF()) A supporting option to decide how pre-existing and overlapping form fields should be handled when using DataExtractionModule.DetectAndAddFormFieldsToPDF. (DataExtractionOptions.SetOverlappingFormFieldBehaviour()) New DataExtractionModule Forms Key Value engine, that provides a way to detect forms as well as field names and values. Currently this API is experimental and subject to change. (e_FormKeyValue in DataExtractionEngine enum and DataExtractionModule.SetFormExtractionEngine() for DataExtractionModule.DetectAndAddFormFieldsToPDF()) Added the option to utilize deep learning to assist the Doc Structure engine at the expense of higher computing costs. (DataExtractionOptions.SetDeepLearningAssist()) ### Word Template Generation Added an API to fill in .docx template files using an input .json that produces .docx output. (TemplateDocument.FillTemplateJsonToOffice()) ### New Options Added functions to allow trusted certificates to be retrieved from VerificationOptions. (VerificationOptions.GetTrustedCertificateCount() and VerificationOptions.GetTrustedCertificate()) ## Improvements: [node.js] Added support for electron versions 23-26. [pdf] Improved handling for incomplete PDF Font ToUnicode maps. Previously they would be ignored, which could lead to invalid unicode characters when extracting text. [pdfa] Improved PDF/A-1 conversion with respect to transparency in text to better handle transparency close to, but greater than zero. [pdf] Adjusted Digital Signature Verification logic to retain a more complete set of revocation data. This produces better results when applying LTV. [pdf] Improved handling of corrupt documents where objects not in the XRef table are referenced as pages. Previously this could lead to the document needing a full repair and, in rare situations, some parts failing to be reconstructed. [pdf] Improved support for repairing corrupt documents that contain invalid references to object 0. [pdf] InsertPages will now insert bookmarks at the start when applicable if the new pages were inserted at the start to better match the document order. [image] Added support for .cal files in the Convert API. [pdf] Retain Structure Tree ClassMap, IDTree and Rolemap entries when inserting pages from one document into another. This ensures that certain groupings and styles of structure elements are maintained. [image] Better partial handling for incomplete/corrupt PNG images. Previously processing these could throw an error. [pdf] Improved support for inserting pages from one document to another when the source document has invalid page references. Previously these cases could lead to an exception being thrown. [pdf] Improved handling of corrupt documents with ICCBased ColorSpace, but not the required N entry. [pdf] Added missing functions Date.SetUTMinutes, Date.SetUTHour and Date.SetUT for C++, Python, Ruby, PHP and Go. These functions are needed in order to effectively set the timezone of the date object. [image] Adjusted image import to ignore Tiff resolution in cases where is it excessively large. This avoids a problem where a Tiff of this sort converted to PDF would end up with a tiny output file, which is unsupported by PDF viewers. [cad] Adjusted DGN to PDF to allow dimension line terminator text to use unicode so it can be substituted in the case where the expected font resource is not present. [cad] Improved default font substitutions for a number of common CAD font resources. [cad] Improved line spacing in multi-line text objects. [cad] Added support for the .cal format as a reference in CAD files. [cad] Improved ZoomToExtents results by omitting layers that are off for this calculation. [txt] Fixed an issue with incorrect handling of carriage return (CR)-only newlines in TXT files, ensuring proper text formatting. ## Bugfixes: [xfdf] Fixed issues with certain Cloudy bordered FreeText annotations being cut off after importing from XFDF. [ocr] Fixed a problem related to the IRIS OCR Module where certain high-quality images in the PDF could lead to an incorrect resolution estimate and subsequently an allocation error. This resolution estimate is now capped. [pdf] Fixed an issue with generation of Redaction annotation appearances where, in some cases, the text color would be incorrect. [pdf] Fixed an issue with X501DistinguishedName.GetStringValuesForAttribute() where it could return string values not associated with the given attribute. [pdf] Fixed a potential crash in DigitalSignatureField::GetCertsFromCMS() when no certificates can be retrieved. [pdf] Corrected some issues with calculation of internal bookmark counts when items are opened or closed. [html] Updated reflow logic to restore "This page doesn't contain reflowable text" message when there is actually no text on the page. [xfdf] Fixed issue with XFDF import missing extended ascii support for button on states. On rare buttons that use these on states this could translate to the correct button not being checked. [pdf] Fixed issue with handling of uncommon mix of cmaps that could lead to an incorrect encoding and thereby rendering of specific glyphs. [pdf] Fixed an issue with extracting text from RTL documents utilizing ActualText. [node.js] Fixed an issue where ObjectIdentifier.createFromPredefined() would not function correctly in Node.js. [pdf] Fixed an issue with digitally signing when the signer's certificate has a negative serial number. [xfdf] Fixed an issue where some Page references would be left as integers in PDF after XFDF import rather than an object reference. This mainly caused issues with interoperability with other PDF consumers. [pdf] Fixed a PDF image rendering issue that would occur when the same image is used both as a softmask and a regular image. [pdf] Adjusted logic handling text as a clipping path to apply even clipping paths that consist of empty glyph outlines. Previously, content could be shown that is clipped by some other PDF consumers. [pdf] Fixed a rare encoding issue that could lead to missing characters in specific documents. [pdf] Fixed an issue when inserting pages from another PDF where the source document had Widget annotations with multiple styles, but the same Field name. Previously this could lead to them ending up with the same style in the destination. [html] Fixed an issue where PDF to HTML taking a PDFDoc parameter would throw an exception. [cad] Fixed an issue where some lines with default ending style could be incorrectly rounded (sausage lines) when converting DGN to PDF. [cad] Fixed an issue where 0-width dots with square line endings would not be visible after converting DGN to PDF. [cad] Fixed a specific case where some DWF markup would not appear after conversion to PDF. [cad] Fixed an issue where one specific font would be substituted even if that font itself were actually available. It will now be retained. [cad] Addressed an issue with DWG to PDF conversion where processing Null object ID references would cause the conversion to fail. ## Office Fidelity: [xlsx] Fixed an issue with trailing newlines causing infinite loop in Excel documents. [docx] Enhanced XML parsing to support both `<wps:wsp>` and `<wp:wsp>` elements. [xlsx] Added support for multiple new locales in Excel formats. [office] Enhanced handling of problematic floating elements. [docx] Fixed an issue with incorrect end note numbering. [office] Fixed incorrect default margins of text box elements. [office] Fixed alignment issues for the last line in math paragraphs. [office] Adjusted equation font properties for closer alignment with Word standards. [xlsx] Improved handling of cases with an extreme number of empty cells in Excel documents. [docx] Fixed an issue with missing repeating table header rows. [xlsx] Implement the SUMIFS Excel function. [office] Fixed a small memory leak issue. [xlsx] Added simple handling of dialog sheets, converting them into a sheet that displays the dialog name and an informational message. [docx] Fixed an issue with missing document section in a document with multiple sections on the the first page. [docx] Fixed an issue with incorrect position of floating images outside the page boundaries. [xls] Improving handling of cell styles with conditional formatting in XLS documents. [docx] Improved handling of malformed tables with incomplete rows. [xlsx] Fixed an issue where incorrect conditional formatting was applied to vertically merged Excel cells. [xlsx] Added support of HideTotalNumberOfPages option for Excel documents. [office] Fixed issues with error code propagation in the layout. This addressed the problem of identifying the 'incorrect password' error. [docx] Enhanced page numbering to continue from previous sections, addressing cases where the custom first page number is larger than the actual page number. [docx] Added support for Spanish, German and French languages in numbered lists. [docx] Fixed an issue with incorrectly placed floating elements inside vertically merged table cells. [docx] Fixed a rare issue with incorrect alignment of heading paragraphs. [xlsx] Improved theme color resolution for Excel documents. [docx] Corrected the handling of French text in small caps to appropriately drop letter accents. [docx] Fixed an issue with placing unbreakable paragraphs in the first row of a table. [xlsx] Implemented support of table styles for pivot tables in Excel document. [office] Fixed an issue with missing images when combined with gradient fill background. [office] Fixed an issue where header rows were not repeated in XLS documents. [office] Improved handling of rotated autofit text boxes. [docx] Fixed incorrect layout of tables with center-aligned nested tables. [office] Resolved an issue with gaps in paragraph borders of multiple consecutive paragraphs with the same borders. [docx] Improved calculation of spacing in justified paragraphs. [office] Fixed incorrect handling of the 'EMR_SCALEVIEWPORTEXTEX' record in EMF images, resolving an issue with incorrect vertical scaling. [office] Fixed the issue of incorrect placement of data labels in charts, specifically addressing labels with manual layout and large size. ## PDF to Office Fidelity: ### Fixes and improvements for the Structured Output Module [office] Multiple improvements to pdf rendering clipping algorithms to better identify accurate polygons used in document understanding. [office] A number of header and footer improvements specifically targeting one-page documents. [docx] Resolved an issue with CAD source content where vertical text around architectural details is displaced. [docx] Fixed an issue resulting in the top of characters in one line of text to be clipped. [docx] Resolved an issue causing five rows of a table to be incorrectly merged. [docx] Fixed an issue causing two columns of a table to be merged into one. [docx] Fixed an issue in the clipping engine preventing successful rendering of a specific pdf. [docx] Fixed an issue causing the last line of a right-to-left direction paragraph to have a hanging indent. [docx] Resolved an issue where right-to-left text was incorrectly left aligned. [docx] Fixed an issue preventing the rendering of leader (tabbing) characters in table of contents containing right-to-left text. [docx] Fixed incorrectly wrapped right-to-left text causing a page overflow issue. [docx] Resolved an indentation and alignment issue at list items in a right-to-left document. [docx] Improved table of contents detection by optimizing sections across pages. [office] Improved GNSE detection to independently recognize glyphs and unicodes in separate stages. [office] Improved support for Arabic diacritical marks using analysis of scale and character spacing. [docx] Improved border line termination in specific table cases. [html] Improved the left margin alignment of a document. [docx] Resolved an issue causing text misplacement when viewed on Office 2016 only. [docx] Fixed a hybrid table detection issue resulting in two additional columns. [docx] Fixed an issue causing line shapes to be rendered as underlines. [pptx] Fixed an issue resulting in a block of text in a table to be incorrectly divided into six rows. [docx] Resolved an issue that caused one table to be incorrectly split into two tables. [docx] Resolved an issue causing a textbox to be divided in two parts. [docx] Improved Arabic language character unicode detection. [docx] Improved alignment and indentation of content with right-to-left text direction. Version 10.6.0 - December 6th, 2023 See the 10.6.0 changelog on apryse.com ## New In This Release ## New Features: ### Alpine Linux Support Support for Alpine Linux on x86_64 architecture is now available for all the flavours of the SDK. Please see the Alpine Linux Guide in order to get started with the SDK on Alpine Linux. ### New Options Implemented an option to update the table of contents in Word documents. (OfficeToPDFOptions.SetUpdateTableOfContents()). ## Improvements: [pdf] The SDK will now retain PDF structure tree when inserting pages from another document. This allows the information to be kept for accessibility usages and when applicable PDF/UA conformance. [python] Added support for Python 3.12. [all] Improved error messaging for data collection. Previously one class of errors would not have a timestamp and could report insufficient details. [pdf] Patched security issue in XMP parser. (CVE-2021-36055) [pdf] Added support for empty delimiters in ContentReplacer. Note that this option may be slower than ContentReplacer with delimiters which is the recommended way to use the class. [cad] Updated CAD module binaries to use ODA version 24.10. ## Bugfixes: [.net] Fixed an issue where .Net Core Bookmark.GetColor() did not return the color properly. [pdf] Fixed Digital Signing logic to correctly output CMS with detached signatures. Previously they could not be detached which caused some issues with a few Digital Signature consumers. [pdfa] Fixed issue with PDF/A-4E conversion where RichMedia annotations would be unnecessarily stripped from the document despite being allowed in that mode. [xfdf] Fixed handling of inreplyto entries when using PDFDoc.MergeXFDF(), so that they would be properly reflected in the PDF. [xfdf] Added support for normal line-height in the default style when exporting XFDF. Previously this could throw an exception. [xod] Fixed issue converting XOD files to PDF related to handling of Marked Content. Previously this could lead to some content being omitted. [pdfa] Fixed issue where PDFACompliance.GetDeclaredConformance() did not work as expected for PDF/A-4 variants. [html] Fixed issue with HTML2PDF.SetLogFilePath() where it would fail if the log file did not already exist. [image] Fixed issue importing rare PNG files that require a large chunk size. Previously these would throw an exception when loaded in the library. [pdf] Fixed an issue with media box inheritance handling in page insertion that, in rare cases, could lead to incorrect page sizes in the output. [cad] Fixed an issue where certain types of empty model pages could be visible after DWG to PDF conversion. These are now ignored in line with other CAD consumers. ## Office Fidelity: [docx] Improved performance of converting Word documents with large amount of numbered or bullet lists. [office] Fixed an unexpected exception thrown when converting some documents with empty charts. [docx] Fixed an issue with missing symbol glyphs (with embedded symbol fonts). [docx] Add support for numbered lists in Spanish. [xlsx] Fixed the incorrect default text wrapping in vertically justified or distributed cells. [docx] Fixed an issue with incorrect merging of consecutive tables in Word documents. [office] Updated conversion process to throw an exception when encountering potentially unsafe DTD elements in Office XML files. [office] Improved handling of large numbers in OOXML attributes. The update resolves some shape positioning issues. [docx] Fixed incorrect list numbering in endnotes. [docx] Improved support for Unicode quotation marks in template strings. [office] Fix an issue with missing elbow arrow connectors in the charts. [docx] Added support for Windows drive letter paths for images in templates. [office] Fixed a bug where loading documents with specific office options could lead to a crash. [docx] Added support for mirror margins (swapping left and right margins on even pages). [docx] Added support for SECTIONPAGES field in Word documents. [doc] Fixed an issue with incorrect shape positions in binary Word documents. [office] Added MS Office document metadata (title, author, etc.) to the output PDF files. [docx] Improved handling of tables with merged cells in templates: Corrected the logic to accurately process rows with horizontally merged cells. [office] Fixed incorrect clipping of EMF images containing EMR_EXTSELECTCLIPRGN record. [office] Fixed an issue where reloading the same document with different options didn't apply the new settings. [office] Improve line breaking and alignment of math paragraphs. ## PDF to Office Fidelity: ### Fixes and improvements for the Structured Output Module [docx] Fixed an issue that caused an extra paragraph to be inserted after a specific graphic group. [docx] Resolved an issue preventing the detection of a first page header. [docx] Fixed an issue that caused an extra space to be inserted incorrectly affecting content layout. [docx] Resolved an issue preventing the detection of a small portion of red background color on a graphic. [docx] Fixed an issue converting invisible text as visible when OCR detection results in very few words. [docx] Fixed an issue preventing successful conversion of a file on Linux arm64 operating systems only. [docx] Fixed an issue preventing successful GNSE detection of text when Roboto font is used. [docx] Resolved an issue preventing the successful conversion of a file containing detailed images. [docx] Fixed an issue that caused header content to be shifted down one line on certain pages of a document. [docx] Resolved an issue that caused a document to be incorrectly clipped diagonally causing content loss. [docx] Fixed an issue preventing text from being detected on certain pages of a specific scanned document. [docx] Resolved an issue that caused a font style change in the empty space following an underlined descending letter. [docx] Improved detection of page X of Y page number format. [docx] Improved consistency of detection of multi-line headers. [docx] Improved detection of repeated table headers as body content instead of as header content. [docx] Improved the recovery of Korean text when GNSE is enabled. [docx] Improved borderless table detection. [docx] Improved detection of alternating headers supporting odd and even pages. [docx] Improved detection of alternating footers on odd and even pages. [docx] Improved table detection. [docx] Improved detection of merged cells. [docx] Improved detection of self intersecting glyph outlines when GNSE is enabled. [docx] Improved recognition of multi column layouts. [docx] Extend our character detection for non standard encoding to use tesseract OCR when required. Version 10.5.0 - October 25th, 2023 See the 10.5.0 changelog on apryse.com ## New In This Release ## New Features: ### New PrintToPDF Module A new dedicated interface to convert any file with an associated application directly to PDF. (PrintToPdfModule.PrintToPdf()) Includes options to adjust page margins, orientation, and size. (PrintToPdfOptions) The PrintToPDF module is only available on Windows systems, and is packaged as an independent download. PDF generation is performed using a high performance Windows-certified virtual printer driver. ### New Options Can now determine the size (number of cells) of sheets within an Excel document and potentially skip those sheets during Excel-to-PDF conversion (DocumentConversion.GetNextExcelSheetCellCount() and DocumentConversion.SkipNextExcelSheet()). This should allow for better management of conversion time and system resources when converting Excel documents with a great number of cells. Added an option that can be used delay the start of HTML conversion to better handle cases where it is difficult to determine when the page is fully loaded. (HTML2PDF.WebPageSettings.SetConvertDelay()) ## Improvements: [office] Improved error reporting for interop Visio conversion. [pdf] Improved rendering support for corrupt PDF files with Image Masks that are not actually valid streams. [.net] Added missing function TextExtractor.setOCGContent to .Net Core/Standard/5/6. [pdf] Added support for retrieving PAdES ESS certificates using GetCertPathsFromCMS and GetSignerCertFromCMS. Previously this was unsupported and would throw an exception. [pdf] Optimizer will now avoid throwing an exception when embedding fonts on certain types of corrupt documents. [xfdf] XFDF export will now avoid throwing an exception when encountering certain types of corrupt line endings. [.net] Added OCROptions.SetAutoRotate() to the .Net Core/Standard/5/6 interface. [pdf] Adjusting digital signing logic to ensure that the Field read-only flag is applied to all fields locked by the new signature, preventing them from being edited. [ocr] OCROptions.SetOCGEngine() will now throw an error if the input is not valid rather than ignoring it silently. [cad] Adjusted the CAD module user-tunable font substitution system to work with fonts meant to be located within .rsc files. [cad] The CAD Module now includes more substitute fonts within the package, chosen to match the character spacing of fonts built in to typical DGN editing applications. [image] Upgraded LibWebP used by the Advanced Imaging Module to version 1.3.2. ## Bugfixes: [all] Fixed a crash that would occur initializing with a call-home key and subsequently initializing again with no key. In particular this could occur when using PDFViewWPF. [pdf] Fixed an issue where named destinations using byte strings would not function correctly when imported into another PDF document. [pdf] Fixed an issue where Freetext annotations with cloudy border style could have some of the border cut off. [image] Fixed issue with JPEG2000 loading that could cause specific images to be displayed incorrectly when rendering PDF files. [ocr] Improved handling of rotated images when using the IRIS OCR Module. [ocr] Fixed an OCR issue where the value passed to OCROptions.AddDPI() could be ignored on pages after the first. [ocr] Fixed issue where OCR resource files could only be found in the same resource folder as the module itself. [cad] Addressed some issues with handling relative input file and resource paths in CAD conversion. [cad] Fixed an issue where the font substitution logic could be bypassed for text specified within text nodes. [cad] Fixed an issue where fonts would be stored temporarily in the CAD module folder. This could cause failures in environments where write access was not available like IIS. [cad] Adjusted DGN gradient hatching to use bitmaps rather than PDF triangle meshes, resulting in a PDF that tends to be much smaller and faster to render. [cad] Fixed issue with layer handling that could (rarely) make unexpected changes to other CAD content such as line dimensions. ## Office Fidelity: [docx] Improved frame positioning accuracy in Word documents. [xlsx] Unsupported sheet types (e.g. dialog sheets) are now gracefully ignored instead of causing errors. [docx] Improved reading of non-standard table layouts, enhancing compatibility with documents not created in Word. [docx] Resolved a potential infinite loop issue where table header rows take up an entire page. [xls] Added support of conditional formatting in XLS documents. [docx] Added handling of bottom-aligned sections in Word documents. [office] Corrected the positioning of text in bottom-to-top flowing text boxes to ensure accurate vertical justification. [office] Enhanced text box rendering by optimizing placement for boxes with oversized content. [docx] Improved VML shape rendering to more closely match Word's behavior, allowing shapes to extend off the page under specific conditions. [docx] Resolved an issue with incorrect bookmark order during Word to PDF conversions. [docx] Improved table handling to merge consecutive tables similar to Word. [docx] Added handling of nested paragraphs. [doc] Fixed rare cases of incorrectly handled nested tables in binary DOC files. [xlsx] Improved Excel sheet scaling to more closely match Excel's behavior. [office] Fixed an issue with incorrect alignment of rotated text inside floating text boxes. [docx] Fixed placement of inline pictures at the start of a line in documents from Office version 14 or lower. [office] Fixed incorrect display of empty data categories in charts. [xls] Fixed an issue with incorrect page setup properties applied during XLS conversion. [xlsx] Fixed a rare issue with missing date values in Excel documents. [doc] Fixed incorrect first line indentation in some binary DOC documents. [xlsx] Fixed an issue with missing header and footer parts in Excel documents. [office] Improved drawing of combination charts with stacked series. [office] Corrected the order of legend items in charts with stacked series. [office] Improved the rendering of dual axis charts. [xlsx] Added support for all pre-defined page sizes available in Excel. [office] Addressed an issue with unmapped "Symbol" font characters, ensuring they render correctly and as intended by users in documents. [docx] Corrected an issue with incorrectly applied custom list numbering pattern in Word documents. [docx] Enhanced list numbering with support for legal style numbering. [docx] Refined list numbering to align closely with Word's behavior. [xlsx] Enhanced the accuracy of Excel column width calculations to match Excel's precision exactly. [xlsx] Implemented the TRUNC Excel function. [docx] Fixed an issue with column balancing when floating objects are present. ## PDF to Office Fidelity: ### Fixes and improvements for the Structured Output Module [docx] Fixed an issue preventing the underline style from applying to all characters of a word when not appropriate. [docx] Improved compliance with the OpenXML standard when handling malformed hyperlinks. [docx] Improved our compliance to the OpenXML standard generally when emitting text in varied layouts. [docx] Improved list hierarchy detection. [docx] Resolved a page count issue on macOS due to special treatment of the Helvetica font. [docx] Fixed an issue causing a false links to be detected. [docx] Resolved an issue preventing the detection of a page number in the footer for specific layout styles. [docx] More consistent footer detection in the presence of edge cases. [docx] Better detection of inline small graphic groups. [docx] Improved detection of headers and footers located unusually far from the page edge. [docx] Improved detection of underline style for descending letters g, p and y. [docx] Improved detection of different odd and even headers and footers. [docx] Reduced false detections of section title body content as headers. [docx] Improved detection of headers when watermark graphics cross the header content. [docx] Improved detection of borderless tables. Version 10.4.0 - September 13th, 2023 See the 10.4.0 changelog on apryse.com ## New In This Release ### Version 10.4 is primarily a bugfix release. ### New Options Added an option for PDF/A-1 conversion to enable flattening of transparency and to control the flattening resolution. (PDFAOptions.SetFlattenTransparency(), PDFAOptions.SetDPI() and PDFACompliance constructor with PDFAOptions argument) ## Changed Behaviour: PDFDoc.flattenAnnotations() on Java with no parameters will now flatten all annotations rather than just form fields. This behaviour should now match other languages. ## Improvements: [ocr] IRIS OCR module is now available for MacOS. [html] Fixed an issue where temporary files could be left over after HTML2PDF conversion within an AWS lambda. [xfdf] Added support for Widget annotations in the version of PDFDoc.FDFExtract() that takes a list of annotations. [pdf] Adjusted rendering to better handle corrupt OCG entries, by skipping them rather than throwing an exception. [pdf] Added support for retaining separations used within tiling patterns during rendering. [pdf] Adjusted Filter.SetStreamData() to work in Python, PHP and Ruby. [pdf] Added support for detecting invalid stream lengths, which allows the SDK to repair more streams. On certain corrupt files this can lead to displaying more page content. ## Bugfixes: [.net] Fixed an issue where ByteRange GetStartOffset() and GetEndOffset() would throws exceptions on .Net Core/Standard/5/6. [pdf] Fixed issues in Flattener that could lead to unused graphics state items like ColorSpaces and Patterns being included only in the content stream. This could lead to errors when viewing these files in certain viewers. [pdf] Fixed some minor issues in calculation of the TextSearch ambient string. [xfdf] Fixed issues caused by empty field names in XFDF export. These are now excluded in line with other PDF consumers. [cad] Added support for transparent elements in DGN to PDF conversion. [pdfa] Fixed issue with PDF/A-1 conversion where, in rare situations, adjustments to transparent text could impact subsequent text. [xod] Fixed an issue where bookmarks with no action could be skipped in ToXod conversion. [pdf] Fixed issues with handling of Type3 fonts in PDF/A-1 conversion. [pdf] Fixed an issue with appearance creation of freetext callout annotations where the rectangle size would be incorrect in specific cases. [java] Fixed issue with PDFDoc.flattenAnnotations() on Java where the version with no parameters would flatten only form fields. This was not the intended behaviour and different than all other languages. ## Office Fidelity: [docx] Improved handling of continuous section breaks in Word documents with varying page sizes. [xls] Added Excel table style support for XLS format. [xlsx] Implemented ADDRESS, PERCENTILE, PERCENTILE.EXC, and PERCENTILE.INC Excel functions. [ppt] Resolved issues in PPT to PDF conversion ensuring correct text size, color, position, and bullet list display. [office] Improved handling of improperly formatted list levels in OOXML documents. [ppt] Added support for images with the color change effect in PPT documents. [ppt] Corrected an issue causing missing text during PPT conversions. [docx] Enhanced template filling for markdown within tables, ensuring styles like bold, italic, and color are retained as intended. [docx] Introduced SVG image support in office documents, enhancing templating capabilities. [docx] Fixed a rare issue with missing hyperlinks in Word documents. [docx] Implemented handling of repeating sections in Structured Document Tags, ensuring accurate data binding and content retrieval for varying table row scenarios. [docx] Fixed a potential crash in Word field processing. [docx] Added support for Word documents containing multiple headers of the same type in a single section. [docx] Resolved a template issue causing a crash in nested loops. [docx] Corrected a bug affecting template table styling where certain borders were incorrectly overridden. [xlsx] Fixed an issue with incorrect cell background color by accurately recognizing and applying the "System Background" color. [pptx] Resolved an issue in OOXML where placeholders with a specific index were incorrectly mapped. [docx] Fixed an issue with application of a column break on a page with a single column. [office] Added support for individual data label colors in charts. [pptx] Enhanced appearance of elements with pattern fill by using the pattern color as a foreground color. [office] Disabled image interpolation in the output PDF to match MS Office behavior. [docx] Added an equal(a, b) function to the template language for better string and boolean comparisons. [docx] Integrated string literals into the template language, recognizable by ' or ". [xlsx] Expanded font resource document support to include Excel, complementing its existing compatibility with Word and PowerPoint. ## PDF to Office Fidelity: ### Fixes and improvements for the Structured Output Module [docx] Fixed an issue causing an unnecessary table row merge. [docx] Fixed an issue preventing conversion on unix-based systems for files with long file paths. [docx] Improved scanned page detection to adjust when OCR is enabled. [docx] Fixed an issue interfering with the character placement of certain type 3 font characters. [html] Fixed an issue stopping a bold font style from being applied. [office] Enabled the loading of the freetype cmap table to ensure correct character detection. [html] Fixed an issue resulting in the loss of the background color of a textbox. [docx] Resolved an issue resulting in inconsistent OCR of similar scanned pages. [docx] Fixed an issue disrupting the font style assigned to a list indent. [pptx] Fixed unnecessary slide rotation. [docx] Improved bordered table detection of scanned documents. [docx] Improved header detection. [docx] Resolved an issue preventing conversion of a specific pdf on macOS only. [office] Enabled support for relative path file links in conversion output. [docx] Fixed a memory leak. [docx] Improved detection of underline style when the graphic line partially crosses a character. [docx] Resolved an issue causing a conversion error on certain Windows 7 machines. [docx] Improved header detection when the body contains a repeated table header. [html] Improved text placement in text boxes. [docx] Resolved an issue resulting in the last character in a text box being clipped. [pptx] Improved missing slide auto-rotation. [docx] Improved detection of hyperlinks. [docx] Improved borderless table detection. [docx] Improved footer detection. Version 10.3.0 - Aug 2nd, 2023 See the 10.3.0 changelog on apryse.com ## New In This Release ### Version 10.3 is primarily a bugfix release. ### New Options Added an option to set password to convert encrypted Office documents to PDF. (OfficeToPDFOptions.SetPassword()) Added ability to specify a custom font family for Markdown conversion. (MarkdownToPDFOptions.SetFontFace()) Added an option which can be used to specify additional languages for the OCR process in PDF to Office conversion. (OfficeOutputOptions.SetCustomOCRLanguage()) Added an option which can set the value of a specific header in HTTP requests used by the HTML2PDF module. (HTML2PDF.SetCustomHeader()) ## Changed Behaviour: Disabled OLE support in Windows CAD to PDF conversion. This was change was made for security reasons. ## Improvements: [cad] Updated CAD module binaries to use ODA version 24.6. [cad] Added support for loading external .shx fonts during CAD conversion. [all] Greatly improved error messaging for Consumption Licensing to make them clearer and include timestamps. In particular this includes improvements for exception messages and the messages sent to the callback passed to PDFNet.SetConnectionErrorProc(). [java] Changed all Java classes which own native memory to implement Autocloseable so they can be used in try-with-resources. [image] Improved error handling for the Advanced Imaging Module. [xfdf] Avoid throwing exception on invalid name/number trees or destinations during XFDF export. [xfdf] Avoid throwing exception on invalid annotations with no bbox values in XFDF export. [.net] Added missing OCROptions.SetIgnoreExistingText() option to .Net Core/Standard/5/6. [pdf] Added repair logic for corrupt files that have missing endobj commands to better match other pdf processors. [pdf] Added support for CJK languages in the IRIS OCR module. [pdf] Improved support for repairing corrupt PDF files with very large object numbers. ## Bugfixes: [java] Fixed DataExtractionModule.extractData() so that it accepts DataExtractionOptions rather than ConversionOptions. [.net] Fixed an issue where copy pasting annotations in PDFViewWPF could lead to incorrectly oriented annotations on files that have rotated pages. [pdf] Fixed a memory leak in TextExtractor that could become noticeable when searching for something with a large number of results. [xps] Fixed issue with handling of empty clipping paths in PDF to XPS conversion. In PDF these are expected to be ignored, but previously they were applied during the conversion. [xfdf] Fixed issue with XFDF importing stamps with non-standard rotation and missing webviewer custom metadata, where the rotation would not be maintained. [svg] Fixed problem where clipping text could lead to missing content after converting PDF to SVG. [pdf] Fixed an issue with decrypting a very uncommon kind of encrypted PDF file. [pdf] Fixed a potential crash when initializing a rare type of corrupt PDF with very badly formed field hierarchy structure. [pdf] Fixed an infinite loop that would occur on corrupt files with a cycle in the Field hierarchy. [pdf] Fixed an issue with stamper where rotated watermarks with center or right alignment could be misplaced. [cad] Adjusted logic to avoid unnecessary downsampling of images during CAD conversion. [cad] Fixed an issue where certain RVT/RFA files would fail to convert on Windows Server 2019. ## Office Fidelity: [xlsx] Fixed a bug where chart data wasn't correctly populated from hidden Excel sheets. [office] Enhanced text display by adjusting the size and positioning of special characters, like those with accents. [xlsx] Introduced support for checkbox controls in Excel documents. [docx] Fixed an issue with incorrect position of floating elements in table cells with centered vertical alignment. [docx] Updated table formatting to accommodate larger content, such as inline pictures, in fixed height rows. [office] Resolved a memory leak issue in API methods returning PDFDoc objects. [office] Corrected a bug that was causing incorrect file type identification in certain scenarios. [xlsx] Implemented lazy resolution of Excel defined names. This improvement enhances performance and circumvents potential issues with unused defined names. [office] Fixed an issue with missing text outlines. [docx] Fixed an issue with incorrect alignment of floating elements inside header or footer. [docx] Implemented support for vertical centering of page content. [docx] Implemented support to address issues with nested structured document tags (SDT) in documents. [docx] Fixed an issue with paragraph indentation, ensuring 'first line' and 'hanging' indents no longer overlap. [docx] Resolved an issue that could cause infinite layout loops in floating tables by improving content placement tracking. [office] Implemented decryption of password-protected office files (including the binary formats). [docx] Fixed an issue that missing drawings in specific cases. [docx] Fixed an issue with default font settings in DrawingsML (DML) elements in Word documents. [office] Fixed an issue related to shape clipping in documents, improving the display and consistency of text box content. [docx] Resolved positioning issues in combinations of charts and floating elements. [office] Improved positioning of elements inside charts. [office] Adjusted chart data handling to ignore 'ptCount' for chart caches, aligning output closer to MS Office standards. [docx] Fixed an issue with positioning floating elements outside of the page's content area. [office] Corrected multiple chart layout issues, including special handling for scatter charts with a category axis, fixing axis titles for rotated charts, and improved label placement in scatter charts. [pptx] Implemented support for rotated content inside table cells in PowerPoint. [xlsx] Fixed an issue with missing OLE objects in Excel documents. [office] Avoided throwing an exception for points outside plot area. [docx] Fixed incorrect handling of out-of-range tabs in compatibility mode. [office] Revised text border rendering to improve visibility and positioning within a text box. [pptx] Addressed issues with rendering of empty text runs with background and borders. [office] Addressed underlining and highlighting of trailing spaces and tabs in OOXML documents. [office] Corrected the coordinates of bitmaps drawn with META_STRETCH_DIBITS within WMF images. [office] Ensured that the complex script font size, set in the paragraph style, is applied to right-to-left text runs. [docx] Corrected the behavior of exact height lines containing in-line pictures. [docx] Handled a special case of a page break inside an otherwise empty list paragraph. [xlsx] Introduced the ability to apply arbitrary rotation to Excel text elements. [office] Implemented optimization for box fonts that substantially reduces the font library size. Version 10.2.0 - June 21st, 2023 See the 10.2.0 changelog on apryse.com ## New In This Release ## New Features: ### New Document Layout Features: Added support for table creation, allowing for organized presentation of information. Added simple API for list creation, with support for unordered and ordered lists with arbitrary nesting. The FlowDocument structure is now fully iterable, for ease of modification. The document layout engine remains in the beta state. While the available features are fully functional and can be used in a production environment, we may make slight changes to the API going forward. ### PDF/A-4 Validation and Conversion Added support for PDF/A-4, PDF/A-4E and PDF/A-4F validation and conversion as part of PDFACompliance. (Conformance enum values e_Level4, e_Level4E and e_Level4F) New PDFACompliance.ErrorCode enum values specific to PDF/A-4 were added. ### Text Diff Style Comparison An option was added which would enable detection of style differences font, size, bold, italic and text color. (TextDiffOptions.SetCompareStyles()) ## Changed Behaviour: The Java SDK now requires at least Java 1.7. (JDK and JRE 7) ## Improvements: [ocr] Significantly improved error handling for the OCR modules to help with diagnosis of common errors. [image] Significantly improved error messages for the Advanced Imaging Module module to help with diagnosis of common errors. [pdf] Improved error messaging for Form Detection as part of the Data Extraction Module. [pdf] Dict.Erase() will now throw an exception if the iterator parameter is invalid. Previously this situation could cause a crash. [java] PDFDoc now implements AutoCloseable which allows it to be used within a try-with-resources block. [xfdf] Avoid throwing an exception when exporting XFDF from certain corrupt documents. [pdf] Avoid throwing an exception when importing pages from corrupt documents with invalid Fields. [node.js] Worked around an unexpected stack overflow that could occur when importing the sass module in Node.js, but did not seem to otherwise. [pdf] Improved path hinting support for PDF files which use small rectangles instead of lines. This will help ensure they show up even at lower resolutions. ## Bugfixes: [pdf] Fixed redaction issue on Type3 fonts with invalid metrics. This is important for specific types of documents as it was possible for this type of text to not be redacted even when the visual portion of the glyph was covered. [pdf] Addressed problems in PDF text diff handling text content that changed order, by limiting logical moves to those that move around fixed content and across pages. [node.js] Fixed errors in RefreshOptions implementation for Node.js. [pdf] Improved accuracy of OCR coordinates. Previously they could be a little offset from the visible position in the image. [pdf] Fixed a stack overflow in TextExtractor.GetAsText that could occur on very complex documents. [pdf] Fixed potential memory blowup when using Optimizer on documents with a large number of pages. [node.js] Fixed a memory leak in TextExtractor.getHighlights() on Node.js. [xfdf] Fixed an issue where IRT replies pointing to Annotations that do not have an NM entry would not be properly connected when importing XFDF. [xfdf] Fixed an issue where, in rare cases, IRT links could be broken during PDFDoc.FDFUpdate, leading to orphaned replies. [pdf] Fixed an issue with fetching Outlines when using PDFViewCtrl.OpenURLAsync(), where if the minimal download option was used outlines would not be retrieved. [pdf] Fixed an issue with fetching Outlines when using PDFViewCtrl.OpenURLAsync(), where it was possible for a UI update event for the Outline to be skipped. [pdf] Fixed a PDF rendering issue where Transfer functions in the ColorSpace would not be utilized when rendering images. [pdf] Fixed a FreeText rich-text generation issue where the justification could be incorrect for right-to-left text. [pdf] Fixed an issue with rendering inline images with IM set to false and BPC other than 1. [pdf] Fixed an issue where, with viewer cache disabled, running Optimizer on certain PDF files could lead to corrupt output. ## Office Fidelity: [docx] Implemented support for conditional fields in Word documents. Previously, we would always use the cached content. [docx] Addressed a rare issue causing some frames to display wider than necessary. [office] Corrected a color issue visible in some Adobe Acrobat Reader for PDFs converted from office documents. Previously, RGB colors could be mistakenly interpreted as CMYK. Now, all colors will display accurately as intended. [templates] Fixed a bug in template preparation where template nodes were placed incorrectly in certain scenarios, such as when there are non-text elements between text runs. This ensures a smoother document generation with templates. [templates] Fixed an issue with incorrect handling of column break hints during template filling. [docx] Corrected an issue with the default color for table borders. If no color is specifically set for a border but the border style is active, the border will now correctly display as black. [xlsx] Implement the LOWER Excel function. [office] Corrected an issue where grid lines were missing in radar charts. Now, regardless of the axis visibility, the grid lines will consistently display as intended. [docx] Resolved a problem with image spacing in lines with small line height multipliers. Images will now adjust their height proportionally to ensure proper alignment with the text. [ppt] Significantly improved handling of theme overrides in binary PowerPoint (ppt) files. [xlsx] Fixed checkbox alignment issues in Excel documents. [pptx] Improved color accuracy for SVG images in PowerPoint. We now extract theme replacement colors from the SVG file and apply them to the corresponding PNG, ensuring the images display with the correct colors. [docx] Made several improvements to line height calculations for a more accurate and consistent document layout, including better handling of newline spacing and ensuring style consistency across elements. [docx] Fixed an issue where footnotes did not include appropriate padding in their height, leading to more accurately sized footnotes in the final document. [xlsx] Implemented support for reading subscript and superscript formatting options from Excel documents. [xlsx] Implemented basic display functionality for combo box and drop down list controls. Now, you'll be able to see the selected value on a white background in your documents. [xlsx] Resolved an issue related to applying gradient cell backgrounds in Excel documents. [docx] Enhanced table row properties reading from document styles. [office] Added support for named colors in Word files, allowing the use of descriptive color names. [office] Added support for the wave underline style. [office] Fixed a rare crash related to handling certain monochrome Windows bitmap files embedded in WMF images. [docx] Implemented the ability to break text within words when positioned alongside square-wrapped objects. [office] Improved handling of complex transformations in shape groups, ensuring accurate rendering of rotated and flipped shapes, as well as correctly transformed text and pictures within the groups. [office] Improved handling of charts with incorrect cached data. [docx] Resolved issues with incorrect text styles within table of contents entries. [xlsx] Fixed a potential crash happening when converting extremely long Excel sheets. [docx] Added handling of customXmlDelRangeStart and customXmlDelRangeEnd elements to improve data substitution in structured document tags. [docx] Added DisplayHiddenText option to OfficeToPDFOptions. This new option provides the ability to display hidden text within the document (i.e. the text marked as 'Hidden' in the font style). [office] Improved font substitution for EMF files by introducing the ability to force bold font rendering [office] Resolved the issue related to dash lines being drawn instead of solid lines on some shapes. [office] Fixed an issue with incorrect scaling of rotated text in EMF images. [office] Corrected text spacing for small caps text style. Version 10.1.0 - May 10th, 2023 See the 10.1.0 changelog on apryse.com ## New In This Release ### Version 10.1 is primarily a bugfix release. ### New Options Added an option to adjust the order in which pages are displayed after CAD to PDF conversion. (CADConvertOptions.SetLayoutSortOrder()) Added support for custom font mappings in CAD to PDF conversion. (refer to https://docs.apryse.com/documentation/core/guides/features/conversion/convert-cad-to-pdf/#fonts for details) Added an option to output a log file for HTML to PDF conversion. (HTML2PDF.SetLogFilePath()) Added an option to set a preferred OCR engine for PDF to Office conversion. (WordOutputOptions.SetPreferredOCREngine(), ExcelOutputOptions.SetPreferredOCREngine(), PowerPointOutputOptions.SetPreferredOCREngine()) ## Changed Behaviour: .Net 4 builds now depend on the Visual Studio 2015-2022 redistributable instead of the Visual Studio 2013 redistributable. Captions on line annotations will now be black by default and otherwise will use the color of the RC entry. Previously this text would be created using the same color as the line. Page manipulation operations and ElementWriter.Begin() are now part of the Base consumption licensing package. Adjusted the resolution of floating point numbers in XFDF export to 0.0001. Previously these numbers were emitted with a fixed number of significant digits, which could result in varying precision, depending on the size of the number. HTML2PDF.Convert() will now always throw an exception rather than return false if there is an error. Previously this behaviour was inconsistent. (Version 10.1.1 Hotfix) HTML2PDF.GetLog() will now return the contents of the log file produced by the module rather than a short error message. This shorter message will be included as part of the exception. (Version 10.1.1 Hotfix) ## Improvements: [cad] Significantly improved error handling for the CAD module to help with diagnosis of common errors. [html] Significantly improved error messages for the HTML2PDF module to help with diagnosis of common errors. [pdf] Significantly improved error handling for the DataExtraction module to help with diagnosis of common errors. [all] General error handling improvements for all modules. This includes better reporting of missing permissions and missing dependencies for the module. [windows] Increased the maximum number of concurrent file handles used by the library from 2048 to 8192. This increases the number of possible concurrent PDFDoc instances from approximately 1000 to 4000. [image] Multiple open source dependencies were updated for the Advanced Imaging Module. [html] Increased the resolution of output css data to three decimal places to make the PDF to Fixed HTML/Epub output more accurate. Simultaneously unnecessary trailing zeroes were discarded. [ocr] Reduced internal serialization when using the OCR Module: it can now be utilized from concurrent threads more effectively. [.net] Exposed Font.CreateCIDTrueTypeFont that takes System.Drawing.Font to Windows .Net Core/Standard/5/6. [all] Addressed a number of minor static analysis issues. [pdf] Improved appearance generation of measurement lines to better match other PDF consumers. [pdf] Improved appearance generation of line and polyline annotations with line endings to better match other PDF consumers. [.net] Added PDFNetException.GetFullMessage() to .Net4 and PDFNetException.GetMessageOnly() to all versions of .Net. These are recommended over usage of PDFNetException.GetMessage which differs in behaviour between .Net4 and other versions of .Net. [.net] Added PDFDoc.SaveViewerOptimized that returns a byte[] to .Net Core/Standard/5/6. [html] Reduced HTML2PDF module size on all platforms by up to 30%. [html] Errors such as HTML parsing errors are no longer considered fatal for HTML to PDF conversion. In these cases it will still attempt to produce a result. [html] The HTML2PDF module will now detect if it is in an environment where it needs to run without a sandbox and do this automatically. This helps avoid some cases that would error such as using the sandbox in a Windows container environment or when running Linux as root. [html] Significantly reduced HTML to PDF conversion times in most cases. [xfdf] Improve XFDF Export to avoid throwing an exception on corrupt PDF annotations with non-dictionary Popup entries. ## Bugfixes: [pdf] Fixed an issue with PDF rendering and hinting enabled where some lines could disappear at lower resolutions. [image] Suppressed warnings that could occur when processing corrupt PNG files. [pdf] Adjusted the vertical text position in text widgets to better match other PDF consumers. In particular this addresses an issue where the text could be significantly cut off when the text is just slightly taller than the form field. [xfdf] Fixed an issue where Filters specified as an array would not be written in XFDF Fileattachment output, which could prevent applications from loading their data. [.net] Fixed an issue with HTML2PDF.SetCompatibilityMode() for .Net Core/5/6 where it did not function properly. [xod] Fixed an issue with ToXps/ToXod conversion handling the combination of a GState and Image soft mask. This led to some elements being masked more than they should have been and in rare cases they could disappear entirely. [pdf] Fixed an issue where Type3 fonts that are specified as uncoloured would not ignore colours specified in the font. In the rare cases this occurred it could lead to the text colour being incorrect. [xfdf] Fixed a problem where XFDF export could try to write text/plain fileattachment data as raw binary. Now this data will be detected and written as hex. [xfdf] Fixed an issue importing rotated annotations using PDFDoc.MergeXFDF() on rotated pages where their rotation would be incorrect. [ocr] Added support for 90 degree rotated words in default OCR. [pdf] Fixed an issue with a rare encoding case for TrueType fonts which could lead to rendering the wrong glyphs. [pdf] Fixed a memory leak that could potentially occur in JPEG2000 parsing. [pdf] Fixed an issue with versions of FDFExtract that take a list of annotations where annotations missing the link back to the page would be skipped. [html] Fixed an issue with HTML to PDF conversion where URLs could not be escaped. This generally worked, but caused failures on specific URLs on ARM64 MacOS. [pdf] Fixed an issue with digital signature verification MDP support where changing a direct AP entry in a Field dictionary would cause a validation failure. [pdf] Fixed an issue where it was not possible to search or select certain empty Type3 fonts in OCRed documents. [pdf] Fixed an issue with decoding of Symbolic TrueType fonts that could lead to incorrect rendering. [.net] Fixed an issue where the .Net4 PrinterMode object would be cleared after usage leading to unexpected results if the object was reused. [cad] Fixed an issue where the page size could be incorrect after DWF to PDF conversion. [cad] Fixed an issue where GP4 external references could not be loaded in some cases during CAD to PDF conversion. [cad] Fixed an issue where certain CJK fonts could be mapped to an incorrect font by CAD to PDF conversion on Linux. [cad] Fixed an issue where there could be empty pages in the output PDF when the CAD file layout contains external references only and they are all missing. [cad] Fixed internal caching issue which resolved multiple CAD to PDF conversion problems. These included problems with missing annotations or lines and incorrect placement of text. ## Office Fidelity: [xlsx] Fixed an issue with incorrect chart title displayed when the title is a reference. [office] Implemented scalable delimiters for math equations, allowing certain brackets to expand to the full height of the equation they contain. [xlsx] Changed behavior of charts to no longer reference data from hidden columns and rows, which is the expected behavior. [xlsx] Modified behavior of chart legend to exclude scatter plot series with all hidden cells. [office] Modified behavior of chart series stacking so that only series of the same type (lines with lines, columns with columns, areas with areas, etc.) are stacked on top of each other. [office] Fixed an issue with bar charts displaying incorrect categories. The fix ensures that explicitly defined categories are no longer overridden. [office] Fixed multiple visual issues with scatter/column combination charts with double axes. [xlsx] Implemented support for checkbox controls in Excel. [office] Improved handling of embedded Multiple Master fonts. This change ensures that the correct font face is obtained from Multiple Master fonts. [office] Improved handling of display units for data labels on charts. [xlsx] Implemented support for group box, label and radio button controls in Excel. [docx] Improved reading table properties from non-Word-created .docx documents. [office] Fixed incorrect default date format for charts. [office] Fixed an issue with the drawing of lines in charts with a time axis. The fix ensures that the values on the time axis, which are not necessarily evenly spaced, are plotted correctly. [office] Improved handling of date chart axis labels. This change ensures that the time axis labels are displayed with regular intervals. [office] Resolved issue with multilevel chart axis labels not being displayed accurately when using custom label intervals. [office] Restricted data label movement to fix an issue with chart data labels positioned outside of the chart area. [docx] Ensured lines have minimum height, fixing an issue with a line of text that only contained a thin, in-line shape. [office] Improved column placement in charts with skipped data entries, ensuring corresponding gaps between the non-skipped columns. [office] Fixed an issue with incorrect spacing in chart legends with manual layout. [docx] Added support for drop down list field for .docx documents. [docx] Implemented placement of section columns from right to left in right to left (RTL) sections. [office] Implemented support for alternative font names specified in font tables, improving font fallback functionality. [pptx] Improved chart data markers by applying proper gradient fill and fixing issues related to gradient positions and transformations. [office] Fixed an issue with incorrect colors in transparent and semi-transparent stacked area charts. [doc] Fixed incorrect reading of custom tab justification values from .doc files. [docx] Improved floating element position comparisons by adjusting the rounding for the scanline grid's precision. [docx] Improved center tab positioning calculation to better handle cases when the left indent is inside the left margin. [office] Enhanced list number justification with better support for right-justified and center-justified lists, improved handling of edge cases. [docx] Fixed handling of legacy numbering by properly reading legacy properties and adjusting tab stops accordingly. [docx] Fixed incorrect alignment of vertical text in table cells. [pptx] Prevented divide by zero error by checking for zero size text when creating chart labels. [doc] Implemented support for drop down list elements in DOC format. [docx] Fixed a bug where content in table cells below an empty row was not displayed due to incorrect propagation of the "empty row" flag. [office] Added reading of correct preset geometry for shapes from binary documents. This improves visual appearance of some shapes. [docx] Resolved an issue occurring in specific cases where empty paragraphs at the end of table cells were not properly removed after a nested table. [office] Added reading of anchor positions enclosed in AlternateContent elements. [docx] Improved handling of <p> elements within <tbl> in specific cases, even though it's disallowed by OOXML schema but supported by Word. [docx] Extended header rows to include the current row when performing vertical merging with a cell in a header row. [docx] Fixed an issue with unexpected transparency applied to paragraph borders in rare cases. [office] Added handling of META_DIB_BIT_BLT records in WMF images. [office] Added support for an alternate combinations of masked bitmaps in WMF images. [office] Fixed a palette size calculation issue for 1/2/4/8 bit BMPs, which was causing unexpected color distortion in some images. [office] Improved handling of 1-bit BMP images with width not divisible by 8, which were not previously supported. [office] Added support of dashed and dotted text underlines. [docx] Fixed an issue where date formats were not being applied in Word templates. [Layout] Fixed a bug where an empty vector could cause a crash. [docx] Fixed an issue where bookmarks caused an extra page break in some documents. [docx] Fixed an issue where multilevel lists had incorrect numbering due to different start overrides provided for lists of different levels. [docx] Fixed an issue where inline pictures in tables were being clipped when the line height was set to exact. [docx] Improved paragraph breaking with a new algorithm that considers "Keep lines together", "Keep with next", and "Widow/Orphan control" options. ## Version 10.1.1 Hotfix (May 24, 2024) [html] The HTML2PDF Module was updated. Note that an update to the new version is required due to error handling changes in Apryse SDK. [html] Removed a couple of cases where HTML2PDF would still return false rather than throw an exception. [html] Adjusted logging to write directly to file, which is more performant and allows for better separation of exception messages from log data. [.net] Fixed a problem where .Net4 was still dependent on the VS2013 distributable. [office] Fixed multiple potential crashes related to XLS files conversion and EMF image handling. Version 10.0.0 - March 29th, 2023 See the 10.0.0 changelog on apryse.com ## New In This Release ### Version 10.0 With version 10.0, Apryse SDK now shares a version number with WebViewer, and the two products will now be kept in sync. Previously the core WebViewer engine could lag behind the SDK release by some time. Going forward that will no longer be the case, and bugfixes in this changelog will be in WebViewer as well (where applicable). Future releases will also come at a quicker cadence, with a new official release every 6 weeks. ### Document Layout Engine (BETA) Construct reflowable text content in the style of your choosing using the new FlowDocument class. Text will wrap automatically within the allowed bounds, and will flow onto subsequent pages. Many more features on the way: tables, lists, sections, column layout, advanced typographic features, .etc. While we do not anticipate any major changes, be aware that this is a beta API, and there may be some minor breaking changes to the interface in subsequent releases. ### Text Diff Additions Added an option to text diff which can remove placeholders that show where content was inserted into or removed from the other document. (TextDiffOptions.SetShowPlaceHolders()) Added options to text diff to allow for highlighting short-distance moves and adjusting the appearance of these highlights. (TextDiffOptions.SetExtraMoveHighlight(), TextDiffOptions.SetExtraMoveColor(), TextDiffOptions.SetExtraMoveOpacity()) ### Other Changes Added new option for HTML to PDF Conversion to allow it to work in environments with limited platform dependencies, such as AWS Lambda. (HTML2PDF.SetCompatibilityMode()) Note that this option uses altered graphics options and does not create a dedicated render process, which may lead to some performance degradation. Added an option to disable all external fetches during markdown conversions. (ConversionOptions.SetEnableExternalMediaDownloads()) ## Improvements: [all] Adjusted the SDK on Arm64 Linux to use more compatible versions of GLIBC functions. This allows it to work on more Linux distributions including Amazon Linux 2. [svg] When converting SVG to PDF hyperlinks in SVG are now converted to Link annotations. [pdf] Changing horizontal or vertical line shaped filled paths into stroked paths so they can be hinted and more closely match rendering of other PDF consumers. [pdf] Significant improvement to the appearance of annotation line endings so they better match other PDF consumers. [pdf] Improved a number of complex text diff use cases to be more intuitive. [pdf] Major improvements to text comparison memory usage on documents with a large number of pages or text per page. [all] Addressed a number of minor static analysis reports. [cad] Added support for loading .rsc font files to use during cad to pdf conversion. These can be loaded from the same path as the input Cad file or by adding them to the resource path using PDFNet.SetResourcePath(). [pdf] Avoid throwing exception on Annot.Flatten() if the widget annotation has an AP entry even if it is missing the required FT entry. Previously these corrupt annotations could fail to flatten. [xfdf] When exporting XFDF ignore corrupt Contents entries that are not of type String. Previously this would cause an exception to be thrown. [xfdf] Adjusted XFDFExport to provide a font string from DA even if this font cannot be found in the document. ## Bugfixes: [xfdf] Fixed a crash that could occur on Measure dictionaries with missing ViewPort when exporting XFDF. [html] Fixed a problem with html to pdf conversion where, on some documents, lines of text very close to the edge of a page could be cut off. [emf] Fixed an issue where pages rotated 90 or 270 degrees would have incorrect dimensions in Convert.ToEmf(). [pdf] In PDF rendering empty clipping paths are now skipped. Previously any content affected by this rare type of clipping path would not be rendered. [pdf] Fixed an issue with PDF rendering that could cause artifacts such as lines that appear and disappear at different resolutions. [pdf] Fixed an issue where a specific optimization for drawing bevel or round join in some situations could lead to unexpected long "zinger" lines. [pdf] Fixed an issue where empty intermediate nodes in the Page tree with Resources could be detected as leaf nodes. When these nodes had a page size it could lead to displaying some pages with the wrong size. [pdf] Fixed a crash in PDFDoc.AppendTextDiff when handling documents with no text. [txt] Fixed an issue where converting txt to PDF and saving with e_incremental would end up with an invalid file. [image] Fixed the CMYK option for PDF to Tiff conversion. (TiffOutputOptions.SetCMYK()) Previously this option would be ignored. [pdf] Digital Signature Validation now allows OCSP responses if revocation time is after reference time if the status was superseded. Previously these documents would fail to validate, which mismatches with other PDF consumers. [pdf] Fixed a crash that could occur when using linearized save on specific corrupt documents if the document was edited in specific ways. [pdf] Fixed an out of bounds crash that could occur in rare cases during text comparison. [pdf] Fixed a problem with ContentReplacer where on Arm versions of the SDK it would ignore calls to SetMatchStrings and continue using [ and ] delimiters. [node] Fixed an issue with the wrapper for Highlights.GetCurrentTextRange() which made it not function in Node.js. [cad] Fixed an issue where missing external references in DGN could cause CAD -> PDF conversion to fail. ## Office Fidelity: [office] Added implementation of N-ary OMath operators. [office] Added implementation of Matrix and EquationArray OMath elements. [office] Adjusted the origins of gradients for bar charts. [docx] Fixed an issue with the "keep with next" flag not being applied to tables with repeating headers. [office] Simplified and improved the algorithm used for building and rendering oMath equations. [office] Fixed an issue with custom glyph positions in WMF images. [office] Added support for multi-layer category labels in charts. [docx] Resolved an issue where multiline SDT data bindings were displayed as a single line. [office] Corrected asymmetrical vertical alignment of the horizontal chart axis. [office] Fixed an issue with clipped chart data markers. [docx] Resolved an issue with nested SDT nodes within parent SDT content. [office] Implemented detection of Office file types using their content, rather than relying on file extensions. [docx] Corrected the text styles of structured document tags. [office] Enhanced office file type determination code to recognize all formats, including macro-enabled and template formats. [office] Implemented proper handling of missing data points in scatter charts. [xlsx] Fixed an issue where extremely long numbers would appear as zeroes in Excel documents. [office] Fixed occasional incorrect appearance of dashed and dotted lines. [office] Implemented support for logarithmic scale in charts. [office] Fixed an issue where data markers could be incorrectly placed in charts with reversed axes. [office] Fixed a bug where the vertical axis crossing position in charts could be determined incorrectly. [office] Fixed an issue with missing chart borders when print area or page breaks are applied. [office] Fixed a problem that could sometimes result in missing chart data markers. [xlsx] Added support for "Center across selection" alignment in Excel. [xlsx] Enhanced performance for Excel documents containing extensive conditional formatting. [xlsx] Fixed an issue with applying the "color scale" conditional format in Excel documents. [docx] Corrected handling of an empty "between" paragraph border property. [office] Fixed a rare crash that could occur when performing text shaping with many threads under high contention. [office] Corrected scatter chart's min/max axis value calculation. [office] Fixed an issue with incorrect clipping in WMF images. [docx] Resolved shape positioning issues within nested tables in Word documents. [docx] Improved handling of blank data bindings in Word documents. [pptx] Fixed an issue with theme font resolution for PowerPoint documents. [office] Enhanced support for base64-encoded images within structured document tags. [docx] Added a fix for some spacing issues for footnote and endnote separators in Word documents. [pptx] Fixed a bug that could result in incorrect positioning for PowerPoint shapes with percentage-based coordinates. [docx] Fixed a bug that could lead to missing footnotes in Word documents. [docx] Corrected the handling of frame property inheritance in Word documents. [pptx] Resolved an issue with incorrect line heights for empty lines in PowerPoint presentations. [md] Fixed an error that would cause an exception to be thrown when using StreamingPDFConversion or UniversalConversion from a markdown Filter/stream. Version 9.5.0 - February 17th, 2023 See the 9.5.0 changelog on pdftron.com ## New Features: ### Data Extraction Module A collection of routines for intelligently extracting data from PDFs: infer document structure from document content, extract data in tabular form, and detect interactive regions on a page. Extract the underlying document structure in JSON form, yielding the position and content of paragraphs, tables and other structural elements. (DataExtractionModule.ExtractData(), using the e_DocStructure engine) Use the tabular extraction engine to accurately extract data from your document in the form of tables, producing output in either JSON or XLSX form. (DataExtractionModule.ExtractData(), DataExtractionModule.ExtractToXLSX()) The form extraction engine can be used to recognize interactive elements on a page visually, so that the correct associated PDF annotations can be created. (DataExtractionModule.ExtractData() using the e_Form engine) ### SVG to PDF Conversion Added new built-in conversion from SVG to PDF. (Convert.FromSVG() and as part of Convert.ToPdf()) ### Other Changes Added methods to configure the ambient string returned by TextSearch. (TextSearch.SetAmbientLettersBefore, TextSearch.SetAmbientLettersAfter, TextSearch.SetAmbientWordsBefore, TextSearch.SetAmbientWordsAfter) Added a method that can be used to set the opacity of a stamp annotation. (RubberStamp.SetOpacity()) ## Improvements: [node] Added support for Node 19 and Electron 20-22 to npm. [python] Added support for Python 3.11 to pip. [all] Added support for consumption licensing keys with expiry dates. [pdf] Exposed CreateHideField to Python, PHP, Ruby and Golang. [pdf] Addressed a number of non-critical static analysis issues. [pdf] Added support for corrupt PDF fonts that require, but don't have a widths entry. [.net] Exposed PDFDraw.Export(Filter) to .Net Core/Standard/5/6. [pdf] Added support for partial corruptions in compressed object streams that could previously lead to issues loading annotations or other objects. [pdf] Greatly reduced memory usage when importing PDF pages from a document with many OCG/Layer objects. [pdf] Improved support for ignoring garbage bytes when repairing corrupt documents. [xfdf] Added logic to allow for skipping invalid annotations that don't have a proper Rect entry to XFDF export. Previously an exception would be thrown. [node] Improved incorrect argument type error handling for a number of functions. [pdf] Adjusted IsFullSaveRequired to return true if the file was just redacted. [cad] Updated CAD module binaries to use ODA version 23.8_16. [cad] Included CAD module version information in the Producer section of the output PDF. ## Bugfixes: [image] Fixed a potential crash issue when encountering certain types of errors when loading JpegXR images. [office] Fixed a crash that could occur when converting using outlook interop. [pdf] Fixed an issue with nametree creation that would prevent creation of PDF Portfolios with more than 21 documents. [pdf] Fixed a potential crash when copy-contructing ObjectIdentifier. [pdf] Fixed out of bounds issues reported by static analysis that were unlikely to cause any issues in FreeText annotation handling, EMF conversion and CMYK rendering. [pdf] Fixed loading of FDF trust lists containing a single certificate for digital signature verification. [pdf] Fixed an issue with PDFView.LoadThumbAsync where, if annotation rendering is disabled, color postprocessing would be skipped. [.net] Fixed a problem with the TimestampingConfiguration constructor that could cause a crash in .Net4. [pdf] Added support for String FontName entries when subsetting fonts with Optimizer. Previously this corruption would cause an exception to be thrown. [cad] Fixed issue where there could be an empty output file after an error occurs during CAD -> PDF conversion. [xfdf] No longer output appearance references for direct annotations. This is mainly because the reference will always be incorrect and can lead to undesirable handling in WebViewer. [pdf] Fixed a crash that could occur during some TextDiff use cases. [node] Fixed a crash when using streaming conversion methods that take a filter as input. (e.g. PDFNet.Convert.createOfficeTemplateWithFilter) [pdf] Fixed an issue where image masks might not be redacted properly. [pdf] Fixed a crash that could occur when parsing files with null OCG entries in the content stream. [cad] Fixed an issue where an invalid layer in a CAD file could cause CAD -> PDF conversion to fail. [cad] Fixed an issue where off layers could become on after CAD -> PDF conversion. [cad] Fixed an issue where converting certain DGN files with ZoomToExtents(true) could lead to missing content in the output PDF. [cad] Fixed an issue where converting DGN files with external references could lead to incorrect colors in the output PDF. [cad] Fixed an issue where duplicate reference file names could lead to incorrect layers being displayed in the output PDF. [cad] Fixed an issue where frozen layers could lead to incorrect layers being included in the output PDF. [cad] Fixed an issue where converting DWF files with non-standard color palette could lead to incorrect colors in the output PDF. Note that this issue still remains if a custom background color is used. ## Office Fidelity: [wmf] Fixed multiple font issues in WMF image conversion. [xlsx] Fixed a bug with calculating formulas with multiple cell references. [xlsx] Fixed default text justification for cells with error values. [xlsx] Added proper handling of the duplicates rule for empty cells. [xlsx] Removed unnecessary application of column styles. [xlsx] Added support for reading table data from hidden sheets. [xlsx] Added implementation of the ISFORMULA, CONCATENATE, N, and EXACT Excel functions. [xlsx] Fixed issues with INDIRECT and ISERROR Excel functions. [xlsx] Fixed potential crash when using MATCH or MEDIAN Excel functions. [office] Updated Harfbuzz to version 2.3.0. [xlsx] Fixed multiple issues with the elapsed time formatting. [office] Added support of displaying row and column headings on each page in an Excel file. [xls] Added ability to open protected XLS files (encrypted with default password). [pptx] Fixed a bug with paragraph and text run properties inheritance. [xlsx] Fixed a bug with missing header images in Excel documents. [office] Fixed an issue with EMF files containing PDF backgrounds. [docx] Fixed an issue with alternative text for images in PDFs converted from Word. [docx] Fixed a bug with missing footnote text. [docx] Added support for doNotExpandShiftReturn compatibility option. [xlsx] Fixed a bug with skipping Excel sheets without text content. [pptx] Added support for theme font resolution for CS, EA and symbol font faces. [xls] Now support reading of alternate content drawings for Excel controls. [xls] Now set proper default pen and brush objects for EMF rendering. [office] Added support for alternative Excel page order when page breaks are applied. [docx] Added support for disabled orphan line placement. [docx] Implemented classification for symbol characters to improve font substitution. [docx] Fixed table row splitting with large images. [xlsx] Implement proper handling of `_xlfn` prefix of Excel functions. [docx] Fixed a bug with incorrectly positioned paragraph frames. [docx] Fixed the default header/footer margin value. [pptx] Fixed an issue with forcing bold and italic font faces for PowerPoint embedded fonts. [pptx] Fixed an issue with dropping the bold qualifier for extra bold fonts. [pptx] Added default border for PowerPoint tables without a table style. [docx] Fixed an issue with the drawing order of shapes in header and footer. [doc] Fixed issues with multi-encoding DOC documents. [docx] Fixed an issue with displaying invisible strokes. [pptx] Fixed an issue with EMF image scaling. [doc] Added support for floating tables nested in an inline table. [pptx] Fixed an issue with applying transformations to rotated shapes inside a group. [pptx] Fixed an issue with PowerPoint text rotation. [xlsx] Fixed multiple issues with formatting of fractional numbers. [xlsx] Fixed Excel cell clipping in RTL Excel sheets. [docx] Implemented decimal tab stops. [office] Fixed potential crashes caused by invalid PPT files. [xlsx] Added support of "shrinkToFit" attribute of Excel text alignment style. [office] Improved appearance of text underlines. [docx] Fixed a bug with tab stop past right indent. [xlsx] Now use the correct origin for references in Excel functions. [xlsx] Added forward and backward trend line projections for the missing chart values. [xlsx] Added support of "Show a zero in cells that have zero value" Excel option. [xlsx] Changed conditional formatting rules to be case insensitive. [office] Fixed a missing header in Excel documents. [xlsx] Implemented proper combining of manual and automatic Excel page breaks. [xlsx] Fixed too large Excel page margins. [xlsx] Implemented proper scaling of Excel sheets with page breaking enabled. [office] Added proper Excel page clipping when page breaks are applied. [office] Fixed an issue with missing charts when Excel page breaks are applied. [office] Removed Excel page content size limit when page breaks are applied. [office] Fixed multiple issues with Excel headers and footers. [xlsx] Fixed an issue where incorrect page orientation was used when SetApplyPageBreaksToSheet option is set. [docx] Added ability for footnotes to span multiple pages if necessary. [office] Improved the dotted border dash pattern to better match Word. [xlsx] Fixed a crash that could occur when requesting a non-embedded images from a drawing without relationships. [xlsx] Implemented the Excel feature where numbers that cannot fit into cells are replaced with '#' signs. [xlsx] Added support for Excel accounting underlines. [xlsx] Added proper support for the asterisk ('*') format code. [xlsx] Implemented proper handling of tabs in Excel cells (all tabs are printed as two spaces). [docx] Implemented an option to hide total page numbers in Word documents. [xlsx] Fixed an issue with conditional formatting formulas containing Excel error values. [xls] Fixed a crash related to Excel page breaking. [xlsx] Added support for mixed text and images in Excel headers/footers. [xlsx] Added processing of date and file name header/footer parts. [xlsx] Added support for the "Center on page" Excel print options. ## PDF-to-office Conversion: [docx] Fixed converter deadlock that could occur certain corrupt input files. [docx] Fixed a potential crash on Linux systems caused by a corrupt input. [docx] Fixed an issue with inconsistent page headers. [docx] Fixed a bug which could cause cause additional unwanted shapes to be rendered. [docx] Fixed an issue where the engine could unexpectdly fail during content detection. [docx] Fixed an annotation bug that could lead to conversion failure. [docx] Fixed a bug causing portion of graphic to be removed. [docx] Fixed an issue where empty table columns could be produced. [docx] Fixed a potential memory leak that could occur when processing type3 shader. [xlsx] Fixed a bug causing corrupt xlsx output on particular input files. [docx] Improved table detection, table border styles, rendering of contents and division into columns. [docx] Improved non standard encoding detection. [docx] Improved picture placement in the output document. [docx] Improved conversion of annotations and comments. [docx] Fixed bookmark/outline structure detection in Table of Contents. [docx] Fixed a bug causing inconsistent strikethrough styling color in output. [docx] Improved handling of graphic groups when located inside table cells. [docx] Fixed a bug where we failed to recognize some bold text. [docx] Fixed an issue with text location in relation to horizontal lines. [docx] Fixed character spacing of Thai language. [docx] Improved detection and distinction between textbox and background regions. [docx] Upgraded handling of column detection. [docx] Fixed an issue with counting of hyperlinks on pictures and on other graphic objects within groups. [docx] Fixed line positioning in the case of Inline Wrapping and DrawingObject type. [docx] Upgraded list detection routines. [docx] Fixed a bug preventing a dashed border around annotation textbox. [docx] Fixed a bug preventing fill color of text box. [docx] Fixed a bug preventing an image being correctly rendered on a black background. [docx] Improved the z order detection of images. [docx] Fixed a bug eliminating the shadow from rotated quotation mark. [docx] Fixed a bug rendering white text as black text . [docx] Fixed a bug converting underlined text to normal text with a line shape. [xlsx] Improved conversion of background gradient colors. [pptx] Fixed a bug that could result in rendering too many spaces between characters. [docx] Improved the placement of graphic groups inside cells. [docx] Improved handling of situations where text is placed on top of images. [docx] Fixed a bug with the positioning of rotated textboxes when placed as OOXML Drawing Objects. [docx] Improved the placement of text within the page page border. Version 9.4.2 - December 19th, 2022 See the 9.4.2 changelog on pdftron.com ## Changed Behaviour: Certain FDFDoc methods (FDFDoc.Save(), FDFDoc.GetTrailer(), FDFDoc.GetRoot(), FDFDoc.GetSDFDoc() can now cause the FDF file to be counted as a document for consumption-based licensing. This will apply at most once per FDF document and will not if the document was created through PDFDoc.FDFExtract(). CADConvertOptions.SetBackgroundColor() red and blue components have been flipped to match the documentation. Essentially, the colour is now RGB as one would expect rather than BGR as it was previously. ## Improvements: [xml] Applying the fix in Expat 2.5.0 to address CVE-2022-43680. [pdf] Adjusted PDF content stream parsing to be more tolerant of errors in the Tc operator. [pdf] Allow directly trusting a certificate that has not been self-signed for digital signature verification. [pdf] Avoid throwing an exception during linearized save on a particular type of corrupt document with gaps in the XRef table. [xfdf] Adjusted xfdf export to generate missing ids when exporting a command file with deletions. [tiff] Added support for multipage tiffs with missing pages in Convert.FromTiff. [all] Made a few smaller adjustments to consumption licensing data collection to ensure correct document counts even in unusual use-cases. ## Bugfixes: [fonts] Added a mitigation for Win32 font enumeration occasionally returning incorrect values on Azure systems. [emf] Fix for a bug that could cause incorrect fitting scaling within a specified viewport. [pdf] Fixed an issue with saving huge PDFs (over 2GB) into memory. [xod] Fixed a problem with dash handling logic when the line width is 0. [pdf] Fixed a crash that could occur when refreshing appearance with a certain type of malformed DS. [C++] Fixed an occasional crash that could occur on Linux C++ after calling PDFNet::Terminate(). [pdf] Fixed a crash when calling PDFDoc.RefreshFieldAppearances() that could occur with a specific type of corrupt Field hierarchy. [office] Fixed an occasional crash when converting using interop. [pdf] Fixed a crash on a specific type of corrupt document with null pages. [image] Fixed a crash when a GIF file has no frame data. [node] Fixed an issue where some methods on node CADConvertOptions (such as setPageWidth and setPageHeight) were not reflected in the output. [cad] Fixed an issue where CADConvertOptions.SetBackgroundColor() would flip the red and blue components. ## Office Fidelity: [docx] Added support of hRule=atLeast frame property and set it as the default value. [docx] Fixed an issue with resolving frame properties within a table row. [xls] Now correctly handle headers, footers, and page breaks for legacy .xls files. [excel] Added support for horizontalCentered and verticalCentered print options. [excel] Added processing of date and file name header/footer parts. [excel] Added support for mixed text and images in Excel headers/footers. [xls] Fixed bug with structured storage reading in legacy .xls files. [Excel] Improved page-breaking algorithm to better match Excel. [docx] Fixed handling of tab stops within the right hand margin. [docx] Fixed a bug that could sometimes result in text fills with an incorrect style. [Excel] Fixed handling of some vba control sequences in Excel headers and footers. [Excel] Improved handling of empty charts. [Excel] Fixed an occasional bug that could result in missing content in charts. [Excel] Improved handling of conditional formatting for cells with error values. [docx] Added support for "mixed content" within OOXML source files, fixing a handful of rare issues with whitespace handling. [Excel] Now correctly handle tabs within table cells. [Excel] Fixed handling of the asterisk ('*') format code. [Excel] Added support for Excel accounting underlines. [docx] Improved handling "multiple" line spacing, resulting in more accurate highlighting, and improved layout around page breaks. [Excel] Duplicate Excel behaviour where numbers that do not fit within table cells are replaced with hashes. [Excel] Corrected support for the "#N/A" value in charts. [xlsx] Fixed a potential crash when resolving images with no .rels file present. [ppt] Fixed a spurious exception when reading some document properties. [ppt] Added support for 16-byte client anchors in legacy .ppt files. [xlsx] More robust handling of cell references with unexpected whitespace. [docx] Limit the space available to footnotes based on the position of the footnote reference. [docx] More accurate line breaking around footnote references. [ppt] Fixed a potential crash when processing legacy powerpoint files with invalid slide IDs. [ppt] Improved handling of font style inheritance within legacy powerpoint files. [Excel] Fixed axis labeling for empty charts. [Excel] Fixed bug that could result in the incorrect page orientation being selected when the SetApplyPageBreaksToSheet option is used. [docx] Added support for arbitrary scaling and clipping of document elements. [Excel] Fixed issues with handling first/odd/even headers and footers. [Excel] Fixed a bug with overzealous page size limiting when rendering Excel files with page breaks enabled. [Excel] Fixed an issue with missing charts when Excel page breaks are applied. [Excel] Fixed a number of issues with page scaling and clipping. [xls] Added support for the fNoPls bit in legacy .xls files. [Excel] Changed conditional formatting rules to be case insensitive. [office] Corrected handling of backslashes in package entry names. [Excel] Added handling of "showZeros" attribute of SheetView. [Excel] The x-values of non-scatter chart trend lines should start at 1, not 0. [Excel] Fixed handling of trend lines when data filtering results in less than 2 data points. [Excel] Fixed a bug with handling content nested within a graphic frame inside a group shape. [Excel] Added forward and backward trend line projections for missing chart values. [office] Added better support for substitution of fonts with mismatched bold and italic properties. [Excel] Fixed a bug with some conditional formatting not referring to the correct cell range origin. [pptx] Fixed a bug with handling of gradient angle in the presence of a horizontal or vertical flip. [pptx] Fixed an issue with resolving the correct fill colors through the slide hierarchy. [Excel] Implemented a workaround for unexpected anchor rotation in Excel documents. [Excel] Fixed a bug where line start/end markers in charts could exceed the line extents. [docx] Now correctly ignore framePr when present in the default paragraph properties. [docx] Improved the appearance of "thick" underlines. [docx] Added support for "decimal" tab stops. [docx] Fixed a number of issues with out-of-bounds tab stops. [docx] Fix a bug when calculating the rotation center of a box set to shrink to contents. [xlsx] Fixed multiple issues with formatting of fractional numbers. [pptx] Fixed an issue with PowerPoint text rotation. [pptx] Fixed an issue with applying transformations to rotated shapes inside a group. [xlsx] Fix a bug with indexed color selection when the index is out of bounds. [xlsx] Improved handling of Alternate Content elements within anchors. [xlsx] Now correctly resolve text alignment for conflicting merged cells. [doc] Added support for some missing table properties in legacy .doc files. [docx] Fixed handling for a number of edge cases where table column widths are underspecified. [docx] Corrected handling of competing stroke properties, which could result in incorrectly visible strokes. [xlsx] Fix for spurious exception for invalid column references. [xlsx] Added support for the CONCATENATE Excel function. [xlsx] Added detection for invalid cached values for charts. [pptx] Fixed bug that could sometimes result in incorrect removal of empty paragraphs. [pptx] Fixed a number of issues with cell borders in dml tables. [doc] Fixed issues with legacy .doc files with multi-encoding text. [docx] Fixed an issue with the drawing order of header and footer floating boxes. [docx] Corrected handling of the behindDoc attribute, which should be ignored if the text is wrapped around the shape. Version 9.4.0 - October 12th, 2022 See the 9.4.0 changelog on pdftron.com ## New Features: ### Digital Signature Verification Major improvements to MDP (Modification, Detection and Permissions) support. Added an option which can be used to reduce the running time of Digital Signature Verification on certain PDF files. (VerificationOptions.SetRevocationTimeout()) This should be used carefully as too low a timeout could lead to trust verification failures. ### New Package-Based License Keys Added support for new package-based license keys which group existing permissions into fewer simpler categories. One type of these new keys can be used for consumption-based licensing. ### HTML2PDF Extensions Added an option to HTML to PDF conversion that allows the user to specify one or more cookies to use when loading. (HTML2PDF.AddCookie()) ### Other Changes Added an option in ToXod to use z-order text extraction, which better matches the text extraction of other PDF consumers. (XODOutputOptions.SetExtractUsingZorder()) ## Changed Behaviour: Java X501AttributeTypeAndValue.getAttributeTypeOID now correctly returns ObjectIdentifier rather than long. Java ObjectIdentifier integer constants were removed, since there is no way to use them properly. Java ObjectIdentifier.Predefined enum names were adjusted to remove the unnecessary ObjectIdentifier_ prefix. ## Improvements: [all] Expat was updated to version 2.4.9. [pdf] Updated precision of number comparison in Digital Signature Verification to match other vendors. [pdf] Enabled hinting on 0-length 0-width lines (which appear as points) in PDF rendering. Previously these could be nearly invisible. [pdf] Adding better support for Bold font names in DA when generating annotation appearances. [pdf] Utilize Base14 fonts in FreeText appearance generation when it makes sense to do so. [.net] Exposed Obj.GetRawBuffer() to .Net Core/Standard/5/6. [html] Added support for generation of Logical Structure in HTML to PDF conversion. [pdf] Improved handling of .notdef characters to display nothing when the font is substituted. [pdf] Adjusted handling of corrupt documents where the encryption algorithm doesn't match the V and R value, so that R takes precedence. [image] Removed a limitation on image size for JBIG2 images, so that the library can process bigger JBIG2 images in PDF files. [xfdf] Avoiding errors in FDFMerge and FDFUpdate on corrupt PDF documents with a non-array Annots object. [pdf] FieldCreate now better handles corrupt documents with Null objects in the Field tree. Previously this could throw an exception. [xfdf] Added support for preWrappedText when importing FreeText annotations that are justified. [pdf] During digital signature validation, now use HTTP 1.0 as a fallback if a HTTP 1.1 request fails. [xlsx] Optimized handling of Excel tables with many empty cells. [all] Improved performance by loading some internal font resources only when needed. [all] Added support for Windows "cloud fonts", when cached locally. ## Bugfixes: [pdf] Fixed Digital Signature Verification MDP issues on annotation-related changes to the PDF structure tree. [pdf] Adjusted digital signature verification MDP support to allow additions of resources that are not referenced. [pdf] Adjusted permission checking in Digital Signature verification for unusual cases where there is only FieldMDP, but no DocMDP. [pdf] Fixed Digital Signature Verification MDP issues related to Field additions. [pdf] Fixed a problem with Digital Signature Verification comparisons in MDP logic that could lead to some changes being ignored. [xfdf] Fixed a problem when the blend mode exported to XFDF could be miscalculated on annotation appearances with transparency groups. [pdf] Updated logic in PDFDoc.AnnotPushBack to correctly adjust Widget rotations when a new annotation is added to a rotated page. [html] Fixed a problem where .htm would not be recognized for interop conversion. This bug did not effect the recommended HTML2PDF module. [all] Removed deprecated logic that would send an HTTP request to an invalid address when using usage tracking production keys. Originally the request would fail and be ignored. [java] Fixed a crash occurring in the ObjectIdentifier constructor when passing in an int constant. [xfdf] Fixed a problem where XFDF export could not include appearances for documents where the appearance is default, but placed incorrectly. Previously this could lead to the annotation being misplaced in WebViewer. [pdf] PDF loading will no longer rely on the length key for encryption revisions 4 and 5. Previously loading encrypted documents missing the Length key would cause an exception to be thrown. [pdfa] When a font is referenced with Text Rendering Mode 3 (i.e. invisible text), pdfa validation will now validate items that are not related to font embedding. [pdf] Fixed issue where GeometryCollection snapping logic could sometimes snap when beyond the end of a line segment. [pdf] Fixed potential crash in PDFView/PDFViewCtrl when rendering thumbnails for corrupt documents. [pdf] Fixed a problem where Times New Roman could be incorrectly mapped to the font Times Roman. [.net] Fixed a issue with .Net builds other than .Net4, where the IO.Stream PDFDoc constructor would not function correctly if the stream was not seekable. Due to some changes in the language this seems to be relatively easy to trigger in .Net6. [pdf] Adjusted ElementBuilder.CreateShapedTextRun to correctly take all runs into account for subsequent length or BBox computations. Previously only the first part of the text run would be taken into account. [AdvancedImaging] Fixed an issue with resource paths containing spaces. [Webfonts] More robust handling of file: URLs. [txt] Fixed a potential crash bug when converting text files using a Filter input on Linux systems. ## Office Fidelity: [docx] Fixed an issue with floating boxes larger than the page content size. [docx] Fixed an issue with handling all/left/right line break types for RTL and justified text. [xlsx] Can now obtain chart data from Excel sheets when missing strCache/numCache elements. [xlsx] Fixed a bug in calculating the number of table rows on a page with a page break in Excel. [xlsx] Now correctly take last row/column size into consideration when breaking pages in Excel. [xlsx] Fixed a bug where the bottom margin of a page could sometimes be counted twice. [xlsx] Implemented support of print titles (rows and columns repeating on each page) for Excel. [xlsx] Fixed incorrect clipping to page margins, and for Excel sheets split into multiple pages. [xlsx] Fixed an issue with an over-strict internal check, leading to a spurious exception with some Excel files, when split across pages. [docx] Now correctly handle tables in frames. [docx] Fixed an incorrect chart scaling issue. [docx] Fixed an issue with table alignment leading to incorrectly split rows between pages. [pptx] Fixed issues with property inheritance and bullet characters in pptx files. [docx] Implemented proper handling of vertically merged cells split between pages. [office] Added partial support for "bar of pie" charts. [docx] Fixed an issue with transformed images within transform groups. [docx] Added support for named fill colors, like "aqua", and "dodger blue". [pptx] Corrected handling of duplicate style definitions to match MS Word. [docx] Fixed a number of issues surrounding line spacing with tabs and empty paragraphs. [docx] Improved the line-breaking behaviour when multiple styles are present in a single line. [docx] Expanded bookmark support to include bookmarks with more naming conventions. [office] Improved clipping of chart contents. [office] Corrected behaviour for out-of-bounds values in bar charts. [office] Improved support for sparkline charts. [docx] Added support for the `w:hyperlink` element with w:anchor attribute that references a bookmark. [docx] Implemented HYPERLINK field support. [office] Added support for complex background fills in charts. [office] Added support for reading the dLbls element for bubble chart series. [office] Fixed handling of bubble charts with multiple axes. [office] Fixed a number of issues with data label placement for bubble and scatter charts. [xlsx] Added ability to set chart data labels text to the values of a cell range. [office] Fixed an issue with applying series outlines to data markers. [docx] Correctly clip inline pictures to line height. [xlsx] Fixed misleading error message regarding cell limits. [docx] Fixed an issue with incorrect trailing glyph widths on some text lines within a generated PDF. [docx] Now correctly preserve paragraph "before" spacing between section breaks. [doc] Added support for embedded fonts within legacy .doc files. [pptx] Fixed an issue with EOT font decoding which could sometimes result in deformed letters. [emf] Avoid crash when handling an non-existent pattern brush in EMF images. [pptx] Updated the color mixing algorithm for shade modifications. It now takes into account gamma color corrections. [docx] Now correctly include table cell bottom borders in table size calculations. [docx] A number of fixes for positioning rotated and clipped images. [xlsx] Now skip Excel sheets with either zero rows or columns. [ppt] Added hyperlink mapping to the legacy ppt format. [emf] Fixed an issue with the StretchBlt operator in emf files, when the image does not require stretching. [xlsx] Expanded handling of the ISERROR Excel function. [xlsx] Added support for the ISNA Excel function. [docx] Fixed handling of underlines, tabs, and fill strings to better duplicate the behaviour of MS Word. [docx] Improved the positioning of some floating content when anchored to table cells. [docx] Now correctly preserve newlines within vertically merged table cells. [docx] Fixed an issue with table cells that are both vertically and horizontally merged. [pptx] Fixed an issue with hyperlink colors using the wrong lookup index in PowerPoint files. [ppt] Fixed a number of issues with list styles in legacy .ppt files. [ppt] More robust handling of malformed legacy .ppt files. [pptx] Now correctly preserve order dependence for color modifications in PowerPoint files. [xlsx] Added locale support for month names and weekday names for Excel files. [xlsx] Added support for locale-specific long date and times in Excel files. [docx] Fixed a bug with rotated boxes that are sized to fit their content. [docx] Fixed a bug with auto-sizing drawings to fit within boxes. [docx] Improved handling of bottom padding in a table cell when a bottom border is specified. [docx] Added support for the centerGroup alignment element. [pptx] Improved handling of the "auto" color for text with dark backgrounds. [ppt] Added better support for some default placeholder values in legacy .ppt files. [pptx] Fixed an issue with paragraph property inheritance in pptx files. [docx] Fixed a bug with clipping of merged table cells. [xlsx] Added support for the "indent" alignment property of Excel cell styles. [xlsx] Now correctly hide table cell borders when covered by overflow text. [xlsx] Added support for external workbooks in Excel, with cached data. [docx] Fixed a potential crash when handling some charts with empty data sets. [docx] Fixed a potential crash when processing form data into text runs. [pptx] Improved handling of the interaction between spcBef and spcPct elements in PowerPoint files. [office] Corrected handling of the xml::space attribute for elements within the `w` namespace. Version 9.3.0 - July 5th, 2022 See the 9.3.0 changelog on pdftron.com ## New Features: ### Added support for IRIS OCR The IRIS engine can now be selected when performing OCR operations. Download the IRIS module and specify the `OCREngine` option as "IRIS" in order to use the new engine ### Office templating Office templates now have a new template-specific conversion API, which allows enumeration of the template keys within a document as well as efficient refilling of the same document with different values. Templates tags can now accept structured input as values, in the form of either markdown or basic html. Use the "markdown" or "html" properties in the replacement json value to specify this structured input. ### Linux ARM64 Architecture Support Support for Linux ARM64 architecture is now available for all the flavours of the SDK. ### HTML2PDF Extensions Added support for options to allow local file access and to set a delay to allow for JavaScript execution in HTML2PDF with the latest module. (WebPageSettings.SetBlockLocalFileAccess() and WebPageSettings.SetJavaScriptDelay()) Added support for an HTML2PDF option to set a timeout on the conversion. (WebPageSettings.SetTimeout()) ### More Features Text Diff now has an option to use PDF reading order/z-order. (TextDiffOptions.SetCompareUsingZOrder) This can significantly improve results. Added an api to set the font name for FreeText. (FreeText.SetFontName) Added support for the HEIC and PSD file formats to the Advanced Imaging Module. Added a new option e_ocr_always to OCR non-scanned pages for PDF to Office and PDF to HTML. ## Changed Behaviour: Removed 8 non-functional deprecated APIs from WordOutputOptions. PDFDoc.Save() with e_incremental flag will now throw an exception if a Redaction operation was just applied. This is important to avoid retaining the original document content. PDFDoc.Save() without e_incremental will now always remove unused objects if a Redaction operation was just applied. Text Diff now uses the new pdf reading order option as the default. ## Improvements: [node] Added support for Node 18 and Electron 17-19. [pdf] Optimized ElementWriter resource lookup for documents with huge resource dictionaries. This should also provide some performance benefit to other operations that generate PDF including optimization, flattening and some conversions. [python] Added support for Python 3.10 in pip. [.net] Improved the .Net Core interface to avoid crashes that could occur with certain usages due to overzealous garbage collection. [all] Upgraded Expat to version 2.4.7. [.net] Added PDFACompliance.GetDeclaredConformance() to .Net Core. [pdf] Improved error messages in digital signatures for encrypted files. [pdf] Made some general improvements to Embedded JavaScript support. [pdf] Added reference counting to a number of objects including ObjSet, DocumentConversion, EmbeddedTimestampVerificationResult, TimestampingConfiguration and TimestampingResult. [xfdf] Cleaned up the xfdf export surrounding signature widgets to omit unneeded appearance data when an appearance is not available. [pdfa] Improved handling of OCRed files when converting to PDF/A-1 variants. Some OCRed files use transparency which is not supported in these versions of PDF/A which the conversion can now adjust for. [pdf] Added support for check icon appearance generation in Text/Sticky Note annotations. [pdf] Added viewer support for basic goto actions in Embedded JavaScript. [pdf] Allow corrupt documents that reference the trailer from the trailer. [pdf] Significant reduction in memory used by GeometryCollection (snapping) logic by skipping intersections between tiny lines. [pdf] Adjusting PDF repair logic to correct the length of streams with filters in corrupt documents. [ruby] Added universal build (with Arm slice) of Ruby on MacOS. [tiff] Added support for multi-page tiff in streaming conversion. [html] Performance improvements when iterating and calling Word.GetCharStyle(). [pdf] More complete unicode coverage for the default built in substitute fonts. [pdf] Updated digital signature revocation OSCP requests to use HTTP 1.1 instead of HTTP 1.0. [Office] Added support for radar charts. [templates] Added support for specifying template content via json paths. [docx] Added support for internal document links. [templates] Added TemplateStrictMode option, which will throw an exception on missing template data. [xlsx] Numerous performance improvements. [docx] Large performance improvements (20%) on documents with many pages. [office] General performance increases on documents that use many fonts (~20%). [xlsx] Improved performance and memory usage of the conversion of Excel files with hidden sheets. [xlsx] Improved performance and memory usage of Excel documents with empty cells. [office] Font scaling improvements for cases where a built-in office font is used, and the font is not present on the system. [docx] Improved performance of floating content positioning. [templates] Added '%' to the valid characters in template identifiers. ## Bugfixes: [pdf] Fixed Digital Signature Validation revocation issue for cases where the digest algorithm is not specified up front. [pdf] Fixed Digital Signature Validation issue where certain changes that were meant to be skipped in MDP analysis could be treated as an error. [pdfa] Fixed issue where PDF/A-2/3 specific structure types were not being considered. [pdfa] Fixed potential out of bounds array access on documents with unexpectedly large unicode output per glyph. [pdf] Made flattening behavior act the same as rendering and other applications when XFA data mismatches with other annotation state. [pdf] Fixed an issue in Text Diff that was contributing to a number of false differences. [pdf] Fixed an inconsistent issue where GetAcroForm would sometimes return null on documents that have such a dictionary. [.net] Fixed a potential crash in the ObjectIdentifier interface for .Net Core. [xfdf] Adjusted xfdf import to avoid retaining trn-formatted-value custom entry added by WebViewer. [pdf] Fix for Digital Signature MDP verification. Entries that are not mentioned in the PDF standard are now ignored under compatibility security mode. [pdf] Improving support for corrupt paths starting with an l (line) rather than m (move) operator. [pdfa] Fixed a couple of issues that could lead to inconsistent PDF/A validation results on certain documents. [tiff] Fix for tiff image import when the image has YCbCr photometric colorspace and is dct (jpeg) compressed. [pdf] Resolving potential threading issue in FreeText generation on some platforms. [pdf] Taking Text/Sticky Note anchor point into consideration when computing the clickable region in the viewer. [pdf] Fixed an issue where, when there are empty values present in Opt array, the combo-box appearance can be incorrect. [.net] Fixed some APIs that could cause small memory leaks in the .Net Core interface. [pdf] Fixed a rendering issue, on very unusual documents, where the soft mask background would be ignored if the main part of the mask did not intersect. [xfdf] Fixed calculation of font size for XFDF export on very unusual documents. [pdf] Fixed a very rare crash that would only occur with very specific inline images and viewer cache sizes. [pdf] Fix for Redaction so it will remove associated popup annotations. [pdf] Fixed a crash on corrupt documents where Object streams reference themselves in a circular manner. [xfdf] Fixed crash on PDFDoc.MergeXFDF when the specified page in XFDF is not in the PDF document. [pdf] Fixed some issues in FreeText with how the font was being chosen. [pdf] Fixed a memory leak when incrementally saving signed documents. [pdf] Fixed an issue with Text Extraction that lead to issues (potentially even a crash) with text selection on specific documents. [pdf] Fixed a bug where FreeText functions SetFontSize and SetTextColor could fail to update those properties. [pdf] Fixed an issue in FreeText appearance generation where \r\n could be counted as two lines. [pdf] Extended logic to ensure the precision of numbers written by incremental save when the document is signed to include compressed object streams. [pdf] Avoid utilizing FreeText rich-text content when it is empty. [html] Fixed encoding issue handling unicode characters in HTML provided as a string to HTML2PDF. [pdf] Added support for hidden text in TextDiff, which fixes issues handling OCRed images. [pdf] Fixed a Text Diff issue where a space inserted before and after a word caused the entire word to be highlighted. [pdf] Improved ability of TextExtraction to get all of the text at the edge of tables. [pdf] Fixed an issue in CalRGB handling that could occasionally trigger a crash. [pdf] Made Text.setAnchorPosition and Text.getAnchorPosition visible in Java and .Net Core. [pdf] Fixed a crash that could occur on some very corrupt PDF documents with incorrect object headers. [xfdf] Improved handling for importing XFDF with '.' as part of field names. (rather than part of the field hierarchy) [pdf] Fixed an issue where, on AES256 encrypted documents, IsMasterPasswordRequired() could return true when there was no owner/master password on the document. [pdf] Fixed an font substitution issue when generating form field appearances by utilizing the default appearance font name. [pdf] Improved text extraction support for cases with differently rotated text. [pdf] Fixed an issue where new fields could not be properly edited with PDF JavaScript enabled. [pdf] Fixed a glyph loading issue when hinting fails at higher scales. [Templates] More consistent rules for template inference. [Templates] Fixed some issues with multiply nested if-else conditions. [templates] Improved error handling for templates. [emf] Corrected handling of null brushes. [pdf] Fix for a single-byte out of bounds read for CalRGB images with a particular data alignment. [all] Fixed a potential issue with leaking handles when calling subprocesses in very quick succession from multiple threads on Linux system. [fonts] Ensure font file extension checking is case insensitive. [pdf] Fixed potential out-of-bounds memory access due to a rounding error at very high image resampling levels. ## Office Fidelity: [docx] Many fixes to the handling of floating tables. [pptx] Fixed cases where custom hyperlink colors could be ignored. [docx] Fixed a bug in UTF-32 to UTF-16 conversion affecting RTL text. [docx] No longer horizontally expand tables when there are multiple columns. [docx] Added support for the keepWithNext property for table rows. [docx] Added a workaround for axis lable text with arbitrary placement angles. [docx] Fixed issue with incorrect origins within some group shapes. [docx] Improved sorting of z-indices of shapes, in particular for very large z values. [pptx] Corrected an issue with the determination of tab stop values in powerpoint files. [docx] Disabled text interaction with floating elements in files created by older Word versions (<15). [docx] Fix for incorrect hyperlinks areas within RTL documents. [doc] Fixed footnotes and endnotes handling for DOC format. [docx] Fixed an issue with absolutely positioned rotated shapes. [xlsx] Use the suggested row height when text wrapping is enabled in the row. [pptx] Fixed inheritance of noFill shape property from a shape group. [pptx] Implemented proper chart series color calculation according to the chart style. [pptx] Added basic handling of warped text. [xlsx] Fixed spacing between Excel table rows to make the borders overlap. [xlsx] Fixed issues with missing borders in some Excel documents. [xlsx] Fixed issues with double borders in Excel tables. [xlsx] Implemented cropping of table cell content for Word. [xlsx] Implememented some esoteric font size override logic to match Excel. [office] Fixed a potential issue with incorrect positioning of group shape sub-elements. [xlsx] Fixed improper application of color formatting. [xlsx] Fixed bug with converting #N/A values to zeroes. [xlsx] Fixed issues with resolving formulas dependent on hidden sheets. [xlsx] Fixed issues with resolving formulas involving empty cells. [xlsx] Fixed an issue that could result in incorrect determination of chart categories. [xlsx] Corrected the default fill pattern for dxf fills. [xlsx] Fixed missing background color for image shapes. [xlsx] Now correctly display cached error cell values. [docx] Fixed handling of the case where the last line of a paragraph consists of only a newline. [xlsx] Fixed some issues with localized number formats. [docx] Added support for nested text runs. [docx] Fixed a number of issues with field values. [docx] Added handling of ASK field. [docx] Fixed an issue with paragraph spacing affecting float placement. [docx] Fixed an issue with the calculation of tinted and shaded theme colors. [xlsx] Added support for secondary date separators in localized number formats. [office] Added theme system colors for window and windowText. [docx] Fixes for handling of adjacent text runs with differing underline styles. [docx] Improved handling of paragraph background colors. [office] Fixed baseline calculation for some RTL text runs . [docx] Implemented proper handling of pageBreakBefore flag inside a table. [xls] Added some safety checks for out-of-bounds property indices. [xlsx] No longer throw exceptions for some recoverable excel formular errors. [xlsx] Removed an unnecessary condition from number formatting code. [xlsx] Fixed application of Excel text styles: direct formatting is never overridden by parent properties. [xlsx] Fixed handling of merged cells starting in hidden rows. [docx] No longer underline the suffix tabs in numbered list paragraphs. [xlsx] Fixed an issue with applying beginWith and endWith conditional formatting rules. [xlsx] fixed handling of the SEARCH function fix when no value is found. [xlsx] Handle the conditional formatting via formula. [office] Improved handling of "force bolded" fonts, where the style indicates bold text, but there is no bold variant of the font. [docx] Fixed bug where bullets in word lists were being incorrectly bolded. [xlsx] Fixed potential crash when trying to access characters in an empty string. [xlsx] Added handling of escape characters for table column names. [xlsx] Fixed issue with parsing maximally large double values, not taking the null terminator into account. [docx] Fixed improper reading of `rtl` run property, could cause some LTR documents to have flipped punctuation marks. [office] Improved RTL layout algorithm, particularly when tab stops and symbols are involved. [xls] Fixed a bug in reading row properties from XLS files. [xls] Fixed a bug in applying cell properties to merged cells. [excel] Improved row height calculation for rows with wrapped text. [excel] Fixed the default line spacing for wrapped text in Excel documents. [office] Fixed handling of super/subscript text when all text in a given line is either super/subscripted. [doc] Fixed mapping of complex VML paths in .doc files. [doc] Corrected default stroke width on arrow symbols. [docx] Fixed applying bottom table border to vertically merged cells. [docx] Added support for the doNotVertAlignCellWithSp compatibility option. [office] Fixed an issue with overlapping caching keys for Arabic and Latin fonts, could cause incorrect fonts to be used in some cases. [pptx] Fixed issue with incorrectly determining the location of fallback content for embedded svg images. [pptx] Added support for for per-slide theme color overrides. [doc] Added the missing inclusion of pcd.cpEnd into the FileCharacterPositions list. [pptx] Fixed inheritance of outline colors within group shapes. [xls] Added a number of fixes for chart drawing. [doc] Added handling of special break types (clear=all, clear=left and clear=right). [xls] Recovered from some non-fatal xls interpretation errors. [xls] Added default page margins for XSL->XLSX conversion. [docx] Fixed a bug with the positioning of rotated shapes. [docx] Fixed handling of `after` attribute when `afterLines="0"` is present. [docx] Fixed calculation of line spacing when spaceAfterAuto is enabled. [doc] Refined our handling of table row heights. [xls] Added missing record type checks when reading chart data. [docx] Fixed issue where the absence of the numPr tag would prevent a border from merging with its neighbours. [excel] Added handling of escaped chars in format codes. [docx] Fixed issue where lines could be drawn with an incorrect default weight. [office] Corrected handling of cases where a solid fill was specified with no fill pattern. Version 9.2.0 - January 27th, 2022 See the 9.2.0 changelog on pdftron.com ## New Features: ### Structured Output Module Support for converting to Excel or PowerPoint. (Convert.ToExcel() and Convert.ToPowerPoint()) Convert.ToWord() now uses the Structured Output Module for better quality output. Convert.ToHtml() has a new option to reflow the whole document using the Structured Output Module. (HTMLOutputOptions.SetContentReflowSetting(e_reflow_full)) ### Template Engine Features Full support for loops and conditionals within office templates. Much improved feedback and error messages. ### New Flate Engine Optimized flate compression and decompression implementation. Uses SSE2 and SSSE3, depending on platform. Modest performance increases to all compression and decompression (5-10%), significantly more in some cases. Better compression, especially for .png files. ### Digital Signature CMS Generation Used for many custom signing use-cases including those which utilize Hardware Security Modules (HSM). CalculateDigest() added to DigestAlgorithm class. GenerateCMSSignedAttributes() and GenerateCMSSignature() added to DigitalSignatureField class. ### Updated HTML to PDF Module Generally produces significantly better output. Includes options to set an html header or footer. (HTML2PDF.SetHeader() and HTML2PDF.SetFooter()) ### Direct XFDF Merging Added PDFDoc.XFDFMerge() method: Efficiently merge xfdf command files directly into an existing PDF with no need for intermediate FDF. Simple merge algorithm based on annotation IDs and modification dates. ### Text Diff Additions Added PDFDoc.HighlightTextDiff() API to highlight semantic text differences between two PDFs. Added a number of new options for PDFDoc.AppendTextDiff() including exclusion zones, color and opacity settings. (as part of TextDiffOptions) ### Text Regions Added Highlight Utilities to allow for easier interchange of highlighted regions or search results between applications. New APIs include class TextRange, Highlights.GetCurrentTextRange(), TextExtractor.GetHighlights() and Highlights.SaveToString(). ### More Features Added the 'UseScaleFromDocument' option, which uses the dimensions of the model and scaling factors in the document to determine page size. Added the 'IncludeModel' option, which allows for optional inclusion of a full-model view of all the document content. Added the autorotate option to the OCR module, which will automatically deskew incoming images. Added PSB format support to the advanced imaging module. Added an option which allows the user to specify a number of required thumbnails at the start of the document when calling PDFDoc.SaveViewerOptimized. (ViewerOptimizedOptions.SetMinimumInitialThumbnails()) Added method to adjust Sticky Note anchor used by PDFTron rendering. (Text.SetAnchorPoint()) This option should only be used when necessary as this anchor may not be used in other PDF applications. Added a new z-order reading order option to TextExtractor and TextSearch. (e_extract_using_zorder) This option tends to produce output more similar to other PDF applications. ## Changed Behaviour: Added logic to PDFDoc.SaveViewerOptimized to throw if there is user password security and remove encryption that is only connected to permissions. This is necessary to avoid errors when processing them in WebViewer. A number of HTML to PDF options have been deprecated as they are not present in the new module. Check the API docs for more details. A number of PDF to word options have been deprecated as they are not present in the new module. Check the API docs for more details. ## Improvements: [java] Apryse SDK for Java is now available as a Maven package. [pdf] Added support for generating more complicated FreeText appearances including those with rich-text. [xfdf] Added support for sound annotations in xfdf export and import in a way that is largely compatible with other PDF processors. [pdf] Optimized text widget appearance generation for the case where there is a significant amount of text that will not be visible. [all] Optimized PWS logic significantly. This is only relevant for cases where a demo key or pay-as-you-go key is utilized. [.net] Added support for .NET 6. [.net] Added support for .NET Standard 2.0. [xfdf] Significantly optimized xfdf export. [xod] Added better error handling in PDF to XOD conversion for certain corrupt images. [pdf] Improved PDF/A conversion to change some unsupported colorspaces thereby removing associated validation errors. [pdf] Improved PDF/A Conversion's ability to remove notdef glyph usage, removing associated validation errors. [pdf] Improved Text Extraction logic that handles de-hyphentation. [pdf] Text Diff output now includes placeholder highlights to indicate position of deletion/insertion of lines/characters. [pdf] Text Diff output now includes annotation metadata including a unique id and what type of operation occurred. (insert, delete or edit) [pdf] Text Diff highlight difference areas are now cleaner. [html] Applied significant performance optimizations for Reflow, up to 60% in some cases. [html] Improved the overall quality of Reflow output including table flow and viewpoint metadata. [html] Added viewpoint metadata tag and pdftron.ai zone type support to Reflow. [pdf] Performance improvements when iterating and calling Word.GetCharStyle(). [all] More complete unicode coverage for the default built in substitute fonts. [optimizer] Allow optimizer to produce jpx encoded images when JPEG2000 compression is selected, as opposed to jp2. jpx images can handle the cmyk colorspace. ## Bugfixes: [xod] Fixed a potential crash when converting certain type of corrupt appearances to XOD. [xfdf] On specific rare documents, non-utf8 data could be written when exporting XFDF leading to problems when it is parsed. This has been guarded against for future cases. [C++] Improved support for re-initialization after terminate by ensuring everything is recreated. [all] Fixed some error handling cases with PWS logic. On rare corrupt documents this logic could originally throw exceptions leading to some unintended behaviour. These are now always caught. [.net] Fixed cases in PDFDoc.SaveViewerOptimized() and Font.CreateCIDTrueTypeFont() where the overzealous .Net garbage collector could clean objects before the library is done with them potentially leading to a crash. [pdf] Fixed Optimizer compression for a specific type of uncompressed image data that could trigger subsequent viewer errors. [tiff] Fixed an issue where certain tiff files could not be read correctly through the Universal Conversion API. [pdf] Decreased the number of cases where downloading (PDFViewCtrl.OpenUrl and PDFViewCtrl.OpenUrlAsync) would end up waiting for data to download. [all] Ensure that PDFNet.Initialize can be called again after a PWS connection error. [xfdf] Fixed issue where PDFDoc.FDFMerge dropped non-PDF conforming (not multiples of 90) rotation values. [xod] Added support for retaining 0-width stroke when converting from XOD. This is important since XOD rendering (unlike XPS) supports this. [fdf] Support importing actions and appearances from externally created fdf. [xfdf] Improved logic around importing Text Widgets sharing the same field. Previously the justification entry was shared between these Widgets, but other PDF consumers keep a value for each. [pdf] Fixed a ContentReplacer issue that could occur with text placement after processing certain files. [xfdf] Fixed an issue where xfdf export could, in specific situations, produce duplicate style or width attributes for some xfdf elements. [node.js] Fixed a problem where Node.js would not terminate properly if initialization of the SDK failed. [pdf] Fixed an error where PDF import/insert pages could throw an exception on certain types of corrupt Widgets. [pdf] Fixed an error with support for memory-backed file download. (PDFViewCtrl.OpenUrl/PDFViewCtrl.OpenUrlAsync) Generally this would only be encountered if PDFNet.SetDefaultDiskCachingEnabled(false) was called. [xfdf] Fixed an issue with PDFDoc.FDFUpdate where it could potentially ignore differences only in the border style and modified date properties. [pdf] Fixed an issue with date formatting in PDF Embedded JavaScript. [jpeg] Fixed an issue in JPEG decompression when loading certain corrupt files, where it was possible for the program to exit. [pdf] Fixed uncommon ElementReader infinite loop. [pdf] Fixed a crash when parsing a corrupt stream with no dictionary in xref section. [pdf] Fixed a crash in JPEG2000 decoding on a specific type of corrupt PDF document. [pdf] Fixed race-condition in font logic encountered when running simultaneous Text Extraction operations on the same PDF. [pdf] Fixed invalid unicode output for some char codes. [pdf] Fixed apparent Text Extraction freeze/unresponsiveness by providing the ability to cancel a time-consuming internal loop. [pdf] Fixed Text Extraction paragraphs being terminated on PDF files specifying null unicode values. (U+0000) [pdf] Fixed issue where extra spaces were included in Text Extraction output. [pdf] Fixed a case where an incorrect vertical merge order was used in Text Extraction. [pdf] Fixed pathological performance issue for some grayscale->monochrome conversions (now 20x faster). [pdf] Corrected the initial color if unspecified when rendering with separation colorspaces. [pdf] Fixed issue with multi-user temporary directory permissions on Linux systems. [pdf] Fixed bug with incorrectly rotating asian characters within vertical text. [pdf] Fix potential memory leak during the polygon clipping portion of redaction. [all] Fixed a potential memory leak in FontConfig directory scanning. [pdfview] Fixed potential crash when rendering and extracting text for selections at the same time. [pdfview] Fixed case where immediately saving a document after loading, then undoing would not correctly refresh. [CAD] Fix issue with dgn xrefs producing multiple output pages. [TIFF] Fixed an issue that could cause misclassification of the final channel in a multi-channel tiff. [TIFF] Better algorithm for determining the alpha channel in CMYK images. [OCR] Fix a potential crash involving incompletely speicifed ignorable zones. [CLI2] Fixed an issue where some classes were incorrectly using destructors instead of finalizers to clean resources. ## Office Fidelity: [office] Removed extra cell whitespace accompanying nested tables. [office] More precise calculation of custom cell widths, taking into account a hidden 5 pixel padding factor. [office] Fix incorrect unicode determination in some cases where a single glyph could map to many codepoints. [office] Implemented proper reading of complex blipFill and Pib shape options in binary office formats. [office] Fixed formatting of elapsed time values. [office] Now correctly adjust the Excel sheet size to account for the defined print area. [office] Fixed centering for overwidth tables in Word documents. [office] Added support for images with arbitrary (non-rectangular) clipping boundaries in Powerpoint documents. [office] Fixed a shape drawing artifact occasionally created by incorrect winding rules. [office] Added support for chart trendlines. [office] Added support for custom chart and legend borders. [office] Fixed issue with incorrect axis mapping in some binary xls files. [office] Fixed bug where balanced columns could be applied to inappropriate section break types. [office] Now correctly read and use the offset for text runs (used for drop caps, for example). [office] Improved table padding and margin calculations. [office] Improved height calculation for empty lines in Word documents. [office] Improved calculation of contextually sensitive inter-paragraph spacing. [office] Fixed case where an indent could be incorrectly applied mid paragraph after page breaks. [office] Fix potential crash when a table's top cell margin was unspecified. [office] Improved the vertical positioning of paragraph-relative floating content anchors. [office] Fixed bug with incorrect default grid drawing when splitting Excel sheets into multiple pages. [office] Do not take hidden rows into account when determining page size in Excel documents. [office] Added support for the new AlternateContent options within an anchor's positionV property. [office] Fixed cropping of hanging text inside a shape text box. [office] More robust handling of many non-fatal document construction issues. 14 new cases now produce a result instead of generating an exception. [office] Added handling for some older variants of embedded wmf files. [office] Fixed positioning of oversized inline images. [office] Fixed default values of checkBox/checked and checkBox/default elements. [office] Improved rendering of some unusually formatted dates and timezones. [office] Better handling of some pathological cases for drawing sizes in Excel documents. [office] Fixed an issue with text rotation in a shape group. [office] Now correctly hide deleted images when tracking turned off. [office] Added proper handling of empty solidFill tags. [office] Fixed multiple issues with dual axis charts. [office] Now correctly handle setting category values for non-contiguous category axes. [office] Fixed issues with table alignment for binary .doc conversions. [office] Adjusted application of the SpaceBefore property when the leading paragraph on a page is within a table cell. [office] Added support for cases where drawing elements are the direct child of a paragraph. [office] Extra vertical border spacing now only applied to the first and last paragraph in a series of paragraphs with identical border settings. [office] Fixed handling of data binding where the target sdtContent element has multiple children. [office] Fixed handling of Excel cells with no specified row attribute. [office] Fixed an issue with custom formatting for zero in Excel documents. [office] Now correctly clamp character scaling to between 1 and 600. [office] Added support for Swiss locales. [office] Correctly take Excel formula results into account when determining sheet dimensions, even when the formula result is empty. [office] Improved handling of the 'auto' table width type. [office] Identified and fixed a number of rare potential crash bugs. 31 individual cases were identified via large scale testing. [office] Fixed invalid handling of negative text positions for emf files. [office] Fixed bug where the 'DisplayChangeTracking' option was not respected within headers and footers. [office] Improved handling of text in the trailing line of a table cell. [office] Fixed a bug with handling of the 'IF' field condition. [office] Added support for the DISPLAYBARCODE field. [office] Much improved handling of Excel headers and footers. [office] Fixed a minor memory leak associated with generating structured PDF output. [office] Added support for a reversed X axis in scatter charts. [office] Fixed bug with "General" formatted long exponential numbers in Excel documents. [office] Fixed chart rendering when inner content extends outside the plot area. [office] Added support for text rotation within Excel cells. [office] Fixed font substitution logic in cases where a font's coverage extends over large areas of the private use area. [office] Fixed issues with non-display of floating shapes nested within other floating content. [office] Fixed memory leak in binary xls conversion. [office] Refined conditional styling of table borders. [office] Improved positioning for some floating tables. [office] Much reduced memory consumtion during conversion of very large Excel sheets. [office] Fixed bug with incorrect cell spacing involving repeated header rows and vertically merged cells. [office] Added support for the older Word 95/Word 6.0 .doc format. [office] Fixed a potential memory leak in EMF->PDF conversion. Version 9.1.0 - August 24th, 2021 # New Features PDFTron Web Services (PWS) support to allow for pay-as-you-go licensing on Windows, Linux and Mac. Advanced imaging: Added support for HEIF/HEIC formats (native to iOS devices), as well as camera raw formats for Canon, Nikon, Olympus, Minolta, Fuji, Sony, and Kodak cameras. Added new custom signing API. (DigitalSignatureField.CalculateDigest(), DigitalSignatureField.CreateSigDictForCustomSigning/Certification(), PDFDoc.SaveWithCustomSignature()) This is especially helpful for cases where the signing step needs to be done separately such as Hardware Security Module (HSM) workflows. Added support for embedding digital signature timestamps in CMS. (GenerateContentsWithEmbeddedTimestamp() and custom signing APIs). Added an API to sign a signature digest outside of the PDF document. (DigitalSignatureField.SignDigest()). Added support for exporting and importing PDF custom appearances in XFDF in a way that is largely compatible with other PDF processors. These appearances can be generated using XFDFExportOptions.SetWriteAnnotationAppearance(true). Appearances are also now shared this way during realtime collaboration. PDFDoc.AppendTextDiff now supports optional exclusion zones. (TextDiffOptions.AddIgnoreZonesForPage()). # Changed Behaviour Apryse SDK on desktop platforms now requires a license key. A demo/evaluation key can be found at https://www.pdftron.com/pws/get-key. Crypto.TimestampingTestResult was renamed to Crypto.TimestampingResult. HTML2PDF modules have been removed from packages by default. It is now available on the website instead. No longer remove Digitally Signed Signature appearances when copying PDF pages from one document to another. This new behaviour is easier to use, though the original matches what some other PDF consumers do in this situation. C++ PDFViewCtrl was removed from the base C++ package, since its dependencies made it incompatible with Azure Functions. It is still available as part of a separate package. # Other Changes #### Improvements [Node.js] Added support for Node 15 and 16 to npm. [Python] Added support for Python 3.9 to pip. [MacOS] Added support for MacOS to PDF2HtmlReflowParagraphs and PDF2Word conversion. [MacOS] Added support for Apple Silicon (arm64) slice in Apryse SDK Python3 pip package and Node.js npm package. [Node.js] Various extraneous items, such as documentation and samples were removed from the npm packages by default. This makes the package smaller and more practical to use in serverless functions. [Node.js] A number of improvements or additions to the Node API and documentation. [pdf] Significant performance improvements for AppendTextDiff. [pdf] Extending XRef parsing logic to handle corrupt cases where initial XRef entries are not defined. [pdf] Added logic into Linearized save to prevent binary inconsistencies between runs. [C++] Adjusted PDFNet::Terminate to allow for the library to be initialized again later. Previously this flow was not supported. [MacOS] Adjusted minimum MacOS support for the SDK to 10.7. (was 10.15). [pdf] Taking shading usage better into account when making the decision to flatten. Previously it was possible to have a large number of shadings, but have the file not be flattened. [pdf] On signed PDF documents incremental save will now write exactly the same format (including the number of decimal places) for numbers that were not changed. This can help to prevent invalidation of existing signatures in rare cases where relevant numbers need to be re-written. [pdf] Improvement to Obj.IsFree() to return false rather than throw an exception if the object is direct. [jpeg] Added support for extracting embedded ICC Profiles in JPEG images and embedding them in the PDF. This mainly appears as more correct colors in the output image. [html] Various improvements and extensions to reflowable HTML support including integration with PDFTron.AI and the inclusion of document images. [windows] Removed dependency on newer versions of Windows. This dependency was removed because it prevented the SDK from running on Windows 7 and older versions of the OS. [pdf] Various improvements to realtime collaboration support. [pdf] Improved the reading order of text extraction when processing tables. [pdf] Adjusted Optimizer to throw out resources on a page basis rather than a document basis. While this doesn't automatically shrink the documents it produces smaller output when the optimized file is split. #### Bugfixes [pdf] Fixed multi-threaded race condition in font processing when using multiple instances of TextExtractor on the same document. In rare cases this could actually cause a crash. [Node.js] Adjusted PDFNet.Convert.office2PDFBuffer to destroy the temporary PDFDoc object before returning the buffer. This removes the need for other logic to clean up the memory and ensures this memory cleanup is done more quickly. [jpeg] Fixed an error when converting JPEG files with rotation where the output page could have incorrect dimensions. [pdf] Fixed stack overflow crash in AppendTextDiff that would occur in some situations. [pdf] Adjusted text extraction to better handle negative font sizes when generating quads. This is important to ensure underlines appear on the bottom rather than the top. [xps] Fixed a crash when loading a rare type of font when converting xps to pdf. [xod] Fixed generation of annotation appearance documents to XML escape appearance states before putting them into XOD. [pdf] Fixed color and arrow size for zero-width callout annotations. [pdf] Adjusted font rendering to avoid using hinting if this results in a bad result where the glyph outline is out of the bounding box. [pdf] Fixed memory leaks in text extraction. [xod] Fixed an issue converting to XOD with potentially incorrect scaling on rare images that have both SMask and Mask entries. [xod] Fixed issues with XOD annotation appearance generation for different appearance and annotation states. [pdf] Ensure that invisible text with no bbox (generated by OCR) is still considered as text elements to be Flattener. This is relevant especially for various types of conversion, since this is required for the invisible text to be retained. [xfdf] Fixed xfdf import support for unicode filenames in FileAttachment annotations. [xfdf] Previously annotations added to rotated PDF pages could end up with the wrong orientation when using FDFUpdate. This has been resolved. [pdf] Fix for Digital Signature MDP verification: changing or adding signing preferences (Lock dict) on subsequent signature fields no longer causes verification to consider previous ones invalidated when signature permissions allow this operation. [xfdf] Fixed an issue on PDF documents with a very large number of objects where the appearance reference could be added incorrectly to exported XFDF. [epub] Corrected errors where, in some cases, stroked text would be displayed incorrectly after converting to Epub. It is now flattened to ensure it displays as expected. [pdf] Runtime check of XRef W entry validity. Previously a crash could occur on a corrupt document with negative values were included in this entry. [html] Fixed URL injection security bug in reflowable HTML output that could potentially be an issue if converting a certain type of malicious PDF file. [pdf] Fixed a crash when dealing with corrupt compressed object streams which are missing certain required entries. [pdf] Fixed incorrect memory access that could occur when dealing with certain corrupt PDF documents that have multiple objects with the same object number where one of the earlier instances was a compressed object streams. [pdf] Hardened XRef parsing code to avoid invalid memory access on a specific class of documents. [pdf] Adjusted text extraction to avoid extra spaces when processing Type3 fonts. [pdf] Detect text with opacity set to 0 as invisible during text extraction, since this is a less common way of including invisible text for OCR. [html] Fixed various issues with HTML Reflow including inconsistent HTML, incorrectly merged paragraphs and errors on broken Form XObjects. [pdf] Improved the reading order in Text Extraction when handling superscript characters. [pdf] Improving detection of character spacing when using the Tc entry in Text Extraction. [xfdf] Improved the ability for FDFUpdate to retain existing appearances when the original annotation is still in the PDF, but not in the same location on the page. [xfdf] Adjusting handling for XFDF generated by WebViewer that contain nonstandard rotation to work seamlessly with RefreshOptions.SetUseNonStandardRotation(true). [pdfview] Adjusting the selection of cloudy squares in PDF viewer components to be more intuitive. [pdf] Added support for rotating Redaction text on rotated pages. [pdf] Fix for some font subsititution cases where symbol font glyph resolving could fail. [pdf] Fix for bad access when processing corrupt xref trailer references. [pdfview] GetAnnotationAt now prioritizes link annotations when present. [pdf] More strictly enforce object and generation number limitations as laid out in the specification, avoiding potential instability caused by corrupt documents. [pdf] Fix for potentially accessing stale object references during a call to `Annotation::IsValid`. [pdf] Fix for potential out-of-bounds read when dealing with documents with very large encryption keys. [pdf] Removed some unavoidable stdout output when processing some PDF documents with embedded javascript. [pdf] Fixed bug in the undo manager that could occur when a full save is triggered before any snapshots. [pdf] Fix for internal overflow when processing some gradients, leading to visual artifacts. [tiff] Fix for some older multipage TIFF files with jpeg encoded data. [tiff] Fix incorrect tile processing for some uncommon pixel formats. [tiff] Now correctly import tiff images with more than one "unspecified alpha" channel. [convert] Make sure to treat file extensions case insensitively in all cases. [emf] Implement full support for the StretchBLT operation on Linux and Mac (and remove GDI dependence for the same on Windows). [OCR] Fix automatic coordinates rescaling so that it does not depend on a fixed dpi. [jpeg] fix for potential crash when processing corrupt jpeg files. [pdf] Optimized number writing routines, resulting in up to a 10% improvement in save performance for content with a lot of coordinates (complicated curves or text positioning). # Office-specific [office] General improvement in text layout performance on Windows system (5-10 percent on average). [office] Added support for equations in powerpoint and excel documents. [excel] Improved handling of damaged (binary) xls files. [excel] Fix for cases where a sheets local index and global index are not the same. [excel] A number of fixes for header and footer positioning. [excel] Fixed placement for some rotated images. [word] Fixed issues with page numbering when dynamic field values are nested. [excel] Fixed issues with some types of table formatting relating to particular table regions (first row, last column, etc.). [excel] Fixed bug with row height determination: row should be tall enough to fit the containing text when appropriate. [word] Added header size limit for documents produced in older versions of Word. [word] Fix for non-deterministic behaviour in some documents with a page break prior to any content. [office] Fix for some binary-format office files with empty data streams. [office] Improved layout for right-to-left text with mixed fonts. [word] Added missing picture bullet list support for the (binary) doc format. [excel] Correct page numbering when using the setApplyPageBreaksToSheet option on a document with hidden sheets. [excel] Fixed number rounding to more closely match Excel's very specific behaviour. [office] Added support for "IsLgl" numbering property (Display All Levels Using Arabic Numerals). [excel] Fixed potential parse error when processing full row and full column cell ranges. [excel] Added PMT, Floor, Ceiling, True, and False function implementations for Excel. [excel] Added handling of percentage operator to the Excel formula solver (for cases where the cached result is not present). [word] Fixed rare case where we could wrongly assume the text direction for RTL text. [word] Added support for the picture outline effect. [excel] Fixed an issue that could cause incorrect horizontal image positioning within a table cell. [word] Tweaked height calculation for paragraphs with no text. [word] Fix for potential incorrect vertical positioning of floating elements within overlarge headers. [word] When competing list styles are present, now correctly prioritize local properties. [word] Fixed issue with paragraph-relative floating content when attached to tet that does not occupy at least one line. [word] Added support for a number of missing visual properties with binary doc files. [office] Improved line breaking algorithms for Chinese, Japanese and Korean language text. [word] Corrected default font for Chinese text. [excel] Improved support for the `ExcelMaxAllowedCellCount` option when processing binary xls files -- will now stop as early as possible. [word] Fixed a bug with assuming that any text line filled entirely with tabs is a right-to-left line. [word] Fix a potential crash when handling negative numbering style indices. [word] More robustly handle the case where a section break has an invalid typ. [word] Added support for the KeepNext property in table rows. [word] Added support for unsplittable table rows. [word] Prioritize calculated page numbers over cached values for dynamic page numbering. [word] Fixed an issue with indents in roman numbered lists. [word] Tweaked justification and indentation of nested paragraphs. [word] Fixed calculation of the leading space for the first paragraph on a page, which previously incorrectly took the line-height multiplier into account. [word] Fixed an issue with a page break before the first paragraph in a section. [office] Added support for the "Arabic" format specifier for dynamic text runs. [word] Fixed various issues with chart titles. [office] Fixed issues with text highlighting within nested lists. [word] Tweaked positioning of centered floating tables. [word] Improved conversion fidelity for pie charts. [word] Fixed label placement for doughnut charts. [excel] Fixed a bug that could skip AlternateContent elements when they are the only thing present in a table cell. [word] Now correctly process colors for form field checkboxes. [word] Correctly prioritize the last paragraph style when mutiple styles are specified. [word] Fixed content placement for center-aligned tabs located off the page. [excel] Fixed style inheritance issue for text runs with no font specified. [word] Now correctly clip contents of fixed size text boxes. [word] Added ability to run a Text2PDF conversion with an in-memory buffer source. [office] Fixed bug that could result in excessive image processing during conversion. [excel] Tweaked the resolving of drawing text styles to more closely match Excel in some edge cases. [office] Fixed potential crash when applying image effects to jpeg images with embedded ICC profiles. [word] Better detection of overlapping text with floating content. [office] Fixed several issues with chart legends. [office] Fixed the default linear gradient angle (should be 90 degree rotated if not set). [office] A number of fixes for image placement within table cells. [office] Added support of the "series overlap" property for charts. [excel] Added partial support for pattern filling of cells. [excel] Added support for the 1904 datesystem. [word] Fixed a bug where the left indent of floating tables was incorrectly being reset. [word] Now correctly position and size tables based on the compatibility mode of the file. [word] Improved support for the allowOverlap property for anchor drawings when interacting with framed paragraphs. [office] Fixed a memory leak when converting binary office formats. [office] Fixed handling of empty glyph clusters when shaping Thai text with a non-thai font. Version 9.0.0 - April 9th, 2021 # New Features Advanced Imaging Module, supporting the DICOM image format and many others. Flexible and powerful document generation using office templates. Full reflow, and retains all document styles. Added PDF2Word Module that enables conversion to Word. (Convert.ToWord()). Added PDF2HtmlReflowParagraphsModule Module and HTMLOutputOptions.SetContentReflow() that can be used to utilize it when calling Convert.ToHtml. Added a PDFTron Custom Security Handler that can be used to produce PDF files that can only be decrypted by Apryse SDK and only if the password is correct and the specified id has been registered by the application. (PDFTronCustomSecurityHandler class and PDFNet.AddPDFTronCustomHandler) This provides a level of security very similar to that of writing a custom encryption method, but is much simpler to use. Added an API to manually add or edit marked content. (ElementBuilder.CreateMarkedContentBegin, ElementBuilder.CreateMarkedContentEnd, ElementBuilder.CreateMarkedContentPoint etc.) Added an API to produce pages showing the text differences between two pages or documents. (PDFDoc.AppendTextDiff) This API is currently experimental and subject to change. Added a new API to trust certificates in the FDF Data/Cert Exchange format. (VerificationOptions.LoadTrustList) This provides overall more correct results during verification than VerificationOptions.AddTrustedCertificates as it can handle more fine-grained trust settings. Added new optional trust flags as input to VerificationOptions::AddTrustedCertificate to configure the desired level of trust. Added support for specifying locale for Office conversions. Added a filetype option to 'Convert' methods that accept a Filter and not a file path. # Changed Behaviour Moved X509Certificate, DigestAlgorithm, ObjectIdentifier, X501AttributeTypeAndValue, X501DistinguishedName and X509Extension from pdftron.PDF to pdftron.Crypto. Removed HTMLOutputOptions.SetReflow which wasn't usable in normal builds and overlaps in concept with the new HTMLOutputOptions.SetContentReflowSetting. # Other Changes #### Improvements [pdf] Updated Duktape to 2.6.0. [jpg] Updated libjpeg-turbo to 2.0.6. [tiff] Updated libTIFF to 4.2.0. [pdf] Updated OpenSSL to 1.1.1j. [all] Added macOS arm64 slice for Apple Silicon. [all] Enabled better optimization settings on Apryse SDK on Windows. [xfdf] Significantly optimized the performance of XFDF export. [pdf] Optimized creation of PDFDoc, SDFDoc, FDFDoc and ObjSet objects. This has a significant impact on cases that create a large number of these objects. [xfdf] Improved support for importing XFDF into PDFs with corrupt Annotations array. [xfdf] Generating consistent names on all unnamed annotations for during xfdfexport. This is especially helpful for realtime collaboration use-cases. [xfdf] Adjusted rectangle, ellipse, export and import to support nonstandard rotation in import and export. [pdf] Adjusted logic for retaining text spacing adjustments, so that it would work with interleaved marked content operators. [pdf] Avoid "faded colors" during PDF rendering when color management is disabled and overprint is off. [pdf] Avoid writing unnecessary colors and colorspaces when generating annotation appearance streams. [pdf] Adjustment to repair corrupt documents with negative or unreasonably large object numbers. [pdf] Erase invalid colorspace entries in ImageMasks during PDF/A conversion [svg] Better handle corrupt documents with unbalanced q/Q operators in forms during Convert.ToSvg. [pdf] Added support for trusting intermediate certificates in the chain during for Digital Signature Verification. [pdf] Adjusted corrupt document processing logic to allow for an XRef entry following startxref. Previously this would be treated as garbage data and the rest of the PDF would be skipped. [pdf] Improved reading for field values from XFA to better handle strangely formed inheritance structures. [xod] Adjusted flattening to disregard cases where the blend mode is specifically set to normal. This reduces unnecessary flattening for ToXod and Flattener improving run time and output quality in these cases. [pdf] Optimized PDF/A conversion for files with a lot of font objects. [pdf] Optimized text extraction to more efficiently extract styles. This primarily impacts text selection, reflow and use cases that use TextExtractor directly to obtain text styles. [pdf] Added support for dashed borders on checkboxes. [pdf] Added support for auto-tiling of very large tiff images [pdf] A number of new APIs were exposed in the pdfnet-node package. [pdf] Handle Exif rotations through the UniversalConversion methods on the Convert class #### Bugfixes [pdf] Fixed a parsing issue where unusually structured encrypted documents could fail to load. [pdf] Avoiding a crash when using incremental download on rare documents that start with a null object. [xfdf] Fixed an issue with PDFDoc.FDFUpdate where it could remove RichMedia and other less commonly used annotation types. [pdf] Fixed incorrect text extraction word break issue when text includes a vowel sign. [xfdf] Fixed an issue in PDFDoc.FDFUpdate where, in rare situations, radio buttons could be incorrectly matched and not function as expected. [pdf] Fixed a problem where certain PDF JPEG2000 images with 4 bits per component would display as darker than they should. [pdf] Fixed an issue where some documents with XFA values wouldn't take these into account when displaying the selected state of check boxes and radio buttons. [pdf] Fixed a problem where the Metadata would still be encrypted even if using SetEncryptedMetadata(false) [pdf] Fixed a problem with PDFDocInfo.GetSDFObj() where it would return the trailer rather than the Info object as would be expected. [pdf] Fixed an issue with Optimizer where, on certain documents and when subsetting fonts, it could break the appearance of hidden annotations. This could lead to issues later when the annotation becomes no longer hidden. [pdf] Adjusted page insertion to clear any DigitalSignatures when inserting into a new document. Previously these would be included, but invalid. [pdf] Adjusted handling of Field Flags to ignore them when they are incorrectly applied to Widget only dictionaries. [pdf] Adjusted PDF/A validation to not provide an error for Device colorspaces (e.g. DeviceRGB) if there is an associated Default colorspace in the resource dictionary. (e.g. DefaultRGB) [pdf] Fixed an issue with the generated appearance of line annotations with inline captions where the line would go through the text. [pdf] Fixed an issue with handling of 0 length streams that could lead to slow and unexpected file growth. This issue was especially troublesome when saving large files. [pdf] Fix for incorrect color in some DCTDecode images where the embedded colorspace conflicts with the PDF colorspace [pdf] Closed potential security issue with FileAttachment annotations, where a specifically constructed annotation could access external servers during XFDF export [pdf] Generated fully selectable text when generating complicated shaped text output [pdf] Fix for potential non-optimal performance when filling an internal object cache [tiff] Fix for potential crash when reading some YCbCr encoded images. [pdf] Fixed an issue with creating bad width tables in fonts covering codepoints outside the basic multilingual plane [pdf] fixed an issue with bad lookups in a font's toUnicode map when handling codepoints outside the basic multilingual plane [emf] Now correctly handle PDFs embedded within EMF files [all] Fix for mishandling of short font names in all caps, like "OCR-B" [all] Fixed bug with custom font servers which could result in missing the first item in a specified character range [all] corrected mapping of fonts specified as both "light" and "bold" [all] Fix for incorrect font substitution on Windows systems for some symbol characters # Office-specific [office] Can now positively identify encrypted office documents. [pptx] Fix for cases where a shape had deeply nested reference to other diagrams. [docx] more consistent handling of table widths specified as percentages. [office] Fixed issue that could result in incorrect character selection in documents with explicitly specified zero width non-break space characters. [docx] Now correctly take endnote number formatting into account. [office] Fixed bug with superscript/subscript handling in some cases when resolving local and derived run styles. [xlsx] More robust handling of malformed number formatting codes. [office] Fixed error in PDF structure output for table cells when converting office->PDF. [docx] Fix for semi-transparent fills in some office drawings. [docx] More robust handling of grouped office drawings with no shape ID. [office] Fixed the default label placement for 3d bar graphs. [office] Fixed error with occasional missing chart per-data-point labels. [pptx] Added missing support for column layout. [docx] Fix for incorrect handling of page breaks immediately preceding a continuous section break. [docx] Tuned line spacing to be an exact match to MS Word in more situations. [docx] Added support for graphic frames. [docx] Improved interaction between tables and floating content. [pptx] Fixed mishandling of tab characters within some lists. [office] Now correctly handle the "flatTx" attribute. [docx] Fix for potential crash in office files with malformed 'oMath' runs. [docx] Corrected handling of the 'auto' spacing property for the first and last paragraph in a document. [xlsx] Changed default value for unspecified opacity to opaque, rather than transparent. [xlsx] Implemented support of rich text for inline strings in Excel. [xlsx] Fix for handling of documents with no specified default styles. [xls] Fix for potential crash on some malformed xls documents. [xlsx] Optimized XLSX memory handling, now use much less memory when converting very large documents. [xlsx] More robust handling of malformed formulas in xlsx files. [office] Fixed a small memory leak (32 bytes per document). [pptx] Fix for not completely resolving the font style for some text. [office] Correctly handle data points outside the bounds of the chart axes. [office] Now handle clipping for all shapes, not just images. [office] Fixed grid line spacing for non-East Asian fonts. [docx] Fixed auto spacing between list paragraphs. [docx] Fix for too-high line spacing for some text with colored backgrounds. [office] Fix for incorrect parsing of percentage values that have percent symbols in them already. [docx] Fix for mishandled table borders in some isolated cases. [docx] Corrected default behaviour for non-specified vertical anchor in floating tables. [docx] Fix for cases where text boxes had a non-zero position and a specified wrap rectangle. [docx] Implemented bi-level image effect. [docx] Fix for unnecessary internal rounding of some fractional font sizes. [office] Fix for mishandling of some stroked text when converting to PDF. [office] Fixed drawing of stacked charts with non-zero base value. [xlsx] Removed exception when attempting to place some out-of-bounds content. [office] Added support for the luminance image effect. [office] Fix for mishandling of Thai text justification. [pptx] Fix for handling of negative indentations. [office] Fixed square text wrapping of rotated images. [office] Fix for handling of text spacing in fully justified text produced in older Word versions. [office] Fixed bounding box of the circular arrow and pie wedge shapes. [xlsx] Fix for scaling of grouped shapes with the two-cell anchor style. [docx] Ensure that we draw group shape elements by order of appearance. [office] Fixed issue with misaligned right-to-left text in rows with trailing spaces. [office] Much improved office equation handling. [office] Now translate some elements of user-specified structured document tags within OOXML to the converted PDF. [xls] Fixed hidden sheet state conversion for xls. [xls] Now correctly ignore comment shapes. [office] Implemented support of semi-transparent gradient fill. [xlsx] Now support excel rounding functions. [docx] Implemented handling of vanished paragraphs. [doc] Fixed a number of bugs with handling of numbered lists. [docx] Fixed automatic text color on a dark page background. [office] Fixed a performance issue with chart drawing, no longer waste time on non-visible elements. [xlsx] Fix for incorrect ISBLANK implementation. [xlsx] correct handling of row custom height and dyDescent. [docx] Better handling for custom page numbering mixed with non-custom. [pptx] Take trailing blank lines into account when centering text vertically. [docx] Correctly handle cases where a paragraph contains only floating picture anchors and a line break. [xlsx] Do not wrap text in date-formatted cells. [xls] Implemented AutoFilter support for XLS format conversion. [office] Added support for arbitrary text rotations. [office] Added support for text which is horizontally scaled to it's container. [office] Implemented double and heavy underlines and strike through styles. [xlsx] Added missing support for some forms of horizontally merged cells. [office] Many improvements to chart drawing and axis positioning. Version 8.1.0 - November 30th, 2020 #### New Features PAdES Digital Signing is now supported. (using the new function DigitalSignatureField.UseSubFilter) Included electron support for versions 6-10 in the pdfnet-node npm package. MSG conversion using Outlook interop is now supported. # Other Changes Roughly categorized, not an exhaustive list. #### Improvements [pdf] Prevent Optimizer from throwing exceptions on documents with a corrupt destination nametree. [pdf] Improved time of verification output in Digital Signature Validation to better match other PDF solutions. Updated Apryse SDK on Linux to be compatible with older versions of Linux. This change allows Apryse SDK to be compatible with GLIBC 2.9+. (formerly it was compatible with GLIBC 2.17+) [pdf] Will now handle locally served custom webfonts synchronously, automatically using them as a source for font substitutions. [pdf] Performance optimizations for global font caching. Improves font substitution performance on Windows, Linux, and Android. [image] Updated libpng to version 1.6.37. #### Fixes [pdf] Fix for rare divide-by-0 error when blending transparency groups in overprint preview mode. [pdf] More robust treatment of corrupt documents where we are unable to recover any sort of page tree. [office] Fixed an off-by-one error in font coverage ranges, which could lead to poor font selection in isolated cases. [pdf] Initial demo license initialization is now fully thread safe. Previous logic had potential issues when Initialize was called simultaneously from multiple threads. [pdf] Fix for incorrect handling of some text outside of the basic multilingual plane when using ElementReader. [pdf] Match the behaviour of Acrobat reader when handling grayscale images with conflicting ICC and image pixel formats. [pdf] Fix for rendering of images with a black matte when blending edge pixels onto a fully transparent backdrop. [pdf] Improved logic for selecting charmaps from embedded truetype fonts. (in the case when there are multiple viable maps) [pdf] Fixed processing of encoding tables in the case where the font names resemble hex digits. [pdf] Fix for our handling of some JPEG 2000 encoded images where the pixel format in the image has conflicting data. [pdf] Better handling of pre-existing FontConfig configurations on modern Linux systems. [office] Fix for potential incorrect font selection when handling mixed arabic and latin text. [office] Tune substitute font scaling so that we are less likely to end up extreme scaling factors. [office] Better handling of symbolic fonts (eg. wingdings) on systems where we have a poor substitute font selection. [office] Fix for rare crash when processing Excel sheets with text that overflows cell boundaries. [office] Fix for potential crash when handling format strings with particular symbols in the string portion. [office] Better thread safety for internal font metric lookups. [office] Fix for failed doc conversions in some isolated cases where expected parts of the source file are missing. [office] Fix for incorrect scaling of some rotated picture elements. [office] Tuned list indentation for powerpoint files. [pdf] Avoid errors when Optimizing due to direct fonts in the PDF. [pdf] Fixed a memory leak in Digital Signature Verification. This also impacts Secure Timestamping and LTV support since these use Verification. [pdf] Fixed a rare issue where Linearized PDFs could be detected as not linearized. [pdf] Fixed an issue where Digital Signature Verification could disallow certain Long Term Validation updates. [pdf] Fixed issues with Unicode writing ElementWriter APIs in Node.js. [pdf] Updated line annotation appearance generation (used when displaying or creating lines) to better take line dashes into account. Previously the phase would be different than expected. [pdf] When printing the print and hidden annotation flags are now properly taken into account. [pdf] Handle corrupt document where the Annotations entry is not an array in FlattenAnnotations. [pdf] Better handle uncommon fonts with 3 byte charcodes. [svg] Handle corrupt cases where the PDF has graphics state changes in BT/ET blocks for PDF to SVG conversion. [pdf] Updated font Substitution on Apple platforms to handle unicode characters beyond the basic multilingual plane. [xfdf] Fixed a problem where in rare situations extracting XFDF from PDF could produce a document with an incorrect and large font size. [pdf] Long Term Validation support will now update rather than rewriting existing Long Term Validation data. [pdf] Fixed an error with Page.GetBoundingBox which could cause it to malfunction on corrupt documents with mismatched group begin and group end elements within a form. This also had an impact on Page flattening which uses this method. [pdf] Diff.AppendVisualDiff will now better take into account the page rotation and cropping present in the input pages. [xfdf] Simplified the conditions for exporting annotation appearances in XFDF. In particular they will now be included even if that the annotation type is unsupported or certain annotation entries are missing. [pdf] Fix for parsing color from the Default Style (DS) entry. This improves the results after importing certain XFDF files. [pdf] Fixed a memory leak in FilterWriter.WriteBuffer for .Net Core. [xfdf] Fixed a problem where annotations with certain goto actions could fail to match during FDFUpdate. Version 8.0.0 - September 4th, 2020 #### New Features Digital Signature Verification is now out of beta. New APIs for certificates (X509Certificate) and a number of other Digital Signature related classes. Digital Signing support for Embedding Secure Timestamps and Long Term Validation (LTV). Accessibility: built in office conversion now produces tagged PDFs. Added native support for the xls format, rounding out our support of the 6 main "office" formats (docx, pptx, xlsx, doc, ppt, and now xls) Added support for Right-to-left languages within office files. Added options for converting Excel sheets into multiple PDF pages. Added new API for text shaping, enabling support for visually complex scripts (like Thai and Hindi) using elementbuilder. Support for Compressing Monochrome (1 bit per pixel) Images with CCITT Group 4 lossless compression in Optimizer or during PDF image creation. Utility functions to refresh all missing appearances and more easily create custom appearances. (PDFDoc.RefreshAnnotAppearances() and Annot.RefreshAppearance(RefreshOptions)) Support for Option Content Groups/Layers (SetOCGContext) in TextExtractor and TextSearch. Added a new function PDFACompliance.GetDeclaredConformance which can get the conformance level specified in the document. Node.js: added support for TypeScript and Node versions 13 and 14. CAD module: added options to specify background color, color mode, handling of thin lines, and xref search paths. #### Changed Behaviour By default Optimizer will now use CCITT Group 4 compression for monochrome images. This is because the previous default of JBIG2 caused a number of issues due to its lossless nature. The display and appearance generation of Rectangle annotations has been adjusted to be more in line with other applications. It is recommended to test any custom creation or viewing logic for these annotations. The display and appearance generation for FileAttachment annotations has been adjusted to be more in line with other applications. In particular the aspect ratio has been changed for certain icons. It is recommended to test any custom creation logic of these annotations and refer to the FileAttachment class documentation for more information about the new appearance aspect ratios. During PDFViewCtrl.OpenUrlAsync placeholder pages (for those which haven't finished downloading) will now throw an exception if they are edited. Most viewers handle this by disabling these edits during download. TextExtractor and TextSearch now use the default OCG/Layers by default. By default the logic to skip the watermark layer for Text Extraction has been disabled. Changed Field.SetValue() to no longer turn on the current radio button when passing "True" "Off" or "On". The boolean version of SetValue() should be used instead for this. The `Convert.StreamingPDFConversion` API will now throw an exception in the case where it is unable to initialize the conversion (previously returned a null or invalid object # Other Changes Roughly categorized, not an exhaustive list. #### Improvements [pdf] PDFViewCtrl.OpenUrlAsync has been optimized significantly by reducing contention on the document lock. [html] Updated HTML2PDF module on MacOS, since the latest versions of the operating system no longer support 32-bit applications. Node.js builds no longer require a step to install or reference the library on Linux/Mac. [office] Improved .msg office interop conversion. [pdf] Copy over calculation order as appropriate during page import or merge. This is important to keep certain JavaScript actions working. [pdf] Fixed an infinite loop in linearized save when handling corrupt documents with a page-tree cycle. [pdf] Avoid throwing errors when encountering corrupt line operators that have non-number parameters. [xfdf] Support importing appearance image data in Signature Widgets. [pdf] Updated diff logic to reduce exceptions thrown on corrupt documents. [xfdf] Avoid throwing exceptions on XFDF export when encountering corrupt annotation objects. [pdf] Adjusted Optimizer to process existing annotation appearances. This gives a bit more room to reduce the document size in addition to fixing some problems with the subset option. [svg] Adjusted PDF2SVG logic to flatten paths filled with patterns, since these were not previously supported. [pdf] Adjustment to throw out integers that are over implementation limits during parsing. This better matches the behaviour of other PDF consumers. [pdf] The cache file provided to PDFViewCtrl.OpenURLAsync will now be written even if the server doesn't support byte ranges or Content-Length. [xfdf] Improved error handling for corrupt annotations during FDFUpdate. [xod] In error cases where temporary files cannot be opened throw exceptions to the user rather than failing silently. [pdf] Improved logic for rebuilding corrupt documents to better handle indirect length entries. [xfdf] Added repair logic in PDFDoc.FDFUpdate for corrupt Fields that are not in the Acroforms dictionary. This is important to allow the Field value to be updated. [xfdf] Improved identification of changed annotations in PDFDoc.FDFUpdate in order to keep more existing annotation appearances. [pdf] Updated FieldIterator to avoid returning Null objects on corrupt documents that utilize these in the field hierarchy. [pdf] Updated document Resource caching logic to provide much better performance on heavily multithreaded applications. [pdf] Improved error handling in the Node.js interface. [pdf] When importing objects into a new document (for example when merging) avoid throwing an exception if subobjects are corrupt. [xfdf] Added better handling for corrupt annotation Border entries in XFDF export. [pdf] ElementBuilder.CreateTextRunHelper will now just use the input as charcodes for some symbol fonts, since unicode input doesn't make much sense for such fonts. [pdf] Much improved handling of font substitution internal flow, resulting in more accurate matches and better performance. [pdf] Improved the performance of the Windows font substitution backend, making it better at finding Bold and Italic font variants in some situations. [tiff] Add support for extra tiff samples in the case where channels are arranged in a planar configuration. [pdf] More robust handling of (corrupt) files with non-embedded fonts and missing toUnicode maps. [pdf] Improved error messages for failed conversions. [pdf] More robust handling of (technically corrupt) type0 CID fonts with a CIDToGID map. [pdf] Improved pixel-hinting of thin rectangles that partially overlap clipping paths. [pdf] Improved support for extended unicode text (outside of the basic multilingual plane) [tiff] Added support for YCbCr colorspace images. [OCR/CAD] Better error messages from sub-modules [OCR] Improved logic for determining the "native" dpi of an incoming document, and added option to explicitly specify the dpi. [CAD] Now support referenced .gp4 images in CAD files. #### Fixes [pdf] Fixed an occasional crash when flattening annotations on a specific type of file. [pdf] Updated hide action logic to also consider with the noview flag. This fixes actions on an uncommon type of document that relies on this flag. [pdf] Fixed occasional race condition crash when viewing some PDF prime documents. [pdf] Adjusted ContentReplacer to avoid introducing unrelated changes when updating certain PDF files. [xps] If PNG image has an invalid resolution the default DPI is now used in xps to pdf conversion. [xfdf] Fixed a problem on certain files during XFDF export where, in rare cases, annotation properties could be written on the wrong element. [office] Fixed a breakage in excel support through interop. [xfdf] Adjusting appearance rendering logic for stamp annotations during XFDF export to better support pattern transformations. [pdf] Adjusting reflow squiggly underline output to use a wavy underline rather than strikeout. [pdf] Fixed a bug in SDF.NameTree where the tree could be split incorrectly. (and certain values could become inaccessible) [pdf] Fixed a crash in Field.SetValue if called on a corrupt Widget without a connected field. [pdf] Fixed an issue setting the value of certain choice fields. [xfdf] Adjusted support for MaxLen property to use the value in the first Widget, which better matches behaviour in other viewers. [pdf] Fixed a potential crash calling CloseDoc() after there has been an error during download/PDFViewCtrl.OpenUrlAsync. [pdf] Fixed corrupt document repair to ensure that the last object of a given number is used. [pdf] Adding check for badly formed stream objects masquerading as Object Streams to avoid throwing them out on save. [pdf] Fixed a crash in FreeText.RefreshAppearance when encountering an empty DA entry. [xod] Fixed a problem where the first few thumbs would be included when streaming to XOD even if they were turned off. [pdf] Fixed an occasional crash in PDFViewCtrl.OpenUrlAsync, triggered by an early failure in the download process. [image] Fixed a crash when encountering problems in multipage tiff conversion. [xfdf] Fixed a bug where, in rare cases, field values could incorrectly end up with XML escaped output after XFDF import. [xod] Added basic support in XOD conversion for Image Soft Mask Matte entry. [pdf] Fixed an issue where calling ElementWriter.Begin could incorrectly throw an exception on certain types of documents. [pdf] Fixed a problem with image downsampling of annotation appearance streams. Previously these would rarely be downsampled. [xfdf] Fixed a problem with importing/merging fields with complex inheritance structure. [pdf] Fixed DigitalSignatureField.ClearSignature() so it would clear global document state if no signatures remain. [xps] Fixed a problem with extracting the dpi from jpeg or tiff files when they have dots-per-cm units. [html] Dropped the font size limit for html2pdf to work better with the latest macOS and retina displays. [pdf] Added default style parsing for text color in FreeText annotations. This fixes issues with text color when importing from XFDF. [xfdf] Fixed a problem handling corrupt Pages with duplicate annotation ids in PDFDoc.FDFUpdate. [pdf] Text extraction will now properly handle subforms even if a corruption is encountered in them. [pdf] When redacting the logical structure is now erased when to better ensure nothing relevant slips through. [pdf] Fixed a problem handling radio buttons with a non-unicode on state. [xfdf] Added support for Stream values in text fields when exporting XFDF. [pdf/xod] Fixed an issue with flattener where text that was covered by an almost transparent layer before being occluded would be displayed on top. [pdf] Resolved an issue with drawing rectangle annotations with the cloudy style. [bmp] Fix for handling of some transparent .bmp files where the background could remain uninitialized. [pdf] Fixed an issue with our handling of malformed cmaps that could result in bad memory accesses. [viewer] Fix for potential deadlock when calling PDFView.Update() [pdf] Fixed issue with separation blending not working correctly when the page blend space is RGB. [pdf] Fixed potential crash when rendering a softmask with an empty group entry. [pdf] Fixed a rare issue with resolving cmap entries within TrueType fonts that could lead to garbled text rendering. [OCR] Fixed a bug where we would not properly handle escaped backslashes within json input. #### Native Office Fixes and Improvements [office] More accurate reproduction of tinted theme colors [office] Many improvements to embedded font resolving, with powerpoint files seeing the most improvement. [pptx] Can now make use of docx "resource documents" when converting pptx files [office] Improvements to our handling of "tricky" font names that resemble other known fonts. [office] Change default checkbox rendering to use a box, rather than a windgdings glyph. [pptx]Added color override map support for each individual slide, as opposed to just the master and layout slides. [office] Chart improvements: data labels are now better supported, improved legend positioning, allow entries to be deleted from the legend. [docx] More precise handling of text-float overlap and interactions. [pptx] More accurate determination of text line height in powerpoint. [docx] Better resolving of floating content positions in complex documents. [docx] Added support for the "dxa" form of table margins. [docx] More accurate calculation of table row heights. [office] Added basic support for the multiLvlStrRef element in charts. [office] Added preliminary support for some math elements. [office] More robust handling of unsupported graphic data (attempt to use alternate content in more situations) [office] Added support for vertical text within table cells. [office] Added support for tiled image fills. [office] Added support for duotone image recoloring [docx] Added support for repeated table headers, where the header of a table is placed at the top of each page. [office] Now correctly resolve solid fill colors with an inherited "noFill" property. [doc] Fix for handling of .doc tables with mismatched content and column count. [docx] Fix for potential errors in mapping of individual symbol elements. [pptx] Fixed issue with decoding some embedded glyphs. [office] Fixed issues with resolving "auto" background colors in different contexts. [docx] Fix for oversize tables not properly overflowing their parent containers. [docx] Fixed error in treatment of individually set cell margins (under the 'tcMar' element) [docx] Fixed bug with resolving inherited hanging indent values. [docx] Relaxed the rules for placing floating content in footers, rather than skipping it. [office] Fix for bug where text styles were not fully resolved when determining the height of a line break. [xlsx] Fix for a bug where unresolved formatting codes would result in a failed conversion. [office] Now correctly handle vertically merged table cells in tables with the "gridBefore" property [office] Improved support for handling of embedded EMF files. [excel] Fix for our handling of cells with the special number format code "General" [excel] Fix for mishandling of table margins specified within the tblPrEx tag. [excel] Now allow conversion of xlsx sheets with no fonts defined. [docx] Fixed issue where a local "auto" line spacing rule would not properly override a global non-auto spacing. [docx] Now correctly handle NUMPAGES dynamic content within fldSimple elements. [excel] More robust handling of format codes with leading and trailing spaces. [docx] Correctly handle the case where numbered lists should inherit styles from the paragraph run properties. [docx] Fixed a bug where shapes were incorrectly constrained to the bounds of the page area. [pptx] Fix for occasional bad text positioning inside shapes. [pptx] Fixed incorrect cropping of transformed images. [office] Fixed handling of images with a global opacity value. [office] Fixed occasional incorrect handling of isolated symbols (list bullets, for example) [ppt] Fix for incorrect handling of default kerning values for ppt files. [doc] Fix incorrect positioning of grouped shapes within .doc files. [office] Fixed a number of issues with chart axis positioning [doc] Fixed incorrect handling of MS1252 encoded text in doc files. [office] Fixed a crash in pie chart drawing when trying to draw 0-size slices. [office] Fix for mishandling of some format codes with non-ascii values. [docx] Fixed a number of issues with content controls Version 7.1.0 - February 18th, 2020 #### New Features Digital Signature Verification Added support for creation of Viewer Optimized PDF files (PDFDoc.SaveViewerOptimized). Viewers have been updated to take advantage of Viewer Optimized PDF. Added annotation API to read, write and delete custom data. (Annot.SetCustomData, Annot.GetCustomData and Annot.DeleteCustomData). Added the SetRequiredFieldBorderColor() method to PDFView and PDFViewCtrl. Added functions Ink.SetHighlight and Ink.GetHighlight to choose whether the Ink will display like a highlighter. Added ElementWriter.WriteGStateChanges() which can simplify use cases where the intention is to only write the graphics state of an element. Added options for line weight and auto rotation to CADConvertOptions. Added DPI option for to OCROptions. Added built-in support the ppt format, can now view and convert these files to pdf. #### Changed Behaviour .Net Framework builds are now dependent on the Microsoft Visual C++ Redistributable Packages for Visual Studio 2013 rather than the Microsoft Visual C++ 2010 Redistributable. Digital Signatures will now be signed with SHA256. (previously SHA1). Ink.SetBlendMode and Ink.GetBlendMode functions have been deprecated. Customers are encouraged to use `Ink.SetHighlight` and `Ink.GetHighlight` instead, as they are more aligned with the PDF specification, and offer greater compatibility with other PDF readers, such as Adobe Acrobat. # Other Changes Roughly categorized, not an exhaustive list. #### Improvements [pdf] Page labels are now included when converting PDF -> EPUB [pdf] When generating appearances for Widgets, only use a font if it can represent all of the glyphs that are meant to be drawn in the widget. [pdf] Adjusted XFDF import of Widgets to not be dependent on the position of elements within the XFDF document. [xod] Added logic to upsample the smaller of the soft mask or associated image when converting to XPS/XOD. This allows us to export the entire image as RGBA, which greatly improves rendering performance and memory usage. [pdf] Updated Annot.Flatten and ElementBuilder.CreateForm to have complete support for nozoom, norotate and sticky note annotations. [pdf] Improved FieldIterator support for invalid/null/free Field entries. [pdf] Updated FDFUpdate to be less strict about certain differences in the XFDF. This allows it to maintain original annotation appearances more often. [pdf] Added support for multi-select list boxes when exporting and importing XFDF. [xod] Added an option for image smoothing in XOD. This is important to allow XOD to exactly match PDF rendering. [pdf] FileAttachment annotations can now be imported from XFDF. [pdf] Can now initialize the SDK with a full license key after initializing with an empty key within the same session. [xps|office] Optimization for finding the zip signature in damaged zip files/non-zip files. About 1000 times faster for these cases. [office] Added support for balanced column layouts. [office] Added support for images with the 3D camera rotation properties. [office] Added support for embedded hyperlinks, they are not converted to the equivalent PDF annotation. [office] Added support for clipping content within text box and table cell. [xlsx] Added support for diagonal cell decorations. [office] Added support for extended cell border styles. [xlsx] Improved memory usage for sheets with large numbers of columns and/or rows #### Fixes [pdf] Fixed a potential crash when importing XFDF Widgets. [pdf] Fixed a potential race condition when running PDF/A conversion in multiple threads. [pdf] Fixed a crash exporting XFDF on very specific PDF files. [pdf] More lenient handling of oddly formed floating point numbers. [pdf] Fix for issue where importing PDF pages was not pulling in OCG layers used only in annotations. [pdf] Fixed issue where we could incorrectly identify large glyph indices as UTF16 surrogates. [pdf] Improved internal unicode data paths to fully support codepoints off the Basic MultiLingual Plane. [pdf] Work around Java string behaviour where an added null terminator could make the string not equal. [xod] Adjusted XOD flattening and rendering logic to handle the case where special blend modes are used within transparency groups. Necessary because these cases cannot be easily represented in xod/xps. [pdf] Fix for potential performance issue when skipping a lot of nulls at the end of a file. [pdf] Fixed XFDF import error, where if an arrow had the xml attribute "end" before "start" the points could be switched around. [pdf] Avoided exception from being thrown in XFDF export when encountering zero length action arrays. [pdf] Sanitizing metadata strings in PDF/A to avoid erroneously reporting errors when there are trailing nulls. [pdf] Fixed a problem in TextExtraction where e_remove_hidden_text would malfunction when the page is rotated. [pdf] Fixed a problem in TextExtraction where fully clipped text was not actually skipped. [pdf] Fixed a bug in RemoveAppearance where it wouldn't do anything without an appearance state dictionary. This means it would fail for all common annotation types. [xod] Annotations appearances are now always included even if the annotation is hidden, so they can be shown by consumers (like WebViewer) when the setting is changed. [pdf] Adjusted stamp appearance exporting logic in XFDF to take page rotation into account. This is important to avoid losing image quality when importing and exporting. [pdf] Added repair logic for corrupt PDF documents with multiple Field objects with the same name. This is only applied when NeedAppearances = true. [pdf] Fixed problem with importing XFDF destinations where some values are treated as default. [pdf] Adding logic to remove unused popups when importing XFDF. This could appear as extra invisible annotations in certain viewers. [pdf] Adjusted hint stream writing for linearized save to align bytes between sections for embedded thumbnail data. [pdf] THead, TBody, TFoot are mapped to nonstruct when converting to PDFA-1. Previously conversion of files containing these would not pass validation for other vendors. [pdf] Flattener public API could watermark even if a user had the permission. Now properly handles license permission. [pdf] Fixed XFDF Widget Import issues that would typically lead to an exception being thrown. [html|epub] Fixed bug where under certain circumstances the same HTML element with the same ID could be injected (malformed HTML). [xod] Fixed a problem in PDF to encrypted XOD conversion where the appearance file could be inaccessible from WebViewer. [pdf] Sorted out a problem where certain corrupt PDF files would throw exception on Linearized save. [pdf] Added support for non-integer intensity for cloudy annotations. [pdf] Fix some cases where we would not properly render field highlights with no appearance. [pdf] Fix a rare issue with viewer render tiles not being invalidated correctly. [pdfview] Fixed an issue where goto actions could scroll the view away from the destination page. [pdf] Fixed an issue where temp files would potentially not get cleaned up after XOD creation. [pdfview, c++] Fix for potential crash when rendering annotations with 1-pixel bounding boxes. [pdfview, c++] Fixed a bug that could cause a refresh loop in some cases involving annotations with the nozoom flag set. [pdfview, c++] Fix for annotation edit control not updating correctly on zoom + pan of the document. [pdf] Added support for the "Matte" softmask property. [pdf] Handle the case where a DeviceN CS is specified as being an NChannel subtype, but is missing the Colorants array. [pdf] Fix for isolated cases where the stroke and fill for a softmask should be obtained from the parent context. [pdf] Fix for rare crash when rendering content with constant alpha value of 0. [pdf] No longer render fileattachment annotations when there is no icon set. [OCR] Improved handling of scaling with rotated pages. [pdf] Improved internal unicode data paths to fully support codepoints off the Basic MultiLingual Plane [pdf] Fix for rare errors when expanding CCIT encoded images on linux. [pdf] Improved handling of the "All" separation in some cases when rendering in overprint preview mode. [pdf] Fix for bad text extraction in some cases where isolated vertical text lines could improperly change our treatment of the page. [CAD] Will now determine the ideal page size automatically in more cases. [CAD] Better reporting of error conditions. [CAD] PDFs converted from DWG files now convert the page labels. [pdf] Improved handling of ttc font files. More complete enumeration of fonts within the collection. [pdf] More robust font substitution when dealing with edge cases and non-typical font name formatting. [pdfview, c++] Fix for unresponsive behaviour when progressive rendering is disabled. [pdfview] Fixed case where GetAnnotationAt() could return incorrect results when handling highlight annotations with multiple quads. [pdf] Fix for slight over-clipping of curved shapes which are flush with the edge of a clipping path. [pdf] Fix for handling of linearized saves when the Undo/Redo manager is in use. [pdf] When using ElementBuilder, now correctly generate CID fonts containing glyphs for codepoints outside the basic Mulilingual Plane. #### Office Fixes [docx] Improved support for positional tabs. [office] Better support for fonts with non-standard name formatting. [office] Improved support for incomplete embedded fonts. [office] Improved support for symbol fonts. [office] Improved support for bullet list with custom bullets. [docx] Improved support for east Asian text placement, in particular when grid placement is enabled. [xlsx] Fixed bug where certain equations within conditional formatting rules would not be evaluated. [docx] Fix for smart art with nested text rotations exceeding 360 degrees. [docx] Make use of AlternateContent->fallback content in the case where the primary content cannot be used. [docx] A number of fixes for positioning of floating elements within table cells. [docx] Improvements to the placement of floating elements anchored to paragraphs. [office] Fixes for positioning of floating tables. [office] A number of fixes for positioning of floating content in multi-column layouts. [office] Improved support for change tracking. Now support style-only changes, changes within bullet lists, and multiple-user changes. [docx] Improved handling of first-line indentation in a number of situations. [xlsx] Added support for the ISBLANK function. [pptx, docx] Many refinements to spacing of vertical placement of text lines, both within and between paragraphs. [xlsx] A number of improvements to placement of chart labels, data, and axes. [xlsx] Fixed case where empty sheets could cause us to ignore other non-empty sheets in the document. [xlsx] Now handle "automatic" cell coloring correctly. [docx] Corrected conversion of form checkboxes. [pptx] Fixed bug that could apply the default text style to empty lines in some cases. [xlsx] Correctly handle the case where the font list has no "count" attribute. [xlsx] Multiple improvements to date and number formatting. [office] Improved handling of fonts that have a negative line gap (like Courier New). [docx] More precise handling of text positioning around floating elements. [office] More robust font subsitution handling with text containing unusual whitespace codepoints. [office] Fix for incorrectly adding an outline to text with the draw_outline attribute set to 0. [docx] Fix for infrequent table layout error that could sometimes skip table rows when breaking across pages. [docx] Corrected placement of some headers and footers on even pages. [docx] Fix for occasionally placing an empty row at the end of a page when splitting tables across pages. [xlsx] Fix for skipping cell borders in isolated cases involving horizontally merged cells. [xlsx] Ensure that the page size is sufficient to contain all drawings and charts. [xlsx] Fix for incorrect handling of some unicode elements in format strings. [doc] Fixed bug that resulted in incorrect enumeration of section properties. Version 7.0.1 - August 20th, 2019 #### New Features Added utility functions to ComboBoxWidget and ListBoxWidget which simplify reading and editing options. (GetOptions(), ReplaceOptions() and RemoveOption()) # Other Changes Roughly categorized, not an exhaustive list. #### Robustness [xod] Better support corrupt PDF content streams with mismatched BT and ET entries. [xps] Fixed a potential crash when reading JPEG XR files on non-windows platforms. [pdf] Fixed an issue with PDFViewCtrl.OpenURL error handling when losing internet connection while download is in progress. #### Improvements [pdf] Adjusted ElementBuilder.CreateRect to support input rectangles that are not normalized. [xps] Added basic detection for proprietary PhotoShop headers that impact jpeg scaling in XPS files. #### Bugfixes [pdf] Adjusted XFDF import for Form Fields to properly construct missing fields and appearances. [pdf] Fixed a problem with DigitalSignatureField.GetDocumentPermissions. [pdf] Fixed filled Polyline rendering when there are line beginning/ending styles. [pdf] Fixed a problem where per page XFDF export would sometimes not include all of the field attributes. [xod] Fixed an uncommon issue where some completely masked graphics would be visible after ToXod conversion. Version 7.0.0 - July 25th, 2019 #### New Features CAD conversion module and API (`Convert.FromCad`) OCR module and API (`OCRModule` class) Updated API for Digital Signature creation (`DigitalSignatureField` and `DigitalSignatureIterator` classes). Programmatic, low-level Undo/Redo API. (`UndoManager`, `ResultSnapshot` and `DocSnapshot` classes) Added an in-memory interface for rendering individual separations. (`PDFDraw.GetSeparationBitmaps `and `PDFRasterizer.RasterizeSeparations`). Added extra modes to geometry snapping: snap to point on line, snap to midpoint, and snap to line intersection. Added Widget functions to Set/Get Text Color, Font and Font Size. New Widget API for form field creation/access. (`TextWidget`, `CheckBoxWidget`, `RadioButtonWidget`, `RadioButtonGroup`, `PushButtonWidget`, `SignatureWidget`, `ListBoxWidget` and `ComboBoxWidget` classes). Added an API allowing sound annotations to be created from raw sound data. (`Sound.CreateWithData`). New method for easily rotating an annotations appearance by an arbitrary angle. #### Changed Behaviour ToXod default options have been changed. The XOD default setting for flattening is now `e_high_quality` (previously `e_fast`) and the default setting for line thickening is false. (previously true). The HTML2PDF module is now included as part of desktop release packages. Unused ConnectToCloud API was removed. The GDI+ Rasterizer has been marked as deprecated and will be removed in a future version of PDFNet. # Other Changes Roughly categorized, not an exhaustive list. #### Robustness [pdf] Improved error handling when processing JPEG 2000 files. [pdf] Handle separation names that are not valid Unicode. [pdf] Better recover from errors in initial document loading when JavaScript is enabled. [pdf] Fixed a problem where particular JBig2 files could not be completely read. [pdf] Better handle corrupt documents consisting of two PDFs stitched together. [pdf] More robust handling of temp files and directories with unexpected permissions. [xod] Now limit the number of pattern usages before flattening will occur. This is needed to avoid frequently used simple patterns from making very complicated output files. [pdf] Updated `ElementWriter` to better support editing of any existing PDF file when used in conjunction with `ElementReader`. (`ElementWriter.SetDefaultGState` and updated `ElementWriter.Begin`). #### Improvements [pdf] Updated XFDF import to support importing Form Fields, Links and File Attachments. [pdf] Output the "All" separation when in separation export mode. [xod] Added elements to XOD files to support faux bold (stroked and filled text). [pdf] Added better handling for zero-area filled paths. [pdf] Improved redaction annotation rendering to support custom attributes used in Acrobat. [pdf] Support encrypting files with no user password using AES 256. [pdf] Adjusted `RefreshAppearance` for Radio Buttons to produce output similar to other PDF viewers. [xod] Adjusted logic so if flattening is not disabled that pages with Knockout or Isolated Transparency groups are flattened. [pdf] Updated logic so that the level passed to `PDFNet.SetDefaultFlateCompressionLevel()` will be respected even for image compression. (where the maximum compression setting would generally be used). [pdf] Added support for soft masks in PNG and TIFF image export. [pdf] Added a dropdown indicator for combo boxes. [pdf] Now automatically support arbitrary rotations of rubberstamp annotations. #### Optimizations [pdf] More efficient handling of empty transparency groups. [pdf] Improved performance of `SetDoc` in `PDFview` by asynchronously reading page info. [pdf] Lowered memory usage when incrementally saving to stream. [pdf] Optimized reading from a file that has been edited. [pdf] Optimized parsing of PDF documents with large amounts of whitespace. #### Bugfixes [pdf] Fixed a bug where `IsModified` can return true after a save when undo redo is used. [pdf] Fixed bug where we would fail to save to documents with malformed "Rights enable" dictionaries. [pdf] Fixed a bug where we would sometimes mishandle softmasks smaller than their containing group. [pdf] Fixed bug where disabling annotation rendering in the viewer would not disable it in thumbnails. [pdf] Fix bug in .Net wrapper where exceptions thrown in the `PDFDoc` constructor could crash. #### Office [xlsx] Added support for "sparkline" charts in xlsx files. [xlsx] Added support for the NPER (number of periods) financial function. [docx] Now correctly display change-tracked content. [xlsx] Now correctly display drawings in sheets that are outside the table bounds. [docx] Better support for text frame elements in .docx files. [xlsx] Added support for inline strings within table cells. [xlsx] Improved behaviour when text within a cell exceeds the horizontal cell bounds. [docx] Improved positioning of some forms of rotated images. [xlsx] Improved positioning of some forms of rotated images. [pptx] Slightly improved handling of text effects. [xlsx] Improved positioning category axis legends. [docx/pptx] More robust handling of symbol encoded text runs. [office] Better handling of oddly named fonts, where the style is part of the name Older Changelogs