> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/core/changelogs/version-12/12-2-0.md).

# Version 12.2.0 Changelog (October 1, 2026)

Review the 12.2.0 changelog for the Apryse Server SDK.

### End of Support

* **\[.net]** Removed .NET Core 2.1 wrapper.
* **\[nodejs]** Removed support for Node 10 and 11.
* **\[electron]** Removed support for Electron versions below 28.
* Handwriting ICR, Form Field Identification, Key-Value Extraction, Document Classification, and Tabular Data Extraction with Deep Learning Assist are no longer supported on Windows versions earlier than Windows 10 and Linux distributions with glibc versions older than 2.28.

### New In This Release

#### Document Creation API Enhancements

* Added support for sections, headers and footers, images, shapes, hyperlinks, page numbers, charts, and floating elements to the Document Creation API (`FlowDocument`), through the new `Section`, `Shape`, `PageNumber`, `Chart`, and `Float` classes.

#### PDF to Markdown

* Added a new API method, `DataExtractionModule.ExtractToMarkdown()`, that performs data extraction on a PDF in markdown output format.

#### Detect if OCR is Needed

* Added a new API method, `OCRModule.PageNeedsOCR()`, that checks whether a page requires OCR (for example, because it has no extractable text).

### New Options

* **\[pdf]** Added a new API option, `DataExtractionOptions.SetEmbedImages()`, that controls whether images are embedded in the output Markdown file using Base64 encoding.
* **\[pdf]** Added a new API option, `DataExtractionOptions.SetPreferredOCREngine()`, that selects the OCR engine used by the Structured Output module, including the newly supported Paddle OCR engine.

### Improvements

* **\[.net]** Added .NET 11 support.
* **\[nodejs]** Added support for Node 25 and 26.
* **\[electron]** Added support for Electron versions 28 to 44.
* **\[java]** Apryse SDK now offers nightly experimental and stable builds of the Maven package.
* **\[print]** Added a new `Print.StartPrintJob()` override that accepts a user-provided DEVMODEW.
* **\[icr]** Increased overall Handwriting ICR accuracy.
* **\[sde]** Improved runtime performance, stability, and security for the Smart Data Extraction module, through an upgrade of the ONNX Runtime engine.
* **\[core]** Upgraded the duktape library to version 2.7.
* **\[core]** Upgraded the TinyXML2 library to version 11.0.
* **\[core]** Upgraded libtiff to version 4.2.7.
* **\[core]** Upgraded openssl to version 3.5.7.
* **\[pdf]** Improved font substitution for Japanese fonts.
* **\[pdf]** Improved the rendering of FreeText annotations in cases where the frame height is close to the height of the contained text. In such cases, vertical alignment is no longer applied, which results in a better appearance and is consistent with the WebViewer rendering engine.

### Bugfixes

* **\[pdf]** Fixed an issue with font substitution on Linux where an exact-match installed font was not being used.
* **\[pdf]** Fixed a rendering issue with incorrect character scaling for some characters loaded from a font embedded in a PDF file.
* **\[pdf]** Fixed an issue with missing text when the PDF font is not embedded and has no width values specified for the text characters.
* **\[pdf]** Fixed an issue where a disallowed change was falsely reported on a digital signature with locked fields.
* **\[pdf]** Fixed an issue where OCR failed or returned unusable output when a PDF page contained a low resolution bitmap as well as high quality vector graphics.
* **\[pdf]** Fixed an issue where page edits were lost if the page had no content stream.
* **\[pdfa]** Removed "Invalid destination" as a violation for PDFACompliance validation, as the PDF/A specifications do not forbid invalid action destinations.
* **\[svg]** Fixed an issue with incorrectly rotated JPEG images in PDF to SVG conversion.
* **\[xfdf]** Fixed an issue where an array index out of bounds exception could be thrown when merging an XFDF file with a PDF.
* **\[print]** Fixed an issue where printed PDF output contained text artifacts, such as small gaps in the letters.

### Office Fidelity

