# Class: DocumentViewer

## Core. DocumentViewer

Represents a full-featured control used for displaying a Document. The viewer supports text selection and text search, and several page view modes.

#### new DocumentViewer()

  Creates a new empty DocumentViewer.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `defaults` | object | Default values for document viewer. Set FitMode, DisplayMode or Zoom.

### Extends

- Core.EventHandler

### Members

#### <static> Events

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ACTIVE_SEARCH_RESULT_CHANGED` | string | Core.DocumentViewer.activeSearchResultChanged
  `MOUSE_LEFT_UP` | string | Core.DocumentViewer.mouseLeftUp
  `MOUSE_LEFT_DOWN` | string | Core.DocumentViewer.mouseLeftDown
  `CLICK` | string | Core.DocumentViewer.click
  `TAP` | string | Core.DocumentViewer.tap
  `DBL_CLICK` | string | Core.DocumentViewer.dblClick
  `KEY_DOWN` | string | Core.DocumentViewer.keyDown
  `KEY_UP` | string | Core.DocumentViewer.keyUp
  `MOUSE_ENTER` | string | Core.DocumentViewer.mouseEnter
  `MOUSE_MOVE` | string | Core.DocumentViewer.mouseMove
  `MOUSE_LEAVE` | string | Core.DocumentViewer.mouseLeave
  `MOUSE_RIGHT_DOWN` | string | Core.DocumentViewer.mouseRightDown
  `MOUSE_RIGHT_UP` | string | Core.DocumentViewer.mouseRightUp
  `DOCUMENT_UNLOADED` | string | Core.DocumentViewer.documentUnloaded
  `ANNOTATIONS_LOADED` | string | Core.DocumentViewer.annotationsLoaded
  `BEFORE_DOCUMENT_LOADED` | string | Core.DocumentViewer.beforeDocumentLoaded
  `DOCUMENT_LOADED` | string | Core.DocumentViewer.documentLoaded
  `DISPLAY_PAGE_LOCATION` | string | Core.DocumentViewer.displayPageLocation
  `NOTIFY` | string | Core.DocumentViewer#event:notify
  `SEARCH_IN_PROGRESS` | string | Core.DocumentViewer.searchInProgress
  `TEXT_SELECTED` | string | Core.DocumentViewer.textSelected
  `TOOL_MODE_UPDATED` | string | Core.DocumentViewer.toolModeUpdated
  `FIT_MODE_UPDATED` | string | Core.DocumentViewer.fitModeUpdated
  `ROTATION_UPDATED` | string | Core.DocumentViewer.rotationUpdated
  `ZOOM_UPDATED` | string | Core.DocumentViewer.zoomUpdated
  `PAGE_NUMBER_UPDATED` | string | Core.DocumentViewer.pageNumberUpdated
  `CHANGE_PAGE` | string | Core.DocumentViewer.changePage
  `LAYOUT_CHANGED` | string | Core.DocumentViewer.layoutChanged
  `PAGE_COMPLETE` | string | Core.DocumentViewer.pageComplete
  `DISPLAY_MODE_UPDATED` | string | Core.DocumentViewer.displayModeUpdated
  `BEGIN_RENDERING` | string | Core.DocumentViewer.beginRendering
  `FINISHED_RENDERING` | string | Core.DocumentViewer.finishedRendering
  `TOOL_UPDATED` | string | Core.DocumentViewer.toolUpdated

#### <static> FitMode

  Contains a list of available fit modes for the DocumentViewer.

  ##### Type:

  - function

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `FitWidth` | function | Zoom level is constrained such that the current page's width will exactly fill the available space.
  `FitPage` | function | Zoom level is constrained such that the current page's width or height will exactly fill the available space.
  `Zoom` | function | Zoom level is not constrained.

#### <static> SearchResults

  The code indicating the reason that the search process concluded.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `ambientStr` | string | The text surrounding the result string.
  `resultStr` | string | The found text.
  `resultStrStart` | number | The index in ambient string where the result string starts.
  `resultStrEnd` | number | The index in ambient string where the result string end.
  `pageNum` | number | The page number which the search was conducted on.
  `resultCode` | number | The reason the search completed.
  `quads` | object | A list of Quads, representing the bounding box(es) of the found text. Useful for highlighting the text.

#### SnapMode

  Enum for snap mode values. Snap modes control which point within the page is considered as the queried point.

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `DEFAULT` | number |
  `POINT_ON_LINE` | number |
  `LINE_MID_POINT` | number |
  `LINE_INTERSECTION` | number |
  `PATH_ENDPOINT` | number |

### Methods

#### addEventListener(type, fn [, options])

  Add a handler to the given event name

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number |  | The name of the event to listen to
  `fn` | function |  | The handler to be called when the event is triggered
  `options` | object | <optional> | Optional options object for addEventListener ###### Properties
  Name | Type | Description
  --- | --- | ---
  `once` | boolean | If true then the handler will be called only once

  Inherited From:
    - Core.EventHandler#addEventListener

  ##### Returns:

  Returns the object that 'addEventListener' is being called on
  Type
    object

  ##### Example

      annotManager.addEventListener('annotationChanged', (annotations, action) => {
        ...
      });

#### clearSearchResults()

  Clears all search results from the viewer

#### clearSelection()

  Clears any selected text on the all pages.

#### closeDocument()

  Reinitializes data and clears the viewer area content.

#### disableArrowKeyNavigation()

  Disable using the left/right arrow keys to switch pages.

#### disableAutomaticLinking()

  Disable automatic linking. If disabled then any URLs detected in the document text will not automatically be linked.

#### disableLoadingAnnotationsFromVisiblePages()

  If loading annotations from visible pages was previously enabled then calling this function will switch back to the default behavior.

#### disableReadOnlyMode()

  Disables read-only mode in the viewer.

#### disableRightToLeftPageRendering()

  Disable right to left page rendering order.

#### disableStylusMode()

  Disables the stylus annotating mode for all annotation tools.

#### disableViewportRenderMode()

  Disables viewport rendering mode

#### displayAdditionalSearchResult(result)

  Displays the new search result without clearing previous results

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `result` | object | The result of a search, Core.DocumentViewer.SearchResult Returned by onResult in Core.DocumentViewer#textSearchInit.

#### displayAdditionalSearchResults(results)

  Displays the new search results without clearing previous results If you need to display many results at the same time this can be much more efficient than calling displayAdditionalSearchResult for each result

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `results` | Array.<object> | An array of search results Core.DocumentViewer.SearchResult. Returned by onResult in Core.DocumentViewer#textSearchInit.

#### displayBookmark(bookmark)

  If the boomark is an internal link then it scrolls the viewer so that the position of the bookmark is in the upper-left corner of the viewer. If it's an external URL then it opens the URL.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `bookmark` | Bookmark | A bookmark that specifies the location to go to. Returned by Core.Document#getBookmarks.

#### displayFirstPage()

  Scrolls the viewer so that the upper-left corner of the Document's first page is in the upper-left corner of the viewer.

#### displayLastPage()

  Scrolls the viewer so that the upper-left corner of the Document's last page is in the upper-left corner of the viewer.

#### displayPageLocation(pageNumber, horizontalPosition, verticalPostion [, doNotJumpIfInView])

  Shifts the current viewport of the viewer such that it can display the specified viewer coordinate position Please refer to https://www.pdftron.com/documentation/web/guides/coordinates/#viewer-page-coordinates for more details

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number |  | The page number the location is on
  `horizontalPosition` | number |  | The horizontal position from the x-axis origin of the page (in viewer page coordinates)
  `verticalPostion` | number |  | The vertical position from the y-axis of the page (in viewer page coordinates)
  `doNotJumpIfInView` | boolean | <optional> | If true then if the page location is currently in view don't cause the viewer to shift

#### displaySearchResult(result [, jump])

  Scrolls the viewer so that the position of the search result is in the middle of the viewer.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `result` | object |  | The result of a search, Core.DocumentViewer.SearchResult. Returned by onResult in Core.DocumentViewer#textSearchInit.
  `jump` | function | <optional> | The callback for navigating to the found result. This is optional and will jump to the correct location in the DocumentViewer if no parameter is passed.

#### dispose()

  Disposes the current document's data

#### drawSelection(pageNumber)

  Draws the text selection for the specified page. Should be called after calling AnnotationManager's drawAnnotations function if the selection should still be shown.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number to draw the selection on

#### enableArrowKeyNavigation()

  Enable using the left/right arrow keys to switch pages.

#### enableAutomaticLinking()

  Enable automatic linking. If enabled then any URLs detected in the document text will automatically be linked.

#### enableLoadingAnnotationsFromVisiblePages()

  Enable annotations to only be loaded from the visible pages and removed when a page is no longer visible. Note that when enabling this option only annotations on the visible pages will be exported or included in the downloaded document

#### enableReadOnlyMode()

  Enables read-only mode in the viewer. In this mode no page manipulation features can be done from thumbnail panel of UI.

#### enableRightToLeftPageRendering()

  Enable the right to left page rendering order.

#### enableStylusMode()

  Puts all annotation tools in the stylus annotating mode. When in this mode, finger movements will scroll the document and using a stylus device will annotate the document.

#### enableViewportRenderMode()

  Enables viewport rendering mode. This only renders the part of the page that is visible within the viewport.

#### getActiveSearchResult()

  Gets the currently active search result

  ##### Returns:

  SearchResult Core.DocumentViewer.SearchResult
  Type
    object

#### getAnnotationHistoryManager()

  Returns the AnnotationHistoryManager used by this DocumentViewer

  ##### Returns:

  an instance of AnnotationHistoryManager
  Type
    AnnotationHistoryManager

#### getAnnotationManager()

  Returns the AnnotationManager used by this DocumentViewer

  ##### Returns:

  an instance of AnnotationManager
  Type
    AnnotationManager

#### getAnnotationsLoadedPromise()

  Gets a promise that resolves when the annotations in the current document have all been loaded

  ##### Returns:

  Promise that resolves when the annotations in the current document have loaded.
  Type
    Promise.<any>

#### getColorSeparationsAtPoint(pageNumber, x, y)

  Gets the color separation values for the specified point. The x and y values should be in page coordinates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number of the point
  `x` | number | The x value of the point
  `y` | number | The y value of the point

  ##### Returns:

  A list of objects which each have the name of the separation and the saturation percentage of the color at the point [{ name, value }, ...]
  Type
    Array.<any>

#### getCompleteRotation(pageNumber)

  Returns the complete rotation of the page including the document's rotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number to get that page's rotation

  ##### Returns:

  The current complete rotation.
  Type
    Core.PageRotation

#### getCurrentPage()

  Returns the current page number.

  ##### Returns:

  The current 1-indexed page number.
  Type
    number

#### getDisplayModeManager()

  Returns the DisplayModeManager used by this DocumentViewer

  ##### Returns:

  an instance of DisplayModeManager
  Type
    DisplayModeManager

#### getDocument()

  Returns the Document that is currently being displayed by the viewer.

  ##### Returns:

  returns the current document.
  Type
    Core.Document

#### getExactViewportRegionRect(pageNumber)

  Returns the exact viewport rendering region if viewport rendering is enabled.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number

  ##### Returns:

  returns the current viewport rendering region
  Type
    object

#### getFitMode()

  Returns the current fit mode.

  ##### Returns:

  The current fit mode.
  Type
    Core.DocumentViewer.FitMode

#### getMargin()

  Returns a pixel value, representing the left, right, top and bottom margins.

  ##### Returns:

  The margin value.
  Type
    number

#### getPageCount()

  Returns the number of pages in a document.

  ##### Returns:

  The number of the pages in the current document.
  Type
    number

#### getPageHeight(pageNumber)

  Get the current height of the specified page, taking into account rotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number

  ##### Returns:

  The height of the page
  Type
    number

#### getPageRotations()

  Gets the individual page rotations of the document. Only returns pages that have been rotated individually.

  ##### Returns:

  An object with keys that are page indexes (1-indexed) and values that are rotation values.
  Type
    object

#### getPageSearchResults( [pageNumber])

  Get results of the current search

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number | <optional> | page number indicating to return the search hits from a specific page. If it's not given, the function will return search hits from all document pages.

  ##### Returns:

  SearchResult array Core.DocumentViewer.SearchResult
  Type
    object

#### getPageWidth(pageNumber)

  Get the current width of the specified page, taking into account rotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number

  ##### Returns:

  The width of the page
  Type
    number

#### getPageZoom(pageNumber)

  Get the zoom value for a particular page.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number.

  ##### Returns:

  Returns page's zoom value
  Type
    number

#### getRightToLeftPages()

  Returns whether right to left page rendering is enabled.
  Deprecated:
    - Since version 8.0. Use isRightToLeftPageRenderingEnabled instead.

  ##### Returns:

  The current page rendering order.
  Type
    boolean

#### getRotation( [pageNumber])

  Returns the current viewing rotation.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number | <optional> | Optionally pass the page number to get the specific page's rotation

  ##### Returns:

  The current viewing rotation.
  Type
    Core.PageRotation

  ##### Example

      PageRotation['E_0'] = 0 (0 degress) <br/>
      PageRotation['E_90'] = 1 (90 degress) <br/>
      PageRotation['E_180'] = 2 (180 degress) <br/>
      PageRotation['E_270'] = 3 (270 degress) <br/>

#### getScrollViewElement()

  Gets the scrollview element that is being used by DocumentViewer

  ##### Returns:

  The scrollview DOM element that DocumentViewer appends pages
  Type
    Element

#### getSelectedText( [pageNumber])

  Returns the text selected by text selection tool or search.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number | <optional> | Optionally pass the 1-indexed page number

  ##### Returns:

  Selected text.
  Type
    string

#### getSelectedTextQuads( [pageNumber])

  Returns the quads of the text selected by text selection tool or search.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number | <optional> | Optionally pass the 1-indexed page number

  ##### Returns:

  Selected text quads.
  Type
    object

#### getTool(Name)

  Returns a specific tool from the tool mode map.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `Name` | string | Core.Tools.ToolNames | of the tool. eg 'AnnotationEdit'

  ##### Returns:

  The tool mode map object.
  Type
    Core.Tools.Tool

#### getToolMode()

  Returns the current tool.

  ##### Returns:

  The current tool.
  Type
    Core.Tools.Tool

#### getToolModeMap()

  Returns the tool mode map object.

  ##### Returns:

  The tool mode map object.
  Type
    object

#### getViewerElement()

  Gets the viewer element that is being used by DocumentViewer

  ##### Returns:

  The viewer DOM element that DocumentViewer appends pages
  Type
    Element

#### getViewportRegionRect(pageNumber)

  Returns the current viewport rendering region if viewport rendering is enabled.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number

  ##### Returns:

  returns the current viewport rendering region
  Type
    object

#### getWatermark()

  Gets the watermark options that had been previously set.

  ##### Returns:

  Returns a promise containing the watermark options.
  Type
    Promise.<object>

#### getZoom()

  Returns the current zoom level

  ##### Returns:

  The current zoom level.
  Type
    number

#### isAutomaticLinkingEnabled()

  Returns whether add automatic link is enabled.

  ##### Returns:

  Whether add automatic link is enabled.
  Type
    boolean

#### isInViewportRenderMode()

  Returns a boolean to denote if viewer is in viewport rendering mode

  ##### Returns:

  the boolean to denote if in viewport render mode
  Type
    boolean

#### isRightToLeftPageRenderingEnabled()

  Returns whether right to left page rendering is enabled.

  ##### Returns:

  True if right to left page rendering is enabled, false otherwise.
  Type
    boolean

#### loadAsync(partRetriever, options)

  Initialize the viewer and load a .xod document into the viewer.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `partRetriever` | Core.PartRetrievers.PartRetriever | An instance of PartRetriever.
  `options` | object | An object that can contain the following optional parameters ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | <optional> | The type of document being loaded. Values are xod, pdf, office, webviewerServer. Default is xod.
  `docId` | string | <optional> | An optional unique identifier for the document, used for offline mode
  `onError` | function | <optional> | A callback of the form function(err) which will be called when a loading error occurs.
  `workerTransportPromise` | Promise.<void> | <optional> | Required for PDF viewing. A promise that will be resolved when a worker transport has been initialized. This can be created by calling Core.initializeWorkerTransport
  `getPassword` | function | <optional> | An method of the form function(callback) where callback is of the form function(password). getPassword will be called when a password is required to load a PDF document and should call the callback with the retrieved password.
  `extension` | string | <optional> | An field used to specify the type of file being read. This is only relevant for PDF viewing and at the moment only works for certain image formats and .pdf
  `licenseKey` | string | <optional> | The license key to use. Only necessary for client side and WebViewer Server rendering.

#### loadDocument(source [, options])

  Initialize the viewer and load the given file into the viewer.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `source` | string | File | ArrayBuffer | Blob | Core.Document | Core.PDFNet.PDFDoc |  | Source parameter, path/url to document or File.
  `options` | object | <optional> | An object that can contain the following optional parameters. ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `l` | string | <optional> | The license key for viewing PDF or Office files (PDF/Office only).
  `docId` | string | <optional> | An unique identifier for the document, used for offline mode.
  `onLoadingProgress` | function | <optional> | A callback function for loading progress, function signature function(percent) {}.
  `onError` | function | <optional> | A callback function that will be called when error occurs in the process of loading a document. function signature function(e) {}
  `workerTransportPromise` | Promise.<any> | <optional> | The workerTransportPromise that should be used to load the document.
  `password` | string | function | <optional> | A password string or a function of the form function(callback) where callback is of the form function(password). This 'password' function will be called when a password is required to load a PDF document and should call the callback with the retrieved password.
  `filename` | string | <optional> | A filename that is used for the downloaded file, and for determining the extension when options.extension isn't used.
  `extension` | string | <optional> | Used for specifying the extension of the document to be loaded. This is necessary if the URL/path does not contain the file extension or if you're loading a Blob/File.
  `customHeaders` | object | <optional> | An object containing custom HTTP headers to use when retrieving the document from the specified url. For example: {'Authorization' : 'Basic dXNlcm5hbWU6cGFzc3dvcmQ='}.
  `useDownloader` | boolean | <optional> | A boolean indicating whether Downloader should be used on urls (PDF only). https://www.pdftron.com/documentation/web/guides/usedownloader-option/.
  `withCredentials` | boolean | <optional> | Whether to set the withCredentials property on the XMLHttpRequest.
  `pageSizes` | Array.<object> | <optional> | An array of objects in the shape of { width: number, height: number }. Used to determine the page sizes when loading an image file.
  `backendType` | string | <optional> | A string representing the "backend type" for rendering PDF documents. Pass "ems" to force the use of the ASM.js/WebAssembly worker and "wasm-threads" for threaded WebAssembly.
  `xodOptions` | object | <optional> | An object that contains the options for a XOD document. ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `decrypt` | boolean | <optional> | Function to be called to decrypt a part of the XOD file. For default XOD AES encryption pass Core.Encryption.decrypt.
  `decryptOptions` | boolean | <optional> | An object with options for the decryption e.g. {p: "pass", type: "aes"} where is p is the password.
  `streaming` | boolean | <optional> | A boolean indicating whether to use http or streaming PartRetriever, it is recommended to keep streaming false for better performance. https://www.pdftron.com/documentation/web/guides/streaming-option.
  `azureWorkaround` | boolean | <optional> | Whether or not to workaround the issue of Azure not accepting range requests of a certain type. Enabling the workaround will add an extra HTTP request of overhead but will still allow documents to be loaded from other locations.
  `startOffline` | boolean | <optional> | Whether to start loading the document in offline mode or not. This can be set to true if the document had previously been saved to an offline database using WebViewer APIs. You'll need to use this option to load from a completely offline state.
  `webviewerServerURL` | string | <optional> | A URL to the WebViewer server drop-in backend https://www.pdftron.com/documentation/web/guides/wv-server-deployment.
  `fallbackToClientSide` | boolean | <optional> | A boolean indicating whether to fall back to client side rendering when WebViewer server fails
  `cacheKey` | string | <optional> | A key that will be used for caching the document on WebViewer Server.
  `forceClientSideInit` | boolean | <optional> | If set to true then when loading a document using WebViewer Server the document will always switch to client only rendering allowing page manipulation and the full API to be used.
  `loadAsPDF` | boolean | <optional> | If set to true then this will convert any office file passed in into a PDF document
  `type` | string | <optional> | A custom document type. If set then the document type is not determined from the file extension.
  `customHandlerId` | number | <optional> | A field used to specify PDFTron custom security handler. Its value needs to be an integer in [0, 0xFFFFFFFF].
  `customDocParams` | object | <optional> | An object used to pass properties down to a custom document type.
  `officeOptions` | object | <optional> | An object that contains the options for an Office document ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `autoFillMap` | object | <optional> | A map of template key-value pairs
  `disableBrowserFontSubstitution` | boolean | <optional> | By default, office viewing takes a lightweight approach to font substitution, allowing the browser to select fonts when they are not embedded in the document itself. While this means that WebViewer has access to all the fonts on the user's system, it also means that an office document may have a different "look" on different systems (depending on the fonts available) and when it is converted to PDF (as the PDF conversion routine cannot obtain low-level access to user fonts, for security reasons). disableBrowserFontSubstitution prevents this browser substitution, forcing the WebViewer backend to handle all fonts. This means that viewing and conversion to PDF will be 100% consistent from system-to-system, at the expense of a slightly slower initial viewing time and higher bandwidth usage. Using https://www.pdftron.com/documentation/web/faq/self-serve-substitute-fonts/ along with this option allows you to fully customize the substitution behaviour for all office files.
  `formatOptions` | object | <optional> | An object that contains formatting options for an Office document. Same options as allowed here Core.PDFNet.Convert.OfficeToPDFOptions. ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `applyPageBreaksToSheet` | boolean | <optional> | If true will split Excel worksheets into pages so that the output resembles print output.
  `displayChangeTracking` | boolean | <optional> | If true will display office change tracking markup present in the document (i.e, red strikethrough of deleted content and underlining of new content). Otherwise displays the resolved document content, with no markup. Defaults to true.
  `excelDefaultCellBorderWidth` | number | <optional> | Cell border width for table cells that would normally be drawn with no border. In units of points. Can be used to achieve a similar effect to the "show gridlines" display option within Microsoft Excel.
  `excelMaxAllowedCellCount` | number | <optional> | An exception will be thrown if the number of cells in an Excel document is above the value. Used for early termination of resource intensive documents. Setting this value to 250000 will allow the vast majority of Excel documents to convert without issue, while keeping RAM usage to a reasonable level. By default there is no limit to the number of allowed cells.
  `locale` | string | <optional> | Sets the value for Locale in the options object ISO 639-1 code of the current system locale. For example: 'en-US', 'ar-SA', 'de-DE', etc.

  ##### Returns:

  A promise that resolves when the document is finished loading
  Type
    Promise.<void>

#### off( [type] [, fn])

  Remove a handler of the given event name

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number | <optional> | The name of the event to remove the handler of. If type is undefined, all the handlers of the object will be removed
  `fn` | function | <optional> | The handler associated with this event to be removed. If fn is undefined, all the handlers of the given event name will be removed

  Inherited From:
    - Core.EventHandler#off
  Deprecated:
    - Since version 8.0. Use removeEventListener instead.

  ##### Returns:

  Returns the object that 'off' is being called on
  Type
    object

  ##### Example

      annotManager.off();
      annotManager.off('annotationChanged');
      annotManager.off('annotationChanged', fn);

#### on(type, fn)

  Add a handler to the given event name

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | number | The name of the event to listen to
  `fn` | function | The handler to be called when the event is triggered

  Inherited From:
    - Core.EventHandler#on
  Deprecated:
    - Since version 8.0. Use addEventListener instead.

  ##### Returns:

  Returns the object that 'on' is being called on
  Type
    object

  ##### Example

      annotManager.on('annotationChanged', (annotations, action) => {
        ...
      });

#### one(type, fn)

  Same as 'on' except the handler will be called only once

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | number | The name of the event to listen to
  `fn` | function | The handler to be called when the event is triggered

  Inherited From:
    - Core.EventHandler#one
  Deprecated:
    - Since version 8.0. Use addEventListener with {'once': true} as options instead.

  ##### Returns:

  Returns the object that 'one' is being called on
  Type
    object

  ##### Example

      annotManager.one('annotationChanged', (annotations, action) => {
       ...
      });

#### recalculateLayout(pagesToRecalculate)

  Request a recalculation of page layout and rerender all pages. For use when modifying the underlying Document without using the provided page modification functions (cropPages, rotatePages...)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pagesToRecalculate` | Array.<number> | An array of page numbers (1-indexed) that should be recalculated

