What's new

Version 3.1

December 12, 2017 version 3.1.0

Upgrade Notes
  • New strings:
    • sidepanel.searchTab.wildCardMode, sidepanel.searchTab.searching
    • password.enter, password.incorrect, password.ok, password.cancel
PDFNetJS Updates
  • Added a WebAssembly based worker. This should improve viewer performance on Firefox and Safari in addition to being central to the new mobile support.
  • Added brotli and gzip compression for worker files to allow for a faster download
  • Added a PDF page operations sample
  • Added an Office to PDF conversion sample
  • Various performance improvements for loading documents
  • Added support for text annotation repositioning on Office documents
  • Added support for viewing of documents when the WebViewer library is on a separate server from the web application
  • Added support for hyperlinks in Office documents
  • Fixed a number of page cancellation issues with Office documents
  • Fixed a number of API issues when loading documents using downloader
  • Fixed issues with downloading Office documents before they were completely loaded
WebViewer HTML5 Updates
  • Added support for streaming page thumbnails ahead of the pages themselves for XOD documents
  • Added a sample showing how to integrate WebViewer into an Angular project
  • Added support for displaying multiple search results at once. The search result colors can now be customized by using docViewer.setSearchHighlightColors
  • Added the annotationsLoaded event to DocumentViewer that occurs when all of the document annotations have been loaded
  • Updated the full text search UI to include arrows to navigate between search results, a button to cancel and clear search results (docViewer.clearSearchResults) and an indicator that a search is ongoing
  • Added support for wildcard and regex searching
  • Added the searchInProgress event on DocumentViewer to indicate when a search starts or stops
  • Required form fields now have a red border displayed around them
  • Various optimizations to improve annotation rendering performance
  • Added support for borders on links
  • Added samples for node.js (annotationHandler.js) and ASP.NET (AnnotationController.cs) server annotation handlers under lib/html5
  • Added warning messages to help troubleshoot issues with using the serverUrl option
  • Updated translation files for languages besides English so that it was clear which translations were missing
  • Added a tutorial explaining the WebViewer HTML structure
  • Added docViewer.setAnnotationImportOptions to set the batch size and delay for async loading of annotations
  • Added support for newlines in header and footer watermarks
  • Updated auto font size fields as text is entered into the field and a minimum font size is now enforced
  • Added support for importing and exporting all annotation flags
  • Added support for the print, noview, locked, lockedcontents and readonly flags on annotations
  • Added the ACCEPTED_IMAGE_TYPES property to the stamp creation tool to specify which image types can be opened
  • Added option to disable exporting of contents-richtext: Annotations.Annotation.exportContentsRichText = false
  • The calculated font size is now exported for FreeText annotations with auto font size because of display issues in other viewers
  • The note options menu is now displayed in the notes panel by default
  • Updated so that IE will always use the desktop viewer so that instances of IE which incorrectly state they support touch won't receive the mobile viewer
  • Improved performance when zooming on documents that have many widgets
  • Annotations can no longer be selected when they are toggled off
  • Added "page" attribute to annotation delete command
  • The popup subelement is no longer serialized for FreeText annotations as this can cause issues with other viewers
  • Fixed issue with Chrome 62 adding extra data to stamp annotation data URLs which caused issues in parsing
  • Fixed slowness when selecting text on several pages
  • Fixed memory leak when changing pages in non-continuous display modes
  • Fixed memory issues with keeping page thumbnails around in the desktop viewer
  • Fixed issue with the border and fill overlapping for semitransparent annotations
  • Fixed issue with calculating auto sized text of form fields when the browser zoom was not 100%
  • Fixed issue with Chrome and the ImageData constructor
  • Fixed issue with the LocalPartRetriever in Cordova on iOS11 where if the document had many simultaneous requests for parts iOS would fail to return all of the part data
  • Fixed issue where trying to click widgets on top of document text wouldn't work
  • Fixed issue with selected sheared text
  • Fixed issues with annotations from a previous document being loaded onto the new document if the new document was loaded before the previous annotations had finished loading
  • Fixed several issues with handling text data that affected text selection and searching
  • Fixed issue with drawing polygon paths in some situations
  • Fixed issue with IE10 not working with xdomain
  • Properly move to the beginning of the page when calling setCurrentPage and the page is rotated
  • Fixed issue where calling loadDocument wouldn't load the annotations for the new document
  • Fixed issue with the Subject property of FreeText annotations being overwritten when calling setIntent
  • Fixed issue where the Content-Range header wouldn't be handled properly if it was lowercase
  • Fixed issue with multiline form fields when the scroll long text flag is disabled
  • The mouse cursor displayed when hovering over an annotation control point now properly takes page rotation into account
  • Fixed issue with the handling of creation and modified date for annotations if they hadn't been specified in the XFDF that they were deserialized from
WebViewer Mobile Updates
  • Added viewing support for PDF documents using the new WebAssembly worker
  • Added much better support for copying selected text
  • Disabled pull to refresh that could happen when dragging downwards in Chrome
  • Only display the creation date in the annotation list if it's defined on the annotation
  • Fixed issue with loading a document while the user is swiping quickly through the pages
  • Fixed a timing issue where a new annotation canvas could be requested before the previous one was discarded causing issues rendering annotations

Version 3.0

June 29, 2017 version 3.0.1

PDFNetJS Updates
  • Added Document.getOfficeResources to get the resources used by a given page in an office document
  • Fixed issue where the PDF worker would be unnecessarily loaded when loading an office file
  • Fixed issue with error handling where some errors could be misreported as license errors
