PDFNet SDK for C++ Changelog

What's new in PDFNet SDK for C++ 10.9.0

May 2, 2024
  • 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.

New in PDFNet SDK for C++ 10.8.0 (Mar 21, 2024)

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

New in PDFNet SDK for C++ 10.6.0 (Dec 8, 2023)

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

New in PDFNet SDK for C++ 10.5.0 (Oct 26, 2023)

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

New in PDFNet SDK for C++ 10.2.0 (Jun 22, 2023)

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

New in PDFNet SDK for C++ 10.1.0 (May 10, 2023)

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

New in PDFNet SDK for C++ 10.0.0 (Mar 29, 2023)

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

New in PDFNet SDK for C++ 9.5.0 (Feb 17, 2023)

  • 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.ExtractToXSLX())
  • 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.

New in PDFNet SDK for C++ 9.4.2 (Dec 20, 2022)

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

New in PDFNet SDK for C++ 9.4.0 (Oct 11, 2022)

  • 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 provide a smaller set of possible permissions. 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.

New in PDFNet SDK for C++ 9.3.0 (Jul 6, 2022)

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

New in PDFNet SDK for C++ 9.2.0 (Jan 28, 2022)

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

New in PDFNet SDK for C++ 9.1.0 (Aug 25, 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:
  • PDFTron 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 PDFTron 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.

New in PDFNet SDK for C++ 9.0.0 (Apr 14, 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 PDFTron 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 PDFTron 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.

New in PDFNet SDK for C++ 8.1.0 (Dec 1, 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 PDFTron SDK on Linux to be compatible with older versions of Linux. This change allows PDFTron 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.

New in PDFNet SDK for C++ 8.0.0 (Sep 9, 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
  • 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

New in PDFNet SDK for C++ 7.1.0 (Feb 19, 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 logic to detect and flatten transparency groups containing blend modes. This is because XOD support for these groups works differently than PDF groups.
  • [xod] Adjusted XOD flattening and rendering logic to handle the case where special blend modes are used within transparency groups. This is 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 treatmetn 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.
  • [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.

New in PDFNet SDK for C++ 7.0.0 (Jul 26, 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

New in PDFNet SDK for C++ 6.10.0 (Mar 5, 2019)

  • New Features:
  • PDF Compare/Diff API (PDFDoc.appendVisualDiff)
  • Snap to Geometry API (in PDF Viewers)
  • Improvements and Bugfixes:
  • Updated XFDF export/import to better support Measure Tools, Redaction Annotations and Form Field Tooltips.
  • Support for file sizes greater than 4gb on 32 bit platforms.
  • Many improvements and fixes to Office to PDF conversion outputs.
  • Reduced memory usage during parsing and rendering.
  • Reduced the number of unnecessary resources pulled in by page import.
  • Improvements to font substitution logic.
  • Better handling for corrupt documents, especially corrupted streams.
  • Many other miscellaneous bug fixes.

New in PDFNet SDK for C++ 6.9.0 (Nov 6, 2018)

  • New Features:
  • PDFA Validation and Conversion have been overhauled to provide output much more compatible with VeraPDF and the PDF/A specifications/technical notes.
  • XOD files are generated with built-in annotation appearance streams. This allows WebViewer 4.0+ to render annotations containing these streams as they appear in other PDF viewers.
  • Added an option to PDFViewCtrl.OpenUrl which will restrict download usage. This is largely to reduce data usage/bandwidth, but can also be used for security reasons.
  • Added the Convert::streamingPDFConversion method, for page-by-page streaming conversion of many file types to PDF.
  • Improvements and Bug fixes:
  • Performance improvements for documents that have been opened directly from memory.
  • More accurate bounding boxes for many annotation types
  • Rendering accuracy improvements for nested transparency groups.
  • Greatly reduced memory usage when converting XLSX to PDF.
  • Lots of improvements and fixes to Office to PDF conversion outputs.
  • More robust: improved handling of badly formed xref tables, page trees, fonts and file streams.
  • Opacity support for fileattachment annotations.
  • Many other miscellaneous bug fixes.

New in PDFNet SDK for C++ 6.8.0 (Sep 17, 2018)

  • New Features:
  • Built-in XLSX-to-PDF conversion support.
  • Export to individual separations using PDFDraw.
  • PDF documents can now be secured using PDF 2.0 AES256 Encryption.
  • Expanded UTF8 encoding for PDF 2.0.
  • Improved support for many annotation properties in the XFDF specification.
  • PDF.Convert can now convert markdown files to PDF
  • PDFDraw now supports very high resolution output via tiled rendering.
  • PDFDoc.FDFUpdate(fdfdoc) which will intelligently update the annotations in the PDF with those in the FDF document. In particular it does this in a manner that will minimize the modifications to the PDF. This can be used to sync the PDF document with the annotation state exported from WebViewer and incrementally save any annotation changes.
  • Text highlight annotations are now more aesthetically pleasing.
  • Performance Improvements:
  • Overprint preview handling has been optimized.
  • Linearized save on documents with many pages is now significantly faster.
  • Added caching for high-dimensional sampled functions and complex Postscript functions -- rendering speed improved by 5x on some documents.
  • Greatly improved speed and memory usage while converting text files to PDF.
  • Conversion from CalRGB to device colorspaces is now more than 2x faster.
  • Repeated calls to PDF.GetPage are now much faster, particularly for documents with many pages.
  • Bugfixes:
  • Lots of improvements and fixes to Office to PDF conversion outputs.
  • More robust handling of corrupt documents.
  • Improved stability when used in an interactive environment.
  • Many other miscellaneous bug fixes.

New in PDFNet SDK for C++ 6.2.0 (Mar 15, 2014)

  • PDFDoc and SDFDoc can now incrementally save to Filter and memory outputs.
  • Improved PDF/A validation and conversion.
  • Persistent thumbnail disk caching and embedded thumbnail support in viewers (via SetupThumbnails() ).
  • New SetJPGQuality setting for PDF2XOD, PDF2HTML, PDF2EPUB and PDF Flattener. This allows for finer grained control over compression quality of JPG images.
  • Important bug fixes and incremental improvements.
  • WinRT (PDFNet for Windows Store apps) Specific:
  • Improved rendering quality on high resolution devices.
  • A new sample app called CompleReader which showcases a full featured PDF viewer.
  • A set of new controls are now part of the Tools, in the pdftron.PDF.Tools.Controls namespace. These can be all be viewed from the Controls button on the left side of the top AppBar in the PDFViewCtrlDemo app. The source code for these controls are public and can be customized as required. The controls include:
  • An AnnotationList showing all annotations in a click-able list.
  • An AnnotationToolbar for working with the various annotation creation tools.
  • An outline (bookmarks view) of the document with click-able links.
  • A ThumbnailSlider which lets you quickly find the page your are looking for.
  • A TextHighlighter control that highlight every occurrence of a text string in the PDFViewCtrl.
  • A signature tool is now included that can add a signature anywhere to a page. Signatures can also be saved for future use.
  • New Filter classes which simplifies I/O operations with PDFNet. These new Filter classes wrap commonly used WinRT streams like InputStream and IRandomAccessStream so it is now possible to work with all of PDFNet I/O operations in WinRT.
  • A new RecentlyUsedCache is added. It works with the PDFViewCtrl to keep a thumbnail of page 1 of any opened document up to date.
  • New PDFNetException class which allows more descriptive error messages(see Getting Started).
  • Fix for printing documents with highlight annotations.
  • Fix for the ScrollBar offset inside the PDFViewCtrl.
  • Saving a document has changed so that a read lock is acquired by the save function. You should no longer lock around any call to SaveAsync.
  • New APIs. Please see documentation for details:
  • pdftron.PDFNet.SetPersistentCachePath
  • pdftron.Common.PDFNetException
  • pdftron.Common.RecentlyUsedCache
  • pdftron.FDF.FDFDoc.CreateFromXFDFAsync
  • pdftron.FDF.FDFDoc.SaveAsync
  • pdftron.FDF.FDFDoc.SaveAsXFDFAsync
  • pdftron.Filters.InputStreamFilter
  • pdftron.Filters.OutputStreamFilter
  • pdftron.Filters.ProgressFilter
  • pdftron.Filters.RandomAccessStreamFilter
  • pdftron.PDF.Convert.ToXodAsync
  • pdftron.PDF.Convert.ToXpsAsync
  • pdftron.PDF.PDFDraw.ExportAsync
  • Changed APIs:
  • pdftron.FDF.FDFDoc.FDFDoc
  • pdftron.PDF.PDFDoc.PDFDoc
  • pdftron.SDF.SDFDoc.SDFDoc
  • pdftron.PDF.PDFViewCtrl.SetupThumbnails
  • New Types and Methods in PDFNet Core API:
  • pdftron.Common.RecentlyUsedCache
  • pdftron.PDFNet.SetPersistentCachePath
  • pdftron.PDF.Convert.XODOutputOptions.SetJPGQuality
  • pdftron.PDF.Convert.SVGOutputOptions.SetJPGQuality
  • pdftron.PDF.Flattener.SetJPGQuality
  • pdftron.PDF.PDFView.ClearThumbCache
  • pdftron.PDF.PDFView.GetThumbInCacheSize
  • pdftron.PDF.PDFView.GetThumbInCache
  • pdftron.PDF.PDFView.CancelAllThumbRequests
  • pdftron.PDF.PDFViewCtrl.ClearThumbCache
  • pdftron.PDF.PDFViewCtrl.CancelAllThumbRequests
  • Chaged Types and Methods in PDFNet Core API:
  • pdftron.PDFNet.SetTempPath
  • pdftron.PDF.PDFView.SetupThumbnails
  • pdftron.PDF.PDFViewCtrl.SetupThumbnails
  • Other Changes:
  • Documents converted to XOD will have improved support for form actions when viewed in WebViewer 1.7 and above. Note that text selection and links in newly converted XOD documents will not work with WebViewer versions below 1.7.
  • Importing links from XFDF is currently not supported.

New in PDFNet SDK for C++ 6.1.0 (Dec 2, 2013)

  • Significant improvements to rendering performance for image heavy documents. The rendering pipeline now uses SIMD processing and multithreaded execution to speed up image loading and rendering.
  • Includes source-code for annotations and other tools. The availability of source code (with WPF, iOS, Android, WinRT, WP8 SDK) allows for customizations and fine grained control to every aspect of user experience that was previously not possible. The code can also be used as a template to build new tools.
  • Additional annotation tools in iOS, Android, WinRT.
  • Support for multimedia/video annotations (i.e. RichMedia). For more information, please see our blog.
  • A new sample annotation tool showing how to apply a digital signature to a signature field.
  • PDF to HTML converter (pdftron.PDF.Convert.ToHtml()) can now produce lightweight HTML output that loads faster and allows for better text search/selection. The option can be enabled using 'SimplifyText' in HTMLOutputOptions. For more info, please 'PDF to HTML conversion' in our blog.
  • Simplified document signing with built-in SignatureHandler. By using PDFDoc.AddStdSignatureHandler, it is now possible to sign PDF documents without depending on third party cryptographic libraries. See DigitalSignaturesTest for example how to sign PDF documents with or without third party cryptographic libraries.
  • mproved PDF/A validation and conversion.
  • Ability to include custom headers when streaming and viewing a PDF document via 'PDFVIewCtrl.OpenUrlAsync()'.
  • ContentReplacer can search and replace strings on a PDF page with user defined patterns.
  • Important bug fixes and incremental improvements.

New in PDFNet SDK for C++ 6.0.1 (Aug 31, 2013)

  • Faster interactive PDF rendering. Performance improvements are especially noticeable when zooming and panning complex documents: blue-prints, CAD drawings, and large pre-press files.
  • Support for per document multithreading. Previously PDFNet supported concurrent access to multiple documents; however as of V6 multiple threads can access the same document. For example, one could use PDFDraw to distribute rendering of PDF pages from a single document across many cores rather than processing them in a serial fashion.
  • High-quality PDF to HTML and PDF to EPUB conversion (pdftron.PDF.Convert.ToHtml() and pdftron.PDF.Convert.ToEpub()). The new conversion options are available on a pay-as-you-go model as part of PDFTron Web Services or based on an OEM license. If you are looking for a command-line utility, the same functionality is available as part of DocPub CLI.
  • PDF Flattener ('pdftron.PDF.Flattener') is a new optional add-on that can be used to optimize PDF for fast viewing on mobile devices. Flattener can simplify page content (e.g. flattening complex graphics into images) while maintaining vector text whenever possible. For an example of how to use Flattener, please take a look at the second code example in the updated Optimizer sample project. Flattener is licensable on an OEM basis or on a pay-as-you-go model as part of PDFTron Web Services. If you are looking for a command-line utility, the same functionality is available as part of DocPub CLI.
  • Improved export & import of annotations and forms via XFDF/FDF. Besides support for new annotation types and properties, users can now load and save XFDF from a string.
  • PDFViewCtrl can now download remote PDF documents asynchronously using OpenURLAsync(). If PDF documents are linearized, pages can be downloaded and viewed in random access order - without the need to download the entire document. For an example of how to use OpenURLAsync(), please see updated PDFViewWPF/PDFView sample in .NET and PDFViewSimple in C++ SDK.
  • PDFViewCtrl and PDFView can now search for text asynchronously using FindTextAsync () without blocking the UI.
  • PDFViewCtrl can now automatically recognize URL links and email addresses without presence of explicit link annotations. For more info, please see PDFViewCtrl.SetUrlExtraction() and GetLinkAt().
  • Smart Zoom. The new option in PDFViewCtrl allows user to automatically zoom on a selected piece of content. The feature is especially useful in apps targeting hand-held devices (e.g. Double-tap on a column of text, and PDFViewCtrl will zoom and fit the column making maximum use of your screen and avoiding unnecessary zooming via pinching).
  • ElementEdit sample was rewritten to show how to edit arbitrary PDF files.
  • 'GettingStarted.html' was added to help developers get started with the library and to answer frequently asked questions related to PDFNet integration and deployment.
  • Support for Visual Studio 2012. PDFNet SDK now offers samples which can be opened and compiled using Visual Studio 2012.
  • Numerous bug fixes and incremental improvements.
  • New Types and Methods in PDFNet Core API:
  • UString FDFDoc.SaveAsXFDF
  • ElementReader.AppendResource
  • Field.GetOptCount
  • Field.GetOpt
  • PDF.Flattener class
  • PDF.LinkInfo class
  • PDFDoc.LockRead
  • PDFDoc.UnlockRead
  • PDFDoc.TryLockRead
  • PDFDoc.TimedLockRead
  • PDFNet.CloudErrorCode enum
  • PDFNet.ConnectToCloud
  • PDFNet.SetViewerCache
  • PDFRasterizer.DownloadedType enum
  • PDFRasterizer.DownloadReportHandler
  • PDFView.SetUrlExtraction
  • PDFView.GetLinkAt
  • PDFView.SetViewerCache
  • PDFView.SetPageRefViewMode
  • PDFView.GetPageRefViewMode
  • PDFView.SetupThumbnails
  • PDFView.ThumbAsyncHandler
  • PDFView.GetThumbAsync
  • PDFView.FindTextAsyncHandler
  • PDFView.SetFindTextHandler
  • PDFView.FindTextAsync
  • PDFView.SmartZoom
  • PDFViewCtrl.SmartZoom
  • PDFViewCtrl.SetUrlExtraction
  • PDFViewCtrl.GetLinkAt
  • PDFViewCtrl.Select
  • PDFViewCtrl.SetDownloadReportHandler
  • PDFViewCtrl.OpenURLAsync
  • PDFViewCtrl.SetupThumbnails
  • PDFViewCtrl.ThumbAsyncHandler
  • PDFViewCtrl.GetThumbAsync
  • PDFViewCtrl.FindTextAsyncHandler
  • PDFViewCtrl.SetFindTextHandler
  • PDFViewCtrl.FindTextAsync
  • Obj.IsValid
  • SDFDoc.LockRead
  • SDFDoc.UnlockRead
  • SDFDoc.TryLockRead
  • SDFDoc.TimedLockRead