#### refreshAll()

  Invalidates the rendering cache for all pages and removes embedded thumbnails for viewer optimized PDF

#### refreshPage(pageNumber)

  Invalidates the rendering cache for the specified page

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number of the page (1-indexed)

#### removeContent(removeData, rotationChanged, isZoomChanged)

  Removes all the page content from the DOM. Also clear the cache if the zoom or rotation has changed.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `removeData` | boolean | Whether or not to remove all event handlers and data on the elements
  `rotationChanged` | boolean |
  `isZoomChanged` | boolean |

#### removeEventListener( [type] [, fn])

  Remove a handler of the given event name

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number | <optional> | The name of the event to remove the handler of. If type is undefined, all the handlers of the object will be removed
  `fn` | function | <optional> | The handler associated with this event to be removed. If fn is undefined, all the handlers of the given event name will be removed

  Inherited From:
    - Core.EventHandler#removeEventListener

  ##### Returns:

  Returns the object that 'removeEventListener' is being called on
  Type
    object

  ##### Example

      annotManager.removeEventListener();
      annotManager.removeEventListener('annotationChanged');
      annotManager.removeEventListener('annotationChanged', fn);

#### rotateClockwise( [pageNumber])

  Rotates all pages in the currently displayed document clockwise by 90 degrees.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number | <optional> | Optionally pass the page number to rotate only a specific page