* **\[office]** Added support for 3D pie charts.
* **\[office]** Added support for SVG fills in chart elements.
* **\[office]** Added support for a mix of pie and line charts when the line charts were used for labels only.
* **\[office]** Added support for different text styles within the same chart data label.
* **\[office]** Added support for ellipse-shaped chart data labels.
* **\[office]** Added locale support for DATE and SAVEDATE fields.
* **\[office]** Fixed scatter chart rendering when all axes were deleted. Orientation-incompatible axes from sibling chart groups are no longer substituted, and domain values are displayed for data labels when categories are unavailable.
* **\[office]** Fixed incorrect handling of some VML shape style properties.
* **\[office]** Increased the precision of the layout engine for more accurate document layout.
* **\[office]** Added support for multiple pictures and graphic frames inside a canvas.
* **\[office]** Fixed an issue with incorrect positions of some shapes with protruding elements.
* **\[office]** Fixed an issue where text extracted from the output of an Office to PDF conversion contained incorrect code points for characters outside the Unicode BMP.
* **\[docx]** Fixed an issue where an inline image inside a text box was incorrectly clipped.
* **\[docx]** Fixed an issue with footnotes overlapping content on a multi-column page.
* **\[docx]** Fixed an issue with the incorrect size of "Resize shape to fit text" shapes inside a table.
* **\[docx]** Improved support for altChunk HTML formatting (`div` elements and `text-align` CSS property).
* **\[docx]** Fixed an issue with incorrect drawing of VML shapes that had duplicate shape IDs.
* **\[docx]** Fixed an issue where a table row with many images was forced on one page instead of continuing on the next page.
* **\[docx]** Fixed an issue where some floating images in table cells were placed too high.
* **\[docx]** Fixed an issue with missing text in content controls.
* **\[docx]** Fixed an issue with incorrectly resolved table styles.
* **\[docx]** Fixed an issue where extra space appeared at the end of some lines in "Thai distributed" justified paragraphs.
* **\[doc]** Fixed DOC conversion issues that could cause hangs or missing list numbers when processing legacy numbering definitions.
* **\[doc]** Fixed DOC parsing to preserve paragraph styles and heading metadata, restoring correct PDF bookmark generation and paragraph style rendering.
* **\[doc]** Fixed an unexpected exception when converting some password-protected Word DOC files.
* **\[xlsx]** Fixed an issue where a cell value was missing because the cell contained a formula without a cached result.
* **\[xlsx]** Fixed date format conversion issues for the Japanese and German locales in Excel documents.
* **\[rtf]** Improved conversion stability for certain RTF files.
* **\[eml]** Fixed an issue where a placeholder character appeared unexpectedly in some EML documents.

### Fixes and Improvements for the Structured Output Module

#### Improvements

* **\[docx]** Improved detection of continuous tables when cell borders were not consistent across pages.
* **\[docx]** Improved scanned page detection when primary content is part of underlying image.
* **\[docx]** Improved the detection and conversion of combined diacritic characters.
* **\[docx]** Improved detection of small glyph paths to prevent clipped and omitted characters.
* **\[docx]** Improved detection of text when a PDF bounding box overlaps a character.
* **\[pptx]** Improved conversion of tables when a cell contains a negative right indent.
* **\[pptx]** Improved detection of text block groups.
* **\[pptx]** Added support for the detection of hyperlink font color when it is not the default blue color.
* **\[xlsx]** Improved detection of tagged tables.
* **\[xlsx]** Improved detection of cell borders when continuous tables are combined into one sheet.

#### Bugfixes

* **\[docx]** Fixed a bug where a duplicate cross-reference stream object prevented successful conversion.
* **\[docx]** Fixed an issue causing specific glyphs in particular fonts to be misdetected.
* **\[docx]** Fixed an issue causing false small capital letters to be detected in a document.
* **\[docx]** Fixed an issue preventing the accurate detection of annotation comment text.
* **\[docx]** Fixed an issue causing a false table to be detected among text with custom character spacing.
* **\[pptx]** Fixed an issue that prevented two pages of a document from auto-rotating.

### Fixes and Improvements for the HTML2PDF Module

* **\[html]** Improved timeout handling for HTML to PDF conversions.
* **\[html]** Upgraded Chromium to version 153.0.8006.2.

### Fixes and Improvements for the CAD Module

* **\[cad]** The CAD module is now available on Maven.

### Fixes and Improvements for the OCR Module

* **\[ocr]** Accelerated OCR processing by up to 2.5x with the default OCR module compared to v12.0.
* **\[ocr]** Reduced default OCR module memory consumption by up to 50%.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.apryse.com/core/changelogs/version-12/12-2-0.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
