> 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/web/changelogs/version-2/v2-1-0.md).

# Version 2.1 Changelog (2015-11-12)

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

### Potential Breaking Changes

* AnnotationManager.getAnnotationsList will now include links and widgets in the list. To just see "listable" annotations you can filter by the Listable property. e.g. annotManager.getAnnotationsList().filter(function(annot) { return annot.Listable; })

### PDFNetJS Updates

* Added a full version of PDFNetJS with most of the PDFNet API functions. The version of PDFNetJS that allows support for basic viewer operations is now called PDFNetJS lean
* Added support for font substitution
* Added support for viewing layers in a PDF document; see the layers sample for more information
* Added support for insertPages, insertBlankPage, removePages, rotatePages and cropPages functions on a PDF document
* Added support for loading jpg and png images in the viewer
* Added the option to allow the use of Emscripten while PNaCl is compiling
* Detect if PNaCl is disabled or not working and fall back to using Emscripten
* Parse the file name of a document where possible and use it as the download name
* Added ExternalPDFPartRetriever and LocalPDFPartRetriever for loading PDF documents
* Added functions on CoreControls for working with PDF documents and workers; preloadPDFWorker, getCurrentBackendType, getDefaultPdfBackendType, initPDFWorkerTransports, resetWorker
* Added Document.getViewerCoordinates to convert PDF coordinates to coordinates used by the viewer
* Added a "finishedSavingPDF" event that's fired when the document is finished downloading
* Added option to pass worker transport promise into DocumentViewer.loadAsync or PDFReaderControl.loadDocument as part of the options parameter

### WebViewer HTML5 Updates

* Greatly improved support for actions on form fields, e.g. calculate, validate
* Support for execution of JavaScript code embedded in PDF documents
* APIs added for programmatically manipulating fields and actions
* Added control handles to modify a text selection
* Added support for the rotation property on FreeText annotations
* Change so that if a page is rotated then any signatures and FreeText annotations will be horizontal relative to the current view
* Added a menu that appears above a text selection, allowing copying of text or turning the selection into text annotations
* Added tutorials about custom stamps, overriding tool functions and custom annotations
* The left side panel can now be resized and collapsed
* Added the ctrl + p shortcut to trigger printing
* Updated options and improved display of information on the print dialog
* Performance improvements when notes panel is closed and there are many annotations
* Saving/Loading of tool data and the side panel state are saved in a user preferences object
* Added better support for text annotations on rotated text
* Update so that versions of IE that support Arraybuffer will use it for loading XOD documents
* Added DocumentViewer.zoomToMouse function to zoom in, centered on the mouse position
* Added support for Zip64 files, handles XOD files with more than 65536 entries
* Added German translations
* Allow multiple custom stylesheets to be added through ReaderControl.config.customStyle
* Allow clicking of "tel" links
* Fixed issue where pasting into a note didn't update the size of the textarea
* Fixed issue where individual parts inside a XOD document were limited to 40MB
* Minor UI fixes to the signature dialog
* Added i18n data for notes panel title attributes
* Fixed issue that occurs in some documents with a GoTo action dest of FitR
* Fixed issue where the StreamingPartRetriever didn't work when downloading a file for offline mode
* Fixed issue where signature widgets weren't positioned correctly on pages that had been rotated in the original PDF
* Fixed issue where annotations with the same id but on different pages weren't being displayed

### WebViewer Mobile Updates

* Added support for printing
* Automatically use the mobile viewer if the Edge browser is being viewed in tablet mode


---

# 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/web/changelogs/version-2/v2-1-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.