#### rotateCounterClockwise( [pageNumber])

  Rotates all pages in the currently displayed document counter-clockwise by 90 degrees.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number | <optional> | Optionally pass the page number to rotate only a specific page

#### scrollViewUpdated()

  This function must be called after modifying the scroll view element's dimensions or properties. The scroll view is the element returned from docViewer.getScrollViewElement()

#### select(pt1, pt2)

  Selects the text content of the document given two page coordinates.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pt1` |  | Starting page coordinate. Requires properties x, y and pageNumber.
  `pt2` |  | Ending page coordinate. Requires properties x, y and pageNumber.

#### setActiveSearchResult(result)

  Sets the active search result, causing it to be displayed as a different color and visible on the screen.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `result` | object | The result of a search, Core.DocumentViewer.SearchResult. Returned by onResult in Core.DocumentViewer#textSearchInit.

#### setAnnotationImportOptions(options)

  Set the options that are used when importing annotations from a document asynchronously. These are the options that will be passed to AnnotationManager.importAnnotations.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `options` | object | The options for importing ###### Properties
  Name | Type | Description
  --- | --- | ---
  `batchSize` | number | The number of annotations to import in each batch
  `batchDelay` | number | The amount of time in milliseconds to delay between importing each batch

#### setCurrentPage(pageNumber)

  Sets the current page. Updates the current page and jumps to it.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number to jump to.

#### setDefaultPageColor(color)

  Sets default background color for pages, default is white.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | string | Background color value

#### setDocumentXFDFRetriever(retriever)

  Sets the XFDF retriever that will be called when a document is being loaded. The XFDF returned from the retriever will be merged into the document. It is recommended to use this function instead of annotManager.importAnnotations if you are loading XFDF from your server so that you don't need to wait for the annotationsLoaded event to be triggered. setDocumentXFDFRetriever will ensure that the annotation data is merged at the right time and as early as possible.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `retriever` | Core.DocumentViewer.DocumentXFDFRetriever | null | A retriever function that returns a Promise which should resolve to the XFDF string that is going to merged into the document

  ##### Returns:

  A promise that resolves when the retriever has been set
  Type
    Promise.<void>

  ##### Example

      instance.docViewer.setDocumentXFDFRetriever(async (documentId) => {
        const documentXFDFString = await fetchDocumentXFDFFromServer(documentId);
        return documentXFDFString;
      })

#### setEnableAutomaticLinking(enable)

  Sets whether automatic linking should be enabled. If enabled then any URLs detected in the document text will automatically be linked.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable` | boolean | Whether to enable automatic linking.

  Deprecated:
    - since version 8.0 Please use enableAutomaticLinking or disableAutomaticLinking instead