WebViewer HTML5 Updates
  • Added Tools.Tool.ENABLE_AUTO_SWITCH to disable automatic switching of the pan and text select tools
  • Fixed issue where WebViewer.js would warn about certain options not being valid even though they actually were
  • Fixed issue in FreeText annotations with auto font size and a large height the initial font size would be very large
  • Fixed issue with potential rerendering of pages when the cache size is small
  • Fixed issue where the "Current Page" print option wasn't localizable
  • Fixed issue where checkboxes and radio buttons weren't visible in the latest Firefox version
  • Fixed issue with the annotation edit tool where the annotation canvas could be incorrectly translated when in viewport rendering mode
  • Fixed issue where search could fail on some older XOD files

June 9, 2017 version 3.0.0

Upgrade Notes
  • Breaking changes:
    • Now only a single AnnotationManager instance is created even when multiple documents are loaded. This means if you previously added AnnotationManager event handlers inside the documentLoaded event you should move them to the viewerLoaded event otherwise you'll receive an extra event for every new document you load.
    • All old annotation popup behavior (notes that appeared directly on the document, NOT in the notes panel) has been removed
    • The enableAnnotations option is now set to true by default. If you want annotations to be disabled you should explicitly set this to false.
  • New strings:
    • contextMenu.edit, contextMenu.strikeout, contextMenu.squiggly
    • annotations.tooltips.stamp
    • error.OfficeLoadError
    • noMatchesFound
    • mobile.enterPageNumber
PDFNetJS Updates
  • Added support for viewing of Office documents
  • Improved worker loading to allow Emscripten fallback in case of a PNaCl worker error
  • Added new method setPagesUpdatedInternalAnnotationsTransform which will be triggered when individual page annotation data comes in for linearized documents loaded with downloader
  • Added PDFATest sample
  • Added Custom Download viewer sample
  • Added Document Preprocessing viewer sample
  • Fixed memory leaks when downloading PDFs containing a large number of stamps
  • Fixed issue with stamp quality loss when saving and reloading a file
  • Fixed issue where bookmarks without actions would not be exported
  • Fixed issue with using downloader inside a Chrome app
  • Fixed issue with moving pages in a document
  • Fixed issue saving files with cloudy annotations
  • Fixed issue that could occur sometimes when importing large amounts of XFDF data
  • Fixed issue with downloading documents in Safari
  • Fixed downloader timing issue with the updating of the page dimensions causing some pages to be stuck with the incorrect size
WebViewer HTML5 Updates
  • Added a realtime collaboration sample and tutorial
  • Added DocumentViewer.setWatermark to allow watermarks to be easily displayed over pages
  • Added a stamp annotation tool in the toolbar that allows a user to add an image file as a stamp to the document
  • Added support for setting custom styles on widget annotations as well as overriding createInnerElement. See the new sample for more details.
  • Updated the default tool mode so that it automatically allows selection of text when hovering over text and allows panning while holding the spacebar
  • Added DocumentViewer.getTool, DocumentViewer.getToolModeMap and moved the toolModeMap instances into DocumentViewer
  • Automatically update the notes panel when annotation permissions change e.g. switching to readonly mode
  • Improved the documentation styling
  • Updated jQuery to version 3.2.1
  • Added several optimizations to improve the performance of XOD rendering
  • Added several optimizations to improve the performance of XOD text search
  • Added DocumentViewer.setPageVisibilityCallback to set a callback that will be called whenever a new page becomes visible in the viewer
  • Added readerControl.setSearchInLeftPanel to automatically trigger a search when a document loads
  • Added warning if an unknown option is passed to the WebViewer constructor
  • Added readerControl.enableCopyAndTextSelection to allow text selection to be enabled or disabled from the UI
  • Added the CoreControls.disableEmbeddedJavaScript function to allow embedded JavaScript to be disabled.
  • When searching reaches the end of the document it now asks if you want to search again from the top
  • Added a FORCE_SELECT option for choice widgets causing all choice widgets to be select HTML elements
  • Improved auto font sizing for FreeText annotations
  • Added support for the InkHighlight intent for FreeHand annotations
  • Added support for cloudy border style for rectangle annotations
  • Exposed the getPageMatrix function on documents
  • Improved performance for loading combo boxes with many options
  • Annotations are now displayed on thumbnails in the thumbnail panel
  • Exposed NoteManager (for the NotesPanel) on window so that it can be accessed from a config file
  • Added several new events triggered from the notes panel
  • AnnotationManager.exportAnnotations now takes a "fields" option and removes fields, widgets and links if the annotList option is present
  • Mouse cursor is updated when hovering over annotations and text
  • The full text search in the left panel now highlights the word that was searched for
  • Updated the FreeText tool so that FreeText annotations can be created with a single click
  • Signatures now preserve their aspect ratio when resizing
  • The print dialog is now automatically closed when closing a document
  • Improved handling of date formats starting with a day
  • The document rotation is now taken into account when positioning the annotation edit dialog
  • Improved scoping of the $ variable in WebViewer.js so that it isn't a problem if it is overridden
  • When focusing text fields through embedded JavaScript now the scroll won't change if the field is already in view
  • Added better support for bold and italic fonts in text fields
  • Added support for the multiselect flag on list fields
  • Updated list, choice and pushbutton fields to respect the readonly flag
  • Added proper handling of the scroll long text flag for multiline text fields
  • Fixed issue where if a text field was removed from the DOM while it was still focused then the updated value wouldn't be saved
  • Fixed issue with event.value in embedded JavaScript being readonly for some events so it would throw an error if any code tried to set the value
  • Fixed issue with links not being able to be clicked
  • Fixed issue with invalid characters in text data producing invalid XML
  • Fixed issue with changing pages by scrolling on Mac trackpad in non-continuous view modes
  • Fixed issue where Cmd + click didn't work to select multiple annotations
  • Fixed issue where WebViewer was trying to adjust ms-app links because it thought they were a relative path
  • Fixed issue where pages wouldn't be printed when WebViewer was in a particular orientation
