> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/web/get-started/guides/viewer.md).

# JavaScript PDF Viewer Library

Discover the JavaScript PDF document viewer with advanced features like color separation, diffing, and streaming. Optimize your viewing experience offline and learn about transforming coordinates effi

The JavaScript PDF document viewer is a viewing and rasterization scroll view component that handles a number of viewing operations including rendering, caching, high level zoom rendering and layout modes.

The viewer is a viewing and rasterization scroll view component that handles a number of viewing operations including rendering, caching, high level zoom rendering and layout modes.

Viewing represents reading a document and displaying it as the author intended. Through the process of rasterization, it can take document data and convert it into pixels that come together to be rendered on a display.

Apryse SDK offers the following benefits:

* Interactive PDF Viewing or Rasterization
* Full transparency support (Transparency Groups, Soft Masks, including all supported Blend Modes)
* Core viewing operations (scrolling, panning, zooming, jumping to pages)
* Standard & custom page viewing modes (e.g. single, facing, cover, scrolling, fit-page, fit-width, etc.)
* Extensive support for PDF forms & digital signatures
* Extensive annotation & real-time collaboration support
* Regex text search across a page or an entire document
* Manipulate pages (rotate, crop, move, copy/export, delete, merge documents)
* View PDF separations
* Easy navigation (with thumbnails, bookmarks, links, and history)
* Selective viewing and hiding of contents in different layers (OCGs)
* Security settings (custom encryption & DRM controls, dynamic watermarks)
* PDF/A viewing mode
* Support for R2L (Right to Left) languages (e.g. Arabic, Hebrew, etc)
* Keyboard shortcuts

More features:

* PDF Image Export (JPEG, TIFF, PNG, and BMP)
* Advanced image quality and compression settings controlling the rasterization process, allowing the user to choose between the output image quality and rendering speed
* Reflow
* Night, sepia and custom-color mode
* ICC color management
* Overprint control & preview
* Display-list caching (speeding-up viewing of complex documents)
* Direct & serverless rendering support for PDF, Word, PowerPoint, Excel, XPS, plain-text, mark-down, TIFF, and other image formats
* PDF package support
* Pressure-sensitive stylus support
* Infinite Undo/Redo
* Text to Speech Support
* Font-substitution control

## Get started

[Offline](/web/advanced/offline-loading.md) To load WebViewer for offline usage.

[Color separation](/web/extraction/color-separation.md) To separate colors such that they live in their own color process.

[Diffing](/web/compare-files/diffing.md) To input two documents and output a visual difference between them.

[Understanding coordinates](/web/edit-page-content/coordinates.md) An introduction to transforming between coordinate spaces.

[Preload library/worker files](/web/best-practices/preload-worker-files.md) To preload library/worker files for faster viewing.

[Streaming XOD documents](/web/best-practices/streaming-option.md) How the "streaming" constructor option controls XOD document loading.

[Streaming PDF documents](/web/best-practices/usedownloader-option.md) To stream linearized PDF files for faster viewing response.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

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

```
GET https://docs.apryse.com/web/get-started/guides/viewer.md?ask=<question>&goal=<endgoal>
```

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

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