#### setEnableStylusMode(enable)

  Sets if all the annotation tools are in the stylus annotating mode. When in this mode, finger movements will scroll the document and using a stylus device will annotate the document.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `enable` | boolean | a boolean indicating whether stylus annotating mode should be used

  Deprecated:
    - since version 8.0 Please use enableStylusMode or disableStylusMode instead

#### setEnableStylusMode()

  Returns whether stylus annotating mode is enabled.

  ##### Returns:

  Returns whether stylus annotating mode is enabled
  Type
    boolean

#### setFitMode(fitMode)

  Sets how the document will scale to fit the size of the scrollviewer's viewport. Also re-renders content to the appropriate zoom level. Only renders if a document has been loaded.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `fitMode` | DocumentViewer.FitMode |

#### setInternalAnnotationsTransform(handler)

  Allows you to transform (or replace) the internal annotations of the document. Note that to handle annotations using PDFNetJS without useDownloader: false you will also want to call setPagesUpdatedInternalAnnotationsTransform

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `handler` | function | A handler function that takes annotation data as the first parameter and a callback that is called when the transformed data is ready as the second parameter

#### setLoadAnnotationsFromVisiblePages(val)

  Sets whether annotations should only be loaded from the visible pages and removed when a page is no longer visible. Note that when enabling this option only annotations on the visible pages will be exported or included in the downloaded document

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | boolean | Whether the option should be enabled or not

  Deprecated:
    - since version 8.0 Please use enableLoadingAnnotationsFromVisiblePages or disableLoadingAnnotationsFromVisiblePages instead