WebViewer Mobile Updates
  • Improved behavior when unfocusing an input field on Android devices so that the page isn't rerendered
  • Improved behavior of the arrow sizing on choice widgets
  • Added workaround for issue with orientation changes on iOS when the viewer is inside an iframe
  • Fixed issue where resizing a text annotation wouldn't update the note contents in the annotation list

Version 2.2

February 8, 2017 version 2.2.2

Upgrade Notes WebViewer HTML5 updates
  • Added a function to disable the execution of embedded JavaScript
  • Added a function to control the usable width of a text input when "scroll long text" is disabled
  • Added the addField function on FieldManager allowing you to programmatically add fields
  • Improved display of "comb" text fields
  • Improved handling of text modifications in form fields so that they can be changed through spellcheck or suggested words
  • Added support for "userName" attribute of a field when it's set dynamically
  • Improved the implementation of app.alert in embedded JavaScript to handle yes/no and ok/cancel dialogs
  • Updated offline mode so that encrypted documents have their parts stored encrypted in the offline database
  • Fixed issue where sticky note annotations were not always being displayed upright relative to the viewer
  • Fixed issue where the last letter typed would be removed from a field if there was a keystroke action that set the focus on another field
  • Fixed issue with handling dates from different timezones in XFDF
  • Fixed issue with field values not being loaded in some cases
  • Fixed issue where calls to setFocus on a field could cause issues with field blur events
  • Fixed issue with the incorrect form submit action format being used in some cases
  • Fixed issue with exporting callout annotations to XFDF
  • Fixed issue where a polygon wouldn't be shown as a cloud if only the "style=cloudy" property was set in the XFDF
  • Fixed issue where the start and end styles of a polyline would be lost when exporting XFDF
  • Fixed issue where the default signature would be added in the wrong orientation in some situations
  • Fixed timing issue where CoreControls might not be defined in the WebViewer iframe yet when accessing from WebViewer.js
  • Requests with HttpPartRetriever are now retried once when they fail which works around an issue in Chrome when cache hinting is disabled
  • If "scroll long text" is disabled then always allow removing text even if the size of the text is over the limit
  • Fixed issue with the max length setting on fields not properly being respected
  • Fixed issue with error handling in StreamingPartRetriever
  • Fixed issue with cursor not changing to a pointer when hovering over checkboxes in IE
PDFNetJS Updates
  • Added an option to use the PNaCl subzero compiler for fast worker loading
  • Added functions to get/set the resource and worker paths
  • Added support for custom headers
  • Added digital signature support in the full build
  • Fixed issues with downloader and externally imported annotations
  • Fixed a timing issue where pages could be shown with the incorrect size when downloader was enabled
  • Fixed issue with stamp quality loss when saving and reloading a document
  • Fixed issue with incorrect stamp annotation scaling
  • Fixed issue where annotations wouldn't be removed from notes panel when removing a page
  • Fixed issue where page move operations were not working
  • Fixed issue with password protected files when downloader is enabled
  • Fixed issue when importing a large amount of XFDF data and Emscripten is being used
WebViewer Mobile Updates
  • Fixed issue with double tap to zoom in IE and Edge

Setptember 6, 2016 version 2.2.1

Upgrade Notes WebViewer HTML5 updates
  • Several improvements and fixes to embedded JavaScript handling
  • Added an "annotList" option to the exportAnnotations function, allowing you to retrieve the XFDF data for specific annotations
  • Added setSubmitFormActionCallback on AnnotationManager to allow custom handling of form submit actions
  • Added fieldChanged event on AnnotationManager to notify when a field's value has changed
  • Added support for the page up and down keys in the viewer
  • Added support for passing the viewer background color as an option to WebViewer.js
  • Added support for the flag that disables scrolling on fields
  • Improved performance when rendering FreeText annotations with lots of text
  • The default browser context menu is no longer overridden when right-clicking in an input box
  • Added support for readonly checkboxes and radio buttons
  • Added support for importing field values from AnnotationManager's importAnnotCommand function
  • The Annotation edit menu buttons can now be modified programmatically from a config file
  • Annotations are now deselected when clicking on the area in the viewer outside of page boundaries
  • Added the refreshTextData function on Document when the text data needs to be refreshed (e.g. after redacting text with PDFNetJS)
  • Fixed issue where editable dropdown fields weren't able to be edited
  • Fixed issue with running out of memory when searching large documents
  • Fixed issue with passing "filesystem" urls to WebViewer
  • Fixed issue with auto font sizing of multiline fields
  • Fixed issue with loading XOD documents that contained fields with page actions
  • Fixed issue with how custom decryption functions are handled
  • Fixed issue where the zoom fit mode wouldn't recenter the page vertically when resizing
  • Fixed issue with the pageComplete event not being fired in all cases
  • Fixed issue with annotations not being aligned correctly when printing rotated documents
  • Fixed issue with landscape pages not being printed correctly for XOD documents
  • Fixed issue where programmatically updating a field to an empty value didn't work
  • Fixed issue where documents with the file protocol weren't able to be loaded
  • Fixed issue where unlistable annotations could show up in the notes panel
  • Fixed issue with the hideControlbar option in ReaderControlConfig
  • Fixed issue with using the annotation multiselect tool
PDFNetJS Updates
  • Added improved printing support in Chrome, taking advantage of native printing capability when available
  • Added the extractXFDF function on the Document object
  • Added ElementBuilderTest and simplified FDFTest PDFNet samples in the full version of PDFNetJS
  • Reduced memory footprint of a number of PDFNetJS API calls
  • Fixed errors when using Document.rotatePages and Document.removePages while viewing the document
  • Fixed issue where FreeHand annotations wouldn't be part of the downloaded PDF if created just before pressing the download button
