Some test text!

Hamburger Icon

Ruby / Changelog / v9.2

Version 9.2.0 Changelog (January 27th, 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 de-skew 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 Apryse 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.
  • Convert.ToWord now uses the Structured Output Module, which will need to be installed in place of the deprecated PDF2Word module.
  • 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.


  • [java] Apryse SDK for Java is now available as a Maven package.
  • [pdf] Added support for generating more complicated FreeText appearances including those with rich-text.
  • [xfdf] Added support for sound annotations in xfdf export and import in a way that is largely compatible with other PDF processors.
  • [pdf] Optimized text widget appearance generation for the case where there is a significant amount of text that will not be visible.
  • [all] Optimized PWS logic significantly. This is only relevant for cases where a demo key or pay-as-you-go key is utilized.
  • [.net] Added support for .NET 6.
  • [.net] Added support for .NET Standard 2.0.
  • [xfdf] Significantly optimized xfdf export.
  • [xod] Added better error handling in PDF to XOD conversion for certain corrupt images.
  • [pdf] Improved PDF/A conversion to change some unsupported colorspaces thereby removing associated validation errors.
  • [pdf] Improved PDF/A Conversion's ability to remove notdef glyph usage, removing associated validation errors.
  • [pdf] Improved Text Extraction logic that handles de-hyphentation.
  • [pdf] Text Diff output now includes placeholder highlights to indicate position of deletion/insertion of lines/characters.
  • [pdf] Text Diff output now includes annotation metadata including a unique id and what type of operation occurred. (insert, delete or edit)
  • [pdf] Text Diff highlight difference areas are now cleaner.
  • [html] Applied significant performance optimizations for Reflow, up to 60% in some cases.
  • [html] Improved the overall quality of Reflow output including table flow and viewpoint metadata.
  • [html] Added viewpoint metadata tag and 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.


  • [office] Identified and fixed 31 rare potential crash bugs revealed by large scale stability testing.
  • [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.
  • [office] More robust handling of many non-fatal document construction issues. 14 new cases now produce a result instead of generating an exception.
  • [office] Fixed a minor memory leak associated with generating structured PDF output.
  • [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] Fixed memory leak in binary xls conversion.
  • [emf] Fixed a potential memory leak in EMF->PDF conversion.
  • [office] Fix potential crash when a table's top cell margin was unspecified.

Office Fidelity

  • Removed extra cell whitespace accompanying nested tables.
  • More precise calculation of custom cell widths, taking into account a hidden 5 pixel padding factor.
  • Fix incorrect unicode determination in some cases where a single glyph could map to many codepoints.
  • Implemented proper reading of complex blipFill and Pib shape options in binary office formats.
  • Fixed formatting of elapsed time values.
  • Now correctly adjust the Excel sheet size to account for the defined print area.
  • Fixed centering for overwidth tables in Word documents.
  • Added support for images with arbitrary (non-rectangular) clipping boundaries in Powerpoint documents.
  • Fixed a shape drawing artifact occasionally created by incorrect winding rules.
  • Added support for chart trendlines.
  • Added support for custom chart and legend borders.
  • Fixed issue with incorrect axis mapping in some binary xls files.
  • Fixed bug where balanced columns could be applied to inappropriate section break types.
  • Now correctly read and use the offset for text runs (used for drop caps, for example).
  • Improved table padding and margin calculations.
  • Improved height calculation for empty lines in Word documents.
  • Improved calculation of contextually sensitive inter-paragraph spacing.
  • Fixed case where an indent could be incorrectly applied mid paragraph after page breaks.
  • Improved the vertical positioning of paragraph-relative floating content anchors.
  • Fixed bug with incorrect default grid drawing when splitting Excel sheets into multiple pages.
  • Do not take hidden rows into account when determining page size in Excel documents.
  • Added support for the new AlternateContent options within an anchor's positionV property.
  • Fixed cropping of hanging text inside a shape text box.
  • Added handling for some older variants of embedded wmf files.
  • Fixed positioning of oversized inline images.
  • Fixed default values of checkBox/checked and checkBox/default elements.
  • Improved rendering of some unusually formatted dates and timezones.
  • Better handling of some pathological cases for drawing sizes in Excel documents.
  • Fixed an issue with text rotation in a shape group.
  • Now correctly hide deleted images when tracking turned off.
  • Added proper handling of empty solidFill tags.
  • Fixed multiple issues with dual axis charts.
  • Now correctly handle setting category values for non-contiguous category axes.
  • Fixed issues with table alignment for binary .doc conversions.
  • Adjusted application of the SpaceBefore property when the leading paragraph on a page is within a table cell.
  • Added support for cases where drawing elements are the direct child of a paragraph.
  • Extra vertical border spacing now only applied to the first and last paragraph in a series of paragraphs with identical border settings.
  • Fixed handling of data binding where the target sdtContent element has multiple children.
  • Fixed handling of Excel cells with no specified row attribute.
  • Fixed an issue with custom formatting for zero in Excel documents.
  • Now correctly clamp character scaling to between 1 and 600.
  • Added support for Swiss locales.
  • Correctly take Excel formula results into account when determining sheet dimensions, even when the formula result is empty.
  • Improved handling of the 'auto' table width type.
  • Fixed invalid handling of negative text positions for emf files.
  • Fixed bug where the 'DisplayChangeTracking' option was not respected within headers and footers.
  • Improved handling of text in the trailing line of a table cell.
  • Fixed a bug with handling of the 'IF' field condition.
  • Added support for the DISPLAYBARCODE field.
  • Much improved handling of Excel headers and footers.
  • Added support for a reversed X axis in scatter charts.
  • Fixed bug with "General" formatted long exponential numbers in Excel documents.
  • Fixed chart rendering when inner content extends outside the plot area.
  • Added support for text rotation within Excel cells.
  • Fixed font substitution logic in cases where a font's coverage extends over large areas of the private use area.
  • Fixed issues with non-display of floating shapes nested within other floating content.
  • Refined conditional styling of table borders.
  • Improved positioning for some floating tables.
  • Much reduced memory consumtion during conversion of very large Excel sheets.
  • Fixed bug with incorrect cell spacing involving repeated header rows and vertically merged cells.
  • Added support for the older Word 95/Word 6.0 .doc format.

Get the answers you need: Chat with us