#### setMargin(margin)

  Set the pixel value to use for the left, right, top and bottom margins.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `margin` | number | The margin value to set.

#### setOptions(options)

  Sets specific DocumentViewer options.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `options` | object | An options object, currently valid options are enableAnnotations and annotMode

#### setPageRotations(rotations)

  Sets the individual page rotations of multiple pages at once. Pages that aren't specified will use the default document rotation.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rotations` | object | An object with keys that are page indexes (1-indexed) and values that are rotation values. Rotations should be specified as {Core.PageRotation}s

#### setPagesUpdatedInternalAnnotationsTransform(handler)

  Allows you to transform (or replace) the internal annotations of the document when pages receive an update event. This includes when using PDFNetJS with downloader enabled (default) on a linearized document. For completeness you will also want to call setInternalAnnotationsTransform.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `handler` | function | A handler function that takes annotation data as the first parameter, an array of updated page numbers as a second parameter and a callback that is called when the transformed data is ready as a third parameter

#### setPageVisibilityCallback(callback)

  Sets the callback function that will be called when a page is newly visible in the viewer.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `callback` | function | A function that takes in a page number indicating the page that is now visible

#### setPageZoom(pageNumber, zoom)

  Sets the zoom for a particular page. Should be followed by a call to updateView to actually render the page.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The page number.
  `zoom` | number | Zoom value for page.