WebViewer Mobile Updates
  • Fixed issue with zooming into the first page of a document when right to left pages and cover mode are both enabled
  • Fixed issues with loading documents when using Cordova
  • Fixed issue with some pages not rendering when cover mode is enabled and the device is in portrait mode
  • Fixed issue with going to the last page of a document in cover mode
  • Fixed issue with double tapping on Android devices

April 11, 2016 version 2.2.0

Upgrade Notes
  • Breaking change: to allow for more efficient rendering, the way DocumentViewer calls DisplayMode has changed. Those using custom display modes will need to change their code so that instead of directly extending DisplayMode they pass all their custom functions as an object to DisplayMode.setCustomFunctions, which will ensure backward compatibility of their custom layout code. See the horizontal viewer sample for an example.
  • Potential breaking change: when incremental download is in operation, custom XFDF files that are loaded on the documentLoaded event may subsequently be deleted and replaced with annotations from the PDF file. This can be avoided by passing {useDownloader: false} to WebViewer, as is done in the Hide/Show annotations sample.
WebViewer HTML5 updates
  • Added support for rightToLeft page display using DocumentViewer.setRightToLeftPages
  • Optimised layout and rendering stages of the viewer to run and re-render stably as an underlying PDF document changes.
  • Added a cloud polygon annotation tool
  • Improved streaming mode behavior and performance on XOD documents, especially in Internet Explorer
  • Added a hideAnnotationPanel option to WebViewer.js
  • Added back and forward buttons to navigate between recently jumped to pages (set showPageHistoryButtons: false from the WebViewer constructor to disable)
  • Updated text annotation tools so that the note content is automatically set to the selected text (this can be controlled by setting Tools.TextAnnotationCreateTool.AUTO_SET_TEXT
  • Improved performance when rendering FreeText annotations with a lot of text
  • Added basic support to the desktop viewer for touchscreen devices
  • Allow the default browser right-click menu to be displayed inside input fields
  • Fixed issue with IE11 loading documents through xdomain
  • Fixed issue with annotation positions when printing pages with a larger width than height
  • Fixed issue with keys on the keypad not being saved in form fields in IE and Edge
  • Fixed issue where input fields with a maximum length were truncating the text after they lost focus instead of before
  • Fixed a display issue with FreeHand annotations that had overlapping paths and the opacity was less than 100%
  • Fixed choice form widgets that used automatic font sizing not displaying correctly.
  • Fixed an error where PDFs would be corrupted by the viewer if they contained radio buttons/checkboxes whose on state was not 'Yes'.
  • Fixed an issue with local storage not working in offline mode.
  • Fixed the incorrect loading of text selection information from old XOD files.
  • Fixed some compatibility issues between WebViewer's XFDF output and other XFDF processors.
  • Fixed a bug in form field actions where calculations would show results the next time a field was changed instead of immediately.
  • Fixed form fields not registering having their contents being deleted.
  • Fixed missing implementation of the NoView flag on form field widgets.
  • Fixed some incompatibilities between WebViewer's interpretation of FreeText font sizes and stroke widths compared to other viewers.
  • Fixed incorrect export of external link URLs in XFDF.
  • Fixed issue with certain top positions in a FitH GoTo action.
  • Fixed issue with cutting text out of a form field it would return after you unfocused the field
  • Fixed issue with streaming mode in IE10
  • Fixed issues with the page up and down keys
PDFNetJS Updates
  • Added incremental download support, so large linearized documents can be opened without needing to download the whole file.
  • Added Document.requestPage so incremental download can be used in conjunction with PDFNetJS.
  • Added document locking to PDFNetJS samples.
  • Added support for IE10
  • Added samples for document redaction, including an implementation using the viewer.
  • Added generator support detection for browsers that have present, but incomplete implementations.
  • Improved sample documentation and commenting.
  • Added a workerTransportPromise option to WebViewer.js
  • Added a CoreControls.isDemoMode function to check if the viewer is in demo mode
  • Fixed a bug in Matrix2D.Mult
  • Fixed a timing issue where the license might not be applied correctly
WebViewer Mobile Updates
  • Added support for right to left page display
  • Added support for cover mode by calling readerControl.setLayoutMode(window.CoreControls.DisplayModes.Cover)
  • Fixed issue with double tap zooming on Chromebooks

Version 2.1

November 12, 2015 version 2.1.0

Upgrade Notes
  • Potential breaking change: 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

Version 2.0

April 20, 2015 version 2.0.0

Upgrade Notes
  • Breaking Change: To better match existing JavaScript style guidelines, all API functions now start with a lowercase letter.
WebViewer HTML5 Updates
  • Added support for viewing PDF documents directly without converting to XOD! Learn more in the getting started tutorial.
  • New versions of PDFNet, DocPub and PWS will create smaller XOD files because of optimizations in the text representation
  • Added a new panel to display annotation notes and replies relative to their page position. The panel also allows searching through notes and ordering by time.
  • Added an advanced annotation editing menu that appears above the annotation when clicking on it
  • Added a customizable signature tool
  • Annotations can now be selected by tapping on them from any tool (except ones that use tapping e.g. Polygon)
  • Removed the annotation panel from the left side and moved the annotation tools to the top toolbar
  • Each annotation tool now has their own default properties. When an annotation is edited this automatically changes the default properties of the corresponding annotation tool
  • Added proper support for displaying documents with blend modes
  • Added support for the Hidden flag on annotations and added functions to hide and show annotations
  • Added support for column selection with all text tools when holding down the alt key while selecting text
  • Added support for viewport rendering of page canvases when zoomed in to a certain level. This allows for much better performance and quality and viewing large XOD documents (e.g. CAD files)
  • Added support for new browser font loading API
  • Added support for rotation property on widgets, this includes rotating the widgets when pages are rotated
  • Added support for button widgets to have an automatically calculated font size
  • Added DocumentViewer.setInternalAnnotationsTransform to allow the internal annotations to be transformed or replaced much more easily
  • Added a right-click menu to allow quick switching between annotation tools
  • Added a Text Squiggly annotation tool
  • Added an Arrow annotation tool
  • Added support for changing a FreeText annotation's text color and font size
  • Added support for the shift + enter shortcut to search backwards
  • Allow setting of the default fit mode, display mode and zoom level for DocumentViewer
  • Page rendering now always takes priority over thumbnail rendering from the thumbnail panel
  • Added support for auto font size for FreeText annotations
  • Updated Document.loadThumbnailAsync to return an id which can be cancelled with cancelLoadThumbnail
  • Modified ReaderControl so that it keeps only one instance of each tool and Get/SetToolMode should take an instance instead of a type
  • Improved text annotation word wrapping to handle wrapping of long words that span more than one line
  • Added the beforeDocumentLoaded event to DocumentViewer that occurs before the document data has been initialized in the viewer
  • Upgraded to jQuery UI 1.11.1
  • Added a gulpfile that can be run to optionally optimize the WebViewer assets
  • Documents loaded from blob urls through WebViewer.js are now supported
  • Changed the up and down arrow keys to scroll through the document instead of change pages, unless at the end of a page
  • Modified ReaderControl and MobileReaderControl to inherit from a BaseReaderControl
  • Modified ReaderControl's loadDocument function to take an options object as the second parameter
  • The full text search box is now focused automatically when switching to the search tab
  • Free Hand annotations are not simplified by default when drawing with a stylus
  • Updated FreeText annotations to increase their stroke size inwards
  • The FreeText textarea is now automatically selected after creating the annotation
  • More precise selection is now used for line annotations, even when selected
  • More precise selection is now used for callout annotations
  • If there is an error deserializing an annotation then annotation parsing won't fail for the rest of the XFDF
  • Added an externalPath option to Webviewer.js to load unpacked XOD files
  • Fixed issue where annotations exported from WebViewer and merged into a PDF would not be displayed when printing the PDF
  • Fixed issue where nested field values weren't exported correctly
  • Fixed issue where text selected on multiple pages wouldn't be copied correctly
  • Fixed issue when attempting to create a FreeText annotation in an invalid location
  • Fixed issue where the quads of a text annotation could be set to an empty array
  • The annotationFiltered event now passes the annotations as an array instead of individually
  • Fixed issue with displaying dashed lines with a very small dash size
WebViewer Mobile Updates
  • Added an advanced annotation editing menu to change all annotation properties and allows the selection of many more colors
  • Added a quick menu for creating annotations when performing a taphold on a page
  • Upgraded to jQuery Mobile 1.4.4
  • Added workaround for IE to avoid adding duplicate Free Hand annotation points
  • Removed the MobileStickyCreateTool, the StickyCreateTool is now used on mobile devices
  • Added workaround for submitting page numbers in Android

Version 1.8

April 20, 2015 version 1.8.2

WebViewer HTML5 Updates
  • Added support for custom image data for stamp annotations and signature widgets
  • Added an AzurePartRetriever that works around an issue loading XOD files on an Azure server
  • When changing the zoom level the vertical scroll position is now maintained
  • Added support for fullscreen mode in IE11 (worked around IE11 bug)
  • If a text field does not specify a font size then it should default to auto sizing
  • Added a workaround for an iOS 8 bug with offline databases in a UIWebView
  • Fixed an issue where annotations were not being flagged as modified when the InReplyTo property changed
  • Fixed an issue where FreeText annotations with thickness zero weren't rendered correctly
  • Fixed an issue where widgets were duplicated on the first load of the document
  • Widget field values are now escaped when saving to XFDF
  • Fixed an issue where if a GoTo form action points to an invalid page number there would be an error
  • Fixed an issue where the defaultstyle element was not parsed correctly if there was a trailing semicolon
  • Fixed an issue where multiline selections were not copied with the new line characters
  • Fixed an issue where all combo box widgets were editable even if they didn't have the editable flag
  • Fixed an issue when editing FreeText annotations when default sticky notes are disabled
  • Fixed an issue with widgets that had names with spaces or special characters
WebViewer Mobile Updates
  • Fixed an issue where the viewer could get into an infinite loop when tapping on one page and then attempting to draw a FreeHand annotation on the other page

November 26, 2014 version 1.8.1

WebViewer HTML5 Updates
  • Added support for importing/exporting text name, size, color and alignment for FreeText annotations
  • Added a rectangular mode for text tools that can be enabled by setting Tools.TextTool.SELECTION_MODE
  • Added CoreControls.SetAdvancedImageScaling function which enables higher quality downsampling of images at the cost of some performance
  • Improved the FreeText annotation word wrapping so that it wraps long words onto multiple lines
  • Allow setting a default fit mode, display mode and zoom level before loading a document using DocumentViewer.defaults
  • Updated ellipse and rectangle annotations to increase their stroke size inward
  • Updated support for displaying accepted (checkmark) and rejected (cross) stamps
  • Fixed issue with loading large documents in native Android apps
  • Fixed issue where timezones that weren't aligned to the hour were not saving dates correctly in XFDF
  • Fixed issue with the annotation modified date being saved incorrectly
  • Fixed issue where FreeText annotations could be edited without the proper permission
  • Fixed issue where the multi-select annotation tool wasn't drawn correctly when the page was rotated
  • Fixed issues when loading multiple documents quickly in succession
  • Fixed memory leaks with annotations when loading multiple documents
  • Fixed issue where links didn't work after loading a new document
  • Fixed issue when loading a new document while the current document is rendering a page
  • Fixed where ctrl-clicking and dragging an annotation would cause errors
  • Correctly exposed the GetAnnotationCopy function
  • Fixed issue where importing a callout annotation that was exported from Adobe would fail
WebViewer Mobile Updates
  • Added support for double click in Internet Explorer
  • Fixed issue setting the annotation server URL
  • Fixed issue using getAnnotationByMouseEvent in a mouseLeftUp handler
  • Fixed issue with loading multiple documents where links would no longer be clickable

August 18, 2014 version 1.8.0

Upgrade Notes
  • Breaking Change: The annotationChanged event now passes an array of annotations instead of a single annotation.
  • Breaking Change: DocumentViewer.GetToolMode now returns the current tool mode instead of the instance of the current tool mode. Comparisons no longer have to be made with instanceof.
WebViewer HTML5 Updates
  • Added a combined pan and edit tool. This replaces the pan tool as the default tool and allows selection of annotations without using the annotation edit tool.
  • Added support for annotation replies. Any annotation note can now be replied to, allowing for a tree of replies.
  • Added support for printing annotations when using the print button
  • Added FreeText annotation tool
  • Added support for multipath free hand annotations
  • Updated the default styling of the user interface
  • Added support for specifying xdomain proxy URLs to support cross domain requests in IE9
  • Added AnnotationManager.ImportAnnotationsAsync that loads annotations asynchronously. This is now used by default in the ReaderControls.
  • Added option to AnnotationManager.ExportAnnotations to disable the exporting of links or widgets
  • Added support for automatically selecting a word when double-clicking with the text selection tool
  • Added support for rotating a single page by passing the page number to the DocumentViewer rotation functions
  • Added support for displaying annotation opacity
  • The popup note now appears automatically after adding a text strikeout annotation
  • Added Document.UnloadCanvasResources
  • Increased the maximum stroke thickness that can be set in the UI
  • Changed the default annotation fill color to be transparent
  • Annotations shown in the side panel are ordered by page number
  • Added DocumentViewer.DrawSelection to manually trigger drawing of selected text
  • FreeHand annotation points are now simplified after being created to produce smoother curves
  • Allow changing of the color of sticky note annotations
  • Added support for displaying the arrow head and tail of line annotations
  • Added support for saving a document offline when the StreamingPartRetriever is used
  • Added support for displaying a stroke thickness of zero
  • Added control handles to text annotations so that they can be resized
  • Added extra parameter to annotations' serialize function that specifies whether it is being serialized as part of an ExportAnnotations call or not
  • A warning is now shown in the console if WebViewer automatically falls back to streaming mode
  • AnnotationManager.ImportAnnotations now updates existing annotations with the same Id instead of adding a new annotation
  • An error event is triggered on a part retriever loading error
  • The viewer can now be loaded even if an initialDoc isn't specified
  • The annotation tools are no longer shown in readonly mode
  • Annotation properties for a selected annotation are only shown if they are able to be modified
  • Added an optional parameter to WebViewer.loadDocument that allows you to specify the documentId
  • Improved detection of fonts and colors for text field widgets
  • Thumbnail view loading optimizations to improve performance on large files
  • Added DocumentViewer.UpdateLinks function
  • Upgraded to jQuery 2.1
  • Added fullscreen support for IE11
  • Added AnnotationManager.getAnnotationByMouseEvent function
  • Added the InReplyTo property on sticky note annotations that specifies the Id of the annotation they are replying to
  • Fixed issue with WebViewer.searchText when passing searchModes as a comma separated string
  • Increased the default padding added to the rect of annotations so that they won't be clipped when loaded in other viewers
  • Fixed the order that the rect XFDF attribute exports its values in
  • Fixed the XFDF output for FreeText fill and stroke colors
  • Fixed the fringe XFDF output for FreeText annotations as it was being incorrectly transformed
  • Fixed the display of the unsupported browser message
  • Fixed stroke thickness rendering issue on pattern
  • Fixed duplicate "did" query parameter when loading annotations
  • Fixed the positioning of radio button widgets when zoomed out
WebViewer Mobile Updates
  • Added a new panel that lists annotations and allows note editing
  • Added toolModeChanged event
  • Added get/setToolMode functions
  • Moved the page number indicator to the bottom left corner and allow editing of the page number from a popup
  • Increased the size of the page slider
  • Upgraded to jQuery mobile 1.4.2
  • The mobile part retrievers now support encryption
  • Added a high-resolution option on the options panel to toggle between high quality rendering
  • To fix display issues, pinch zooming is disabled while scrolling pages
  • Fixed issue with Android native sample in 4.4
  • Fixed issue with the setReadOnly and isReadOnly functions
  • annotationChanged event is now triggered when note text is changed
  • Fix for Windows Phone devices so that pages are rendered at high quality
WebViewer Flash Updates
  • Updated to work when loading with require.js
  • Fixes for issues running in IE11

Version 1.7

March 24, 2014 version 1.7.1

WebViewer HTML5 Updates
  • Added polyfill for Document.createAttributeNS and Element.setAttributeNodeNS as Chrome 34 seems to be dropping support
  • Added the overridable function Annotations.SelectionModel.prototype.drawPopupTail to customize the popup tail appearance
  • Fixed issue where email links without "mailto:" weren't working
  • Fixed issue where the default sticky note color wasn't yellow
  • Fixed issue where extra unnecessary attributes were being added to some XFDF elements in some browsers
  • Fix so that the casing of XFDF elements is preserved
  • Fixed issue that occurred when no fields were specified in the reset form action

December 23, 2013 version 1.7.0

Upgrade Notes
  • Breaking change: All of the Set...Callback functions (e.g. SetPageCompletedCallback) on DocumentViewer and AnnotationManager have been replaced with events. So instead of docViewer.SetPageCompletedCallback(func(param1, param2)) change to docViewer.on('pageCompleted', func(event, param1, param2)). See the list of events under the event summary on DocumentViewer and AnnotationManager.
  • Breaking change: Tool names have been updated to be more consistent. For example, instead of using docViewer.ToolModes.TextSelect use window.Tools.TextSelectTool. See the HTML5 documentation for more details.
  • Breaking change: Highlight annotations now have a stroke color instead of a fill color.
  • AnnotationManager.LoadAnnotations has been deprecated and should be replaced with the ImportAnnotations function.
  • Textareas now update on the change event instead of the blur event to be consistent with other widgets.
  • Transparent stroke colors are no longer selectable for annotations.
WebViewer Universal Viewer
  • Introduced a new full-featured viewer that uses single unified HTML GUI interface for all three document rendering engines (HTML5, Silverlight and Flash).
    See a sample here: WebViewer Universal Sample
WebViewer HTML5 Updates
  • Added support for new annotation types: FreeText, Callout, Caret, Stamps, Polyline and Polygon
  • Added new annotation creation tools for: Callout, Polyline and Polygon
  • Overhauled annotation (de)serialization, allows easier saving and loading of custom annotations
  • Added printing support
  • Added support for customizing annotation selection algorithms
  • Added support for zooming with new shortcuts ctrl+/ctrl-, ctrl + scroll or alt + scroll (Chrome doesn't support ctrl + scroll)
  • Added canvas-based hit testing for improved annotation selection
  • Pages that have been preloaded are now placed in the document earlier so that there is no white flash as the page is scrolled into view
  • Improved the quality of the page shown when changing zoom levels
  • Improved font loading so that it's more reliable
  • Updates to display modes to make them more customizable
  • Updated the side panel so that it behaves like the Silverlight viewer; either completely open or completely closed
  • Added CoreControls.SetWorkerPath, a function to set the WebWorker path
  • Added PartRetriever.SetErrorCallback to be notified when there is a part retriever error
  • Added PartRetriever.SetCustomHeaders to add any custom headers to the XOD part requests
  • Added Document.CancelThumbnailRequest to allow cancelling of thumbnails; thumbnail requests are now cancelled as necessary to improve performance
  • Added Document.GetPDFCoordinates to convert XOD coordinates to PDF coordinates
  • Added Document.GetTextPosition which returns location information for individual characters
  • Added support for form fields with auto text size
  • Added a rendering optimization for patterns with unnecessarily large sizes
  • Added AnnotationManager.ImportAnnotCommand to update annotations based on the output from the GetAnnotCommand function
  • Added AnnotationManager.DrawAnnotationsFromList which updates only the pages that annotations in the list belong to
  • Added support for free hand annotations with multiple paths
  • Added new cursors that are shown in different situations
  • Added support for bookmarks to external URLs
  • Allow resizing of individual annotations while multi-selected
  • Fixed performance issue that occurred when selecting many annotations
  • Fixed issue where widget field values weren't being encoded
  • Fixed issue that occurs when the widget type isn't supported
  • Fixed rendering issue related to resource dictionaries
  • Fixed memory leak when clearing search results
  • Fixed issues with cancelling part loading
  • The hidden flag on widgets is now properly respected
  • Fixed issue when window.devicePixelRatio is less than 1
  • Fixed issue with loading popup note text generated by other viewers
  • Fixed issue with "whole word only" searching where some results wouldn't be found
  • Fixed issue with a search being cancelled when the page or display mode is changed
WebViewer Mobile Updates
  • Added an options panel that displays various options for the viewer
  • Added an option to set the landscape display mode to single or double page
  • The toolbar is now hidden initially by default
  • IE11 is now supported
  • Fixed issue in some Android browser versions that had trouble with negative transforms
  • Fixed iOS7 issue caused by the window height changing slightly after loading the document
  • Fixed iOS7 issue where the reported height in landscape mode is incorrect
  • Fixed iOS7 issue that occurred when "cookies and other website data" are blocked
  • Fixed issue with non-ASCII characters

Version 1.6

October 8, 2013 version 1.6.1

WebViewer HTML5 Updates
  • Fixed an issue on Firefox where document locations had to be URL encoded
  • Fixed an issue on IE9 where cross domain document URLs were incorrectly detected as supported by the HTML5 engine
WebViewer Silverlight Updates
  • Fixed an issue on IE8 where an "Unhandled Error in Silverlight..." was thrown when a document is loaded

September 11, 2013 version 1.6.0

Upgrade Notes
  • If using the HTML5 ReaderControl directly then please note that the document parameters are now placed after the hash (#) instead of being part of the query string (?) by default. For the previous behavior you can pass false to ControlUtils.getQueryStringMap().
  • The English translation file has been updated with three new translations for saving annotations (savingAnnotations, saveSuccess, saveError).
  • AnnotationManager.SaveAnnotations() has been deprecated and should now be replaced with ExportAnnotations.
WebViewer HTML5 Updates
  • Added an offline library sample demonstrating how to load and view multiple documents in a completely offline scenario
  • Added a sample showing how to create a basic accessible viewer
  • Added a sample showing how to integrate WebViewer with the deck.js library
  • Added Document.LoadPageText() to get all of the text from a page
  • The language to use can now be auto-detected by passing in true to ControlUtils.getI18nOptions()
  • Added startOffline parameter to WebViewer to specify that it should load the document from the offline database
  • Documents can now be passed an id that is used to uniquely identify them for offline mode
  • Added default messages for when annotations are being saved
  • Added DocumentViewer.ScrollViewUpdated() to handle custom resizing of the viewer
  • Added support for Named and GoTo form actions
  • The control key is no longer required to be pressed when using the arrow keys to navigate between pages
  • Fixed issues and memory leaks related to calling WebViewer.loadDocument() multiple times
  • Fixed drawing issue with certain gradients
  • Fixed issue that occasionally occurred with annotation loading
  • Fixed issue in Internet Explorer where pressing enter in the zoom box had no effect
  • Fixed issue with form objects in the same location on different pages sometimes not being added to the page
  • Fixed form button positioning when zoomed out
  • Fixed an issue with encrypted documents where pages would sometimes fail to render
  • Fixed issue in Internet Explorer with scrolling between pages in non-continuous modes
  • Fixed issue where a document with a large embedded xfdf could cause the first page not to render
WebViewer Mobile Updates
  • Added a sample showing how to integrate WebViewer in an iOS app
  • Added a sample showing how to integrate WebViewer in a WinRT app
  • Added mobileRedirect parameter to WebViewer to allow disabling of the default redirect for the mobile viewer
  • Upgraded to jQuery mobile 1.3.2
  • Fixed an issue in the default Android browser where annotations would not be visible when zoomed in
  • Fixed issue in newer versions of the Android browser where occasionally single characters were not drawn
  • Added workaround for issue in IE10 where pages would sometimes be offset when swiping
WebViewer Flash Updates
  • Added a full screen button to the toolbar
WebViewer Silverlight Updates
  • Fixed issue with saving annotations when the local culture isn't the same as the invariant culture

Version 1.5

June 26, 2013 version 1.5.0

Upgrade Notes
  • HTML5 ReaderControl functions have been modified to be more consistent with the WebViewer function naming scheme. This may affect anyone that has made customizations to the HTML5 ReaderControls directly or through config files.
  • Please refer to html5/WebViewerInterface.js for the function names and review your customizations to make sure that they are using the new naming scheme.
WebViewer HTML5 Updates
  • Added internationalization support
  • Added Pause, Resume and Cancel CanvasAsync functions to go with LoadCanvasAsync
  • Added keyboard shortcuts for annotation copy, paste, save and toggle
  • The scroll wheel now changes pages in non-continuous modes
  • Removed the extra iframe that was used by the desktop viewer
  • Added a persistent custom attribute "Custom" to all annotations
  • Allowed customization of annotation popup element
  • Updated how display modes are handled so that they can be customized more easily
  • Added consistent console warnings when attempting to call a WebViewer function that isn't implemented
  • Annotation notes are now displayed in the same location when rotating or changing the zoom level
  • Improved performance when loading a large xfdf file
  • Fixed issue with popups sometimes not being able to be minimized
  • Fixed issue where the popup note tail would sometimes be drawn in the wrong location
  • Fixes for display modes when using WebViewer
  • Fixed issue where annotations with transparent stroke or fill were not displaying correctly in the annotation menu
  • Fixed issue where the annotation selection rectangle was not being displayed
  • Fixed issue when loading form data into a field whose name contains whitespace
  • Fixed issue where a page number could not be entered and changed to in IE
WebViewer Mobile Updates
  • Reworked pinch zooming so that the zoom level could be increased
  • Added double tap zooming support
  • Added support for Windows tablets and Windows Phone
  • Added support for embedding in a native Android app
  • Added support for the get/set zoom level WebViewer functions
  • Increased the size of the hit box for annotation control points
  • Menu icons are now preloaded
  • Added workarounds so that the page number box works on Android
  • Use the correct font size for widgets
  • Fixed issue with swiping quickly back and forth to the same page
  • Fixed issue where toggling annotations would not hide any annotations on adjacent pages
  • Fixed issues with searching while zoomed in
  • Fixed issues with interactions between popup notes and the fixed menus
  • Fixed issue where pages could be displayed in the wrong location
WebViewer Flash Updates
  • Added support for loading encrypted XOD files
WebViewer Silverlight Updates
  • Added support for xfdf annotations

Version 1.4

April 17, 2013 version 1.4.2

WebViewer HTML5 Updates
  • Added annotationUser and annotationAdmin options
  • Added a cache hinting parameter to the part retrievers
  • Added the ability to pass custom data to the WebViewer
  • Added support for even-odd rule in Chrome and Firefox
  • Only center annotations if they are selected from the annotation list
  • Fixed issues with using serverUrl from WebViewer
  • Fixed issues related to resizing the window while in non-zoom fit modes
  • Fix to allow dotted lines to be displayed in IE and Chrome
  • Fixed an issue where large documents would not load at high zoom levels
  • Fixed an issue with mailto links
  • Fixed an issue where some WebViewer options were not being set correctly
  • Jump to an annotation correctly when selecting it from the annotation list and it's not in view
WebViewer Mobile Updates
  • Allow overriding of the LoadDocument function in custom config files

February 26, 2013 version 1.4.1

WebViewer HTML5 Updates
  • Fixed an issue where popups were sometimes not able to be minimized
  • Fixed a crash in Safari for Windows
  • Fixed an issue where pages would sometimes not load until they were completely visible
WebViewer Mobile Updates
  • Fixed an issue with annotation toggling

February 12, 2013 version 1.4.0

WebViewer HTML5 Updates
  • Added support for PDF Forms (submit form data directly from viewer)
  • Introduced new Customization Framework through configuration files
  • Added DRM Support through XOD encryption
  • Added support for theming in ReaderControl through jQuery UI
  • Added support for offline mode
  • API Reference now includes documentation for ReaderControl
  • Fixed an issue where annotation popup content was not being loaded
  • Fixed an issue in the thumbnail panel that caused the previews not to show up for large documents
WebViewer Mobile Updates
  • Added support for annotation loading and saving
  • Added support for PDF Forms (submit form data directly from viewer)
  • Added DRM Support through XOD encryption
  • Partial support for the new HTML5 Customization Framework
  • New and improved user interface
  • Added support for offline mode

Version 1.3

November 27, 2012 version 1.3.2

WebViewer HTML5 Updates
  • Added ctrl+click multi-selection support for annotations.
  • Control points are now fixed sized, regardless of zoom level.
  • Added a basic PHP sample server script to handle server-side annotation saving and loaded. See: annotationHandler.php
WebViewer Mobile Updates
  • Fixed an issue in rendering certain images on retina display devices.
  • Fixed a problem where documents links were not working in the HTML5 mobile viewer.