> 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-7/7-0.md).

# Version 7.0 Changelog (2019-07-25)

World's #1 PDF SDK Library for Web, Mobile, Server, Desktop

## 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 Behavior:

* 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.
* \[docx] no longer apply highlights to text runs consisting only of whitespace.
* \[docx] Fix bug where we could occasionally miss list styles on deeply nested bullet lists.


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