#### setRightToLeftPages(rightToLeftPages)

  Sets the page rendering order.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `rightToLeftPages` | boolean | Whether the new page rendering order should be right to left or not.

  Deprecated:
    - since version 8.0 Please use enableRightToLeftPageRendering or disableRightToLeftPageRendering instead

#### setRotation(pageRotation [, pageNumber])

  Sets the current viewing rotation.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageRotation` | Core.PageRotation |  | desired viewing rotation.
  `pageNumber` | number | <optional> | Optionally pass the page number to set the specific page's rotation

#### setScrollViewElement(scrollViewElement)

  Sets the scrollview element that DocumentViewer will append rendered pages to.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `scrollViewElement` | Element | The scrollview DOM element to be used

#### setSearchHighlightColors(colorOptions)

  Sets the color to use when highlighting text from searching.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `colorOptions` | object | An object with searchResult or activeSearchResult properties set as a color eg 'rgba(0, 0, 200, 0.5)'

  ##### Example

      docViewer.setSearchHighlightColors({
        searchResult: 'rgba(255, 0, 0, 0.5)',
        activeSearchResult: 'rgba(0, 255, 0, 0.5)'
      });

#### setSearchPageBatchSize(searchBatchSize)

  [PDF Document only] Set the number of pages to search at a time. Searching more pages at a time will speed up searching but decrease page rendering responsiveness while a search is ongoing. Default is 50.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `searchBatchSize` | number | The number of pages to search at a time

#### setTextHighlightColor(color)

  Sets the color to use when highlighting text from text selection.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `color` | string | The color to set. eg 'rgba(0, 0, 200, 0.3)'

#### setToolMode(tool)

  Sets the tool mode. Also removes selection caused by text selection or search.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tool` | Core.Tools.Tool | An instance of the toolmode

#### setViewerElement(viewerElement)

  Sets the viewer element that DocumentViewer will append rendered pages to.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `viewerElement` | Element | The viewer DOM element to be used

#### setViewportRenderMode(val)

  Sets whether viewport rendering mode should be used

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `val` | boolean | Whether viewport rendering mode should be used or not

  Deprecated:
    - since version 8.0 Please use enableViewportRenderMode or disableViewportRenderMode instead

