# DocumentViewerController Class

> Creates the controller for a document viewer hosted in an existing element. Construction only prepares controller state. Call initialize() before using document, layout, toolbar, form, signature, annotation, or viewer-event operations. Call dispose() when the host permanently releases the viewer. A document provider is the component that loads document data and supplies the viewer with pages, text, and document-saving functionality. The viewer can use the server-side provider backed by TX Text Control endpoints or the optional PDF.js provider configured through the `pdfjs` property of DocumentLoadSettings.

- **Product:** DS Server
- **Section:** Reference
- **Kind:** Class
- **Path:** DS Server > Reference > JavaScript API - Document Viewer > DocumentViewerController Class
- **Web URL:** https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/
- **LLMs URL:** https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/llms-full.txt

---

## On This Page

- [Description](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/#description)
- [Syntax](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/#syntax)
- [Examples](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/#examples)
- [Members](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/#members)

---

## In This Section

- [Javascript: DocumentViewerController.addEventListener Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/addeventlistener-method/llms.txt): Registers a listener for a public viewer event.
- [Javascript: DocumentViewerController.annotations Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/annotations-property/llms.txt): Controls annotation import/export, stamp definitions, and annotation UI. Available after initialize() completes.
- [Javascript: DocumentViewerController.cancelSearch Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/cancelsearch-method/llms.txt): Clears the active search and its result overlays.
- [Javascript: DocumentViewerController Constructor](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/constructor/llms.txt): Initializes a new instance of the DocumentViewerController class.
- [Javascript: DocumentViewerController.dispose Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/dispose-method/llms.txt): Permanently releases all resources owned by the controller.
- [Javascript: DocumentViewerController.downloadDocument Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/downloaddocument-method/llms.txt): Saves the current document and starts a browser download.
- [Javascript: DocumentViewerController.find Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/find-method/llms.txt): Searches the current document, ignoring case unless requested otherwise.
- [Javascript: DocumentViewerController.forms Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/forms-property/llms.txt): Reads and validates form fields and controls form-field interaction. Available after initialize() completes.
- [Javascript: DocumentViewerController.__init__ Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/init-method/llms.txt): Obsolete. This method will be removed in one of the next versions. Use `controller.initialize()`. Initializes the viewer using the legacy method name.
- [Javascript: DocumentViewerController.initialize Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/initialize-method/llms.txt): Initializes the viewer DOM and its interaction components.
- [Javascript: DocumentViewerController.loadDocument Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/loaddocument-method/llms.txt): Loads a Base64-encoded document and replaces the currently displayed document.
- [Javascript: DocumentViewerController.nextSearchResult Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/nextsearchresult-method/llms.txt): Selects the next or previous search result.
- [Javascript: DocumentViewerController.printDocument Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/printdocument-method/llms.txt): Starts the browser print workflow for the current document.
- [Javascript: DocumentViewerController.resume Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/resume-method/llms.txt): Resumes connection-bound listeners and refreshes layout when initialized.
- [Javascript: DocumentViewerController.saveDocument Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/savedocument-method/llms.txt): Starts saving the current document and returns a DocumentSaveResult for reading the saved data as Base64 or binary data.
- [Javascript: DocumentViewerController.scrollToPage Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/scrolltopage-method/llms.txt): Scrolls the document viewport to a page.
- [Javascript: DocumentViewerController.signatures Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/signatures-property/llms.txt): Controls the document-signing workflow. Available after initialize() completes.
- [Javascript: DocumentViewerController.StreamType Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/streamtype-property/llms.txt): Stream type constants accepted by save and download operations.
- [Javascript: DocumentViewerController.suspend Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/suspend-method/llms.txt): Pauses listeners and resources while the viewer is detached.
- [Javascript: DocumentViewerController.toggleFullScreen Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/togglefullscreen-method/llms.txt): Toggles browser fullscreen, or toggles window docking when fullscreen is unavailable.
- [Javascript: DocumentViewerController.toggleSelection Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/toggleselection-method/llms.txt): Activates, deactivates, or toggles text selection.
- [Javascript: DocumentViewerController.toggleSidebar Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/togglesidebar-method/llms.txt): Toggles the left sidebar.
- [Javascript: DocumentViewerController.toggleToolbar Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/toggletoolbar-method/llms.txt): Toggles the main toolbar.
- [Javascript: DocumentViewerController.toolbar Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/toolbar-property/llms.txt): Controls the main toolbar and its contextual toolbars. Available after initialize() completes.
- [Javascript: DocumentViewerController.trackedChanges Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/trackedchanges-property/llms.txt): Tracked-change state and toolbar operations. Available after initialize() completes.

---

## Nearby

- **Previous:** [Javascript: DocumentSaveSettings.mergeFormFields Property](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentsavesettings/mergeformfields-property/llms.txt)
- **Next:** [Javascript: DocumentViewerController.__init__ Method](https://docs.textcontrol.com/ds-server/reference/javascript-document-viewer/documentviewercontroller/init-method/llms.txt)
