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())
Changed Behaviour
[go] Changed package structure and version scheme. The latest version is now 2.0.0 and imports must be changed accordingly. Reference the getting started guide for more information.
[python3] Apryse SDK core PIP packages as of this version will be deployed to our private PYPI repository under the name apryse-sdk. Previously known as PDFNetPython3 on PYPI Reference the python setup guide for more information.
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.
[MacOS] Added support for Apple Silicon (arm64) in Apryse SDK for Go.
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.