#### setWatermark(options)

  Sets watermark to be added to documents. Instead of an options object you can also pass a Promise that resolves with the watermark options object. If the document hasn't been loaded yet then DocumentViewer will wait to finish loading it until the watermark options are ready.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `options` | object | Object that contains style/content of the watermark ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `diagonal` | object | <optional> |  | Settings for a diagonal watermark ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `text` | string | <optional> |  | The text content to be rendered as a diagonal watermark
  `fontSize` | number | <optional> | 20 | The font size of the text, measured in pixels (px)
  `fontFamily` | string | <optional> | 'sans-serif' | The font type
  `color` | string | <optional> | 'black' | The color of the text
  `opacity` | number | <optional> | 100 | The percentage of opacity for the watermark
  `header` | object | <optional> |  | Settings for a header watermark ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `left` | string | <optional> |  | The text content to be rendered at the left side of the header
  `center` | string | <optional> |  | The text content to be rendered at the center of the header
  `right` | string | <optional> |  | The text content to be rendered at the right side of the header
  `fontSize` | number | <optional> | 20 | The font size of the text, measured in pixels (px)
  `fontFamily` | string | <optional> | 'sans-serif' | The font type
  `color` | string | <optional> | 'black' | The color of the text
  `opacity` | number | <optional> | 100 | The percentage of opacity for the watermark
  `footer` | object | <optional> |  | Settings for a footer watermark ###### Properties
  Name | Type | Argument | Default | Description
  --- | --- | --- | --- | ---
  `left` | string | <optional> |  | The text content to be rendered at the left side of the footer
  `center` | string | <optional> |  | The text content to be rendered at the center of the footer
  `right` | string | <optional> |  | The text content to be rendered at the right side of the footer
  `fontSize` | number | <optional> | 20 | The font size of the text, measured in pixels (px)
  `fontFamily` | string | <optional> | 'sans-serif' | The font type
  `color` | string | <optional> | 'black' | The color of the text
  `opacity` | number | <optional> | 100 | The percentage of opacity for the watermark
  `custom` | Core.DocumentViewer.CustomWatermarkCallback | <optional> |  | Function that is invoked for each page, to fully customize which page(s) have a watermark render, and how they should be rendered.
  `shouldDrawOverAnnotations` | boolean | <optional> | false | Toggles if the watermark should be drawn over annotations

  ##### Example

      docViewer.setWatermark({
        diagonal: {
          text: (string),
          fontSize: (number || 20),
          fontFamily: (string || 'sans-serif'),
          color: (string || 'black'),
          opacity: (number || 100)
        },
        header: {
          left: (string),
          center: (string),
          right: (string),
          fontSize: (number || 20),
          fontFamily: (string || 'sans-serif'),
          color: (string || 'black'),
          opacity: (number || 100)
        },
        footer: {
          left: (string)
          center: (string),
          right: (string),
          fontSize: (number || 20),
          fontFamily: (string || 'sans-serif'),
          color: (string || 'black'),
          opacity: (number || 100),
        },
        custom: (function(ctx, pageIndex, pageWidth, pageHeight)),
        shouldDrawOverAnnotations: (boolean || false)
      });

#### snapToNearest(pageNumber, x, y [, mode])

  Returns the path coordinate within the page that is closest to the queried point.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pageNumber` | number |  | The page number the point is on
  `x` | number |  | The x position to calculate the snap point from
  `y` | number |  | The y position to calculate the snap point from
  `mode` | number | <optional> | Enum for an optional snapping mode for the snapping

  ##### Returns:

  A promise that resolves to an object with x and y properties representing the nearest path point
  Type
    Promise.<any>

#### stopPageRender(pageNumber)

  Stops the rendering of the specified page.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The number of the page who's rendering should be stopped.

#### textSearchInit(pattern, mode [, searchOptions])

  Searches for a particular text string on the currently displayed Document, starting on the current page unless otherwise specified.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `pattern` | string |  | The text to search for.
  `mode` | number |  | The options for search, controlling options such as case sensitivity and search direction.
  `searchOptions` | object | <optional> | An object that can contain the following optional parameters ###### Properties
  Name | Type | Argument | Description
  --- | --- | --- | ---
  `fullSearch` | boolean | <optional> | If true, a search of the entire document will be performed. Otherwise, a single search will be performed.
  `onResult` | function | <optional> | (result) The callback function that is called when the search returns a result.
  `onPageEnd` | function | <optional> | (result) The callback function that is called when reaching the end of the page (if using page_stop mode).
  `onDocumentEnd` | function | <optional> | () The callback function that is called when reaching the end of the document.
  `onError` | function | <optional> | (result) The callback function that is called when search failed or regex has syntax error.
  `startPage` | number | <optional> | Page to start the search on (1-indexed).
  `endPage` | number | <optional> | Page to end the search on inclusively (1-indexed). The search may complete when the search term is found, when the entire document has been searched, and, depending on the search options, at the end of every page. Parameter result: DocumentViewer.SearchResults.

  See:
    - Core.DocumentViewer#SearchMode

#### trigger(type [, data])

  Calls the handlers of the event name with given data

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `type` | string | number |  | event name of which the handlers will be called.
  `data` | * | <optional> | data that will be passed to the handlers. If data is an array, it will be spread and then passed to the handlers

  Inherited From:
    - Core.EventHandler#trigger

  ##### Returns:

  Returns the object that 'trigger' is being called on
  Type
    object

  ##### Example

      annotManager.trigger('annotationChanged');
      annotManager.trigger('annotationChanged', [[annotation], 'add', {}]);

#### updateLinks(pageNumber)

  Updates old xod (version <= 1.2) link annotations in the annotation manager

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The 1-indexed page number to update

#### updateView( [visiblePages] [, currentPageNumber])

  Removes previously drawn pages that are no longer visible and draws pages that are visible and have not been drawn. If visiblePages are provided then those pages are rendered otherwise visiblePages are calculated depending on where the DIV elements for the pages are located.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `visiblePages` | Array.<number> | <optional> | An array of integers representing the pages to render.
  `currentPageNumber` | number | <optional> | The number of the page that is currently visible in the viewer.

#### updateVisiblePages( [visiblePages])

  Notifies the document viewer that the visible pages have changed but does not draw any pages.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `visiblePages` | Array.<number> | <optional> | An array of integers representing the pages to render.

#### zoomTo(zoom [, x] [, y])

  Adjusts the viewer's zoom factor, and positions the point (x,y) at the upper left corner of the viewer. Only renders if a document has been loaded.

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `zoom` | number |  | Zoom value.
  `x` | number | <optional> | Horizontal position to scroll to.
  `y` | number | <optional> | Vertical position to scroll to.

#### zoomToMouse(zoom, offsetX, offsetY)

  Adjusts the viewer's zoom factor and positions the point on the document under the mouse at the same position after zooming in.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `zoom` | number | Zoom value
  `offsetX` | number | The x offset from the mouse position to the viewer's position (e.g. taking into account toolbars)
  `offsetY` | number | The y offset from the mouse position to the viewer's position (e.g. taking into side panels)

### Type Definitions

#### CustomWatermarkCallback(ctx, pageIndex, pageWidth, pageHeight)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `ctx` | CanvasRenderingContext2D | The Canvas Context that determines how the watermark will be rendered. Edit the text styles attributes to change the rendering styling.
  `pageIndex` | number | The index of the current page
  `pageWidth` | number | The width of the current page
  `pageHeight` | number | The height of the current page

#### DocumentXFDFRetriever(docId)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `docId` | string | the id of the document that is being loaded

  ##### Returns:

  A promise that resolves to an XFDF string, or an array of XFDF commands
  Type
    Promise.<(string|Array.<string>)>

### Events

#### activeSearchResultChanged

  Triggered when the active search result has changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `result` | object | The new active search result, Core.DocumentViewer.SearchResult.

#### annotationsLoaded

  Triggered when all the annotations embedded in the document have been loaded

#### beforeDocumentLoaded

  Triggered just before the document has been loaded into the viewer

#### beginRendering

  Triggered when DocumentViewer starts rendering pages

#### changePage

  Triggered when the page should be changed. Only fired when using a non-scrollable custom display mode.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNum` | number | The 1-indexed page number

#### click

  Triggered for the click event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### dblClick

  Triggered for the dblClick event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### displayModeUpdated

  Triggered when the display mode is updated

#### displayPageLocation

  Triggered when a page location should be displayed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNum` | number | The 1-indexed page number
  `verticalOffset` | number | The offset from the top of the page
  `horizontalOffset` | number | The offset from the left of the page

#### documentLoaded

  Triggered when a new document has been loaded

#### documentUnloaded

  Triggered when the current document has been closed and unloaded

#### embeddedThumbnailComplete

  Triggered when an embedded thumbnail of a viewer-optimized pdf is completely loaded.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNum` | number | The 1-indexed page number

#### finishedRendering

  Triggered when DocumentViewer finishes rendering pages

#### fitModeUpdated

  Triggered when the fit mode has changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `fitMode` | object | The fit mode that has been changed to e.g. docViewer.FitMode.FitWidth

#### keyDown

  Triggered for the keyDown event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### keyUp

  Triggered for the keyUp event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### layoutChanged

  Triggered when the layout has changed because pages have permanently been added, removed, moved or changed in some other way.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `changes` | object | An object with keys added, removed, moved and contentChanged, indicating which pages have changed

#### mouseEnter

  Triggered for the mouseEnter event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### mouseLeave

  Triggered for the mouseLeave event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### mouseLeftDown

  Triggered for the mouseLeftButtonDown event in the DocumentViewer's viewing area Attach like docViewer.addEventListener('mouseLeftDown', callback)

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### mouseLeftUp

  Triggered for the mouseLeftButtonUp event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### mouseMove

  Triggered for the mouseMove event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### mouseRightDown

  Triggered for the mouseRightButtonDown event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### mouseRightUp

  Triggered for the mouseRightButtonUp event in the DocumentViewer's viewing area

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### notify

  Triggered when there is a notification relating to searching or annotation permissions.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | The type of notification that has occurred

#### pageComplete

  Triggered when a page has been completely rendered.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNum` | number | The 1-indexed page number
  `canvas` | HTMLCanvasElement | The canvas for the page

#### pageNumberUpdated

  Triggered when the page number is updated

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `pageNumber` | number | The new page number (1-indexed)

#### rotationUpdated

  Triggered when the page rotation has changed

  ##### Parameters:

  Name | Type | Argument | Description
  --- | --- | --- | ---
  `rotation` | Core.PageRotation |  | The new viewing rotation.
  `pageNumber` | number | <optional> | Optionally the specific page number that had its rotation changed

#### searchInProgress

  Triggered when a search starts or ends. When Core.DocumentViewer#clearSearchResults is executed searchInProgress event is triggered with both inProgress and isFullSearch arguments to be undefined. This can be used to differentiate the search that hasn’t been started versus the search that was done.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `inProgress` | boolean | Whether a search is in progress or not
  `isFullSearch` | boolean | Whether this is a full text search or not

#### searchResultsChanged

  Triggered when the search results list has changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `results` | Array.<object> | The new search results, Core.DocumentViewer.SearchResult.

#### tap

  Triggered when there is a tap in the DocumentViewer's viewing area. Taps are defined as a mouse down and up within a short time period and within a short distance.a

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `nativeEvt` | object | Event object of the native JavaScript event

#### textSelected

  Triggered when the selected text has changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `quads` | Array.<Core.Math.Quad> | An array of bounding box quads of the selected text
  `text` | string | The selected text
  `pageNumber` | number | The page number that the text was selected on

#### toolModeUpdated

  Triggered when the tool mode has changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `toolModeClass` | object | The tool object that has been changed to.

#### toolUpdated

  Triggered when the tool styles or tool name have changed

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `toolModeClass` | object | The tool object that has been changed.

#### zoomUpdated

  Triggered when the zoom level has been updated

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `zoom` | number | The new zoom level of the viewer

#### Search results