---
title: "JavaScript PDF library – Render, edit, and annotate PDFs | Nutrient Web SDK"
canonical_url: "https://www.nutrient.io/guides/web/"
md_url: "https://www.nutrient.io/guides/web.md"
last_updated: "2026-05-15T19:10:05.084Z"
description: "Leverage Nutrient Web SDK’s JavaScript PDF library to render, edit, annotate, and fill forms in PDFs. Build seamless web-based PDF solutions with powerful APIs."
---

# JavaScript PDF library

Nutrient Web SDK is an enterprise-grade JavaScript library designed for viewing, annotating, and editing PDFs directly in web browsers. It offers a comprehensive set of features for working with PDF documents in web applications.

[Try for free](https://www.nutrient.io/sdk/web/getting-started.md)

[Launch demo](https://www.nutrient.io/demo/)

**Latest release**: Discover what’s new! Check out our changelog for the latest release updates.

[Learn more](https://www.nutrient.io/guides/web/changelog.md)

## File type support

Nutrient Web SDK enables you to load, save, convert, and edit 15 different PDF, document, Office, and image file types.

Opening MS Office and image files requires the **Office Files** and **Image Documents** components to be enabled in your license.

---

**PDF documents**

`pdf` `pdf/a`

---

**Images**

`png` `jpeg` `jpg` `tiff` `tif`

---

**Office documents**

`docx` `doc` `dotx` `docm` `xlsx` `xls` `xlsm` `pptx` `ppt` `pptm`

## Browser support

Nutrient Web SDK is compatible with the latest versions of popular browsers, including Google Chrome, Mozilla Firefox, Safari, Microsoft Edge, and Firefox ESR. For a complete browser compatibility list, visit our [browser support page](/guides/web/pspdfkit-for-web/browser-support.md).

**Chrome**

**Firefox**

**Safari**

**Edge**

**Firefox ESR**

## Framework support

Nutrient Web SDK is compatible with all JavaScript frameworks, including React, Angular, Vue, Svelte, Electron, Ruby on Rails, and TypeScript. It just needs a DOM container to append the viewer, which is possible with any framework.

## Operational modes

Nutrient Web SDK can run locally in the browser or work together with Document Engine — either self-hosted or managed — to offload document storing, rendering, and editing. See the full comparison between the two operational modes [here](https://www.nutrient.io/guides/web/about/operational-modes.md#comparing-operational-modes/).

Only using Web SDK

[Read more](https://www.nutrient.io/guides/web/about/capability-and-component-comparison-web-sdk.md)

Using Web SDK with Document Engine

[Read more](https://www.nutrient.io/guides/web/about/capability-and-component-comparison-web-sdk-document-engine.md)

## Open and view PDFs

To load PDFs, use the `load` method, which takes a [`Configuration` object](https://www.nutrient.io/api/web/interfaces/Configuration.html) as its parameter. This object specifies where the document is loaded on the page, the path to the source document, the license key, and more. The license key is optional in trial mode, but a watermark will be displayed on the document. For more information, see the [guides on loading a document](https://www.nutrient.io/guides/web/open-a-document.md).

```js

NutrientViewer.load({
  container: "#pspdfkit",

  document: "source.pdf",
  licenseKey: "YOUR_LICENSE_KEY", // Optional in trial mode.
});

```

## Integrate AI Assistant with Nutrient Web SDK

To integrate AI Assistant with Nutrient Web SDK, pass the AI Assistant configuration and a [generated JSON Web Token (JWT)](https://www.nutrient.io/guides/ai-assistant/viewer-integration/client-authentication/generate-a-jwt.md) to `NutrientViewer.load()`. For more information, refer to our guide on [AI Assistant integration with Nutrient Web SDK](https://www.nutrient.io/guides/ai-assistant/viewer-integration/nutrient-web-sdk.md).

```js

NutrientViewer.load({
  aiAssistant: {
    sessionId: <sessionId>,
    jwt: <jwt>,
    backendUrl: <backendUrl>,
  },...
});

```

## Create PDF annotations

Annotations can be created using [annotation constructors](https://www.nutrient.io/api/web/classes/NutrientViewer.Annotations.Annotation.html) and the [`Instance#create`] endpoint. This will return a promise that will resolve to created annotations with generated IDs set. Once annotations have been edited, they’ll need to be persisted. This is done by saving them. Save them to [external storage](https://www.nutrient.io/guides/web/annotations/save/to-external-storage.md) or [embed them into the document](https://www.nutrient.io/guides/web/annotations/save/embed-into-pdf.md). They can also be exported to [Instant JSON](https://www.nutrient.io/guides/web/importing-exporting/instant-json.md) or [XFDF](https://www.nutrient.io/guides/web/importing-exporting/xfdf-support.md). For more information, see our guide on [creating PDF annotations using JavaScript](https://www.nutrient.io/guides/web/annotations/create-edit-and-remove/create.md).

```js

const { List } = NutrientViewer.Immutable;
const { DrawingPoint, Rect } = NutrientViewer.Geometry;
const { InkAnnotation } = NutrientViewer.Annotations;

NutrientViewer.load(configuration).then(async (instance) => {
  var annotation = new InkAnnotation({
    pageIndex: 0,
    boundingBox: new Rect({ width: 100, height: 100 }),
    lines: List([
      List([
        new DrawingPoint({ x: 0, y: 0 }),
        new DrawingPoint({ x: 100, y: 100 }),
      ]),
    ]),
  });

  const [createdAnnotation] = await instance.create(annotation);
  console.log(createdAnnotation.id); // => '01BS964AM5Z01J9MKBK64F22BQ'
});

```

## Add a text form field

To create a form field, first create the form element — also known as a [widget annotation](https://www.nutrient.io/api/web/classes/NutrientViewer.Annotations.WidgetAnnotation.html). Since the form field requires a widget annotation ID when it’s created, you’ll need to generate a unique ID for your widget annotation via [`NutrientViewer#generateInstantId()`](https://www.nutrient.io/api/web/functions/NutrientViewer.generateInstantId.html). For more information, see our guide on how to [create fillable PDF forms](https://www.nutrient.io/guides/web/forms/form-creation.md).

```js

// Create a new text form field.
const widget = new NutrientViewer.Annotations.WidgetAnnotation({
  id: NutrientViewer.generateInstantId(),
  pageIndex: 0,
  formFieldName: "MyFormField",
  boundingBox: new NutrientViewer.Geometry.Rect({
    left: 100,
    top: 75,
    width: 200,
    height: 80,
  }),
});
const formField = new NutrientViewer.FormFields.TextFormField({
  name: "MyFormField",
  annotationIds: NutrientViewer.Immutable.List([widget.id]),
  value: "Text shown in the form field",
});

instance.create([widget, formField]);

```

## Perform OCR on a document

Note: OCR is available when using Nutrient Web SDK with Document Engine. To perform optical character recognition (OCR) on a document, [open the document from Document Engine](https://www.nutrient.io/guides/web/open-a-document/from-document-engine.md) and apply the `performOcr` document operation with [`Instance.applyOperations`]. For more information, see our guide on [how to perform OCR](https://www.nutrient.io/guides/web/ocr.md).

```js

await instance.applyOperations([
  { type: "performOcr", language: "english", pageIndexes: "all" },
]);

```

## Search and redact PDFs

To create redaction annotations based on specific search criteria, use [`NutrientViewer.Instance#createRedactionsBySearch()`](https://www.nutrient.io/api/web/classes/NutrientViewer.Instance.html#createredactionsbysearch), which allows you to specify the search criteria, along with specifying a custom redaction [annotation preset](https://www.nutrient.io/guides/web/customizing-the-interface/using-annotation-presets.md) to be used when creating redactions based on search results. For more information, see our guide on [searching and redacting PDFs](https://www.nutrient.io/guides/web/redaction/search-and-redact.md).

```js

const annotationIds = await instance.createRedactionsBySearch("[Sensitive Information]", {
  caseSensitive: false,
  searchInAnnotations: false,
  searchType: "text",
});

```

## FAQ

#### What is Nutrient Web SDK?

Nutrient Web SDK is a powerful JavaScript PDF rendering engine that offers a customizable and responsive PDF viewer for web applications.

#### What file types does Nutrient Web SDK support?

Nutrient Web SDK supports PDF, PDF/A, Word, Excel, PowerPoint, TIFF, PNG, and JPG file types for seamless viewing.

#### Is Nutrient Web SDK compatible with all browsers?

Yes, it’s fully compatible with [all modern browsers and devices](/guides/web/pspdfkit-for-web/browser-support.md).

#### Can I customize the UI of Nutrient’s PDF viewer?

Absolutely! Adjust buttons, layouts, and the design to suit your application’s needs.

#### Do I need a server to use Nutrient Web SDK?

No, Nutrient Web SDK can run locally in the browser, eliminating the need for server dependency. If you want more enhanced functionalities, you can combine Nutrient Web SDK with [Document Engine](/guides/document-engine.md) — either self-hosted or managed — to offload document storing, rendering, and editing from the browser, streaming only essential data to the web viewer.

**Call to Action**

*Get started now*

Start your free trial for unlimited access and expert support.

[Learn More](https://www.nutrient.io/sdk/web/getting-started.md)
---

## Related pages

- [Appian PDF viewer](/guides/web/appian.md)
- [JavaScript barcode library: Scan, read, and generate barcodes](/guides/web/barcodes.md)
- [Best practices](/guides/web/best-practice.md)
- [Samples](/guides/web/samples.md)
- [Contributing to Nutrient projects](/guides/web/miscellaneous/contributing.md)
- [Explore interactive JavaScript PDF demos](/guides/web/demo.md)
- [Download our JavaScript library](/guides/web/downloads.md)
- [Changelog for Web](/guides/web/changelog.md)
- [Developer guides for JavaScript PDF library](/guides/web/intro.md)
- [Knowledge base](/guides/web/kb.md)
- [Mendix PDF viewer](/guides/web/mendix.md)
- [Perform OCR on PDF documents](/guides/web/ocr.md)
- [OutSystems PDF viewer](/guides/web/outsystems.md)
- [Self-host assets in Web SDK](/guides/web/self-host-assets.md)
- [Troubleshooting](/guides/web/troubleshoot.md)

## Pages in this section

- [Compare deployment options and use cases for Nutrient document solutions](/guides/web/about/capability-and-component-comparison-document-engine.md)
- [Browser support for our JavaScript PDF viewer](/guides/web/pspdfkit-for-web/browser-support.md)
- [Compare deployment options and use cases for Nutrient document solutions](/guides/web/about/capability-and-component-comparison-web-sdk-document-engine.md)
- [Licensing](/guides/web/pspdfkit-for-web/licensing.md)
- [Compare deployment options and use cases for Nutrient document solutions](/guides/web/about/capability-and-component-comparison-web-sdk.md)
- [File type support](/guides/web/about/file-type-support.md)
- [JavaScript PDF framework support](/guides/web/about/frameworks.md)
- [Operational modes](/guides/web/about/operational-modes.md)
- [Add AI capabilities to Nutrient document viewer](/guides/web/ai-assistant/integrate-with-ai-assistant.md)
- [Flattening annotations in PDFs](/guides/web/annotations/flatten.md)
- [Rotate PDF annotations using JavaScript](/guides/web/annotations/annotation-rotation.md)
- [JavaScript PDF annotation library](/guides/web/annotations.md)
- [Sdk Security](/guides/web/pspdfkit-for-web/sdk-security.md)
- [JavaScript PDF bookmark library](/guides/web/bookmarks.md)
- [Introduction to PDF bookmarks and PDF outlines](/guides/web/bookmarks/introduction.md)
- [JavaScript document library](/guides/web/documents.md)
- [Compare PDF files using JavaScript](/guides/web/comparison/compare-documents.md)
- [Compare PDF text using AI and JavaScript](/guides/web/comparison/compare-text-ai.md)
- [Compare PDF text using JavaScript](/guides/web/comparison/compare-text.md)
- [Open PDFs without downloading using JavaScript](/guides/web/document-security/open-without-downloading.md)
- [Add watermarks to PDFs using JavaScript](/guides/web/document-security/add-a-watermark.md)
- [Document security in our JavaScript PDF viewer](/guides/web/document-security.md)
- [Password protect PDFs using JavaScript](/guides/web/document-security/password-protect-pdf.md)
- [Disable download and print options in our JavaScript PDF viewer](/guides/web/document-security/prevent-print-or-download.md)
- [Document security with Nutrient Web SDK](/guides/web/document-security/with-server-backed.md)
- [Headless file conversion](/guides/web/conversion/headless.md)
- [Convert images to text using JavaScript](/guides/web/conversion/image-to-text.md)
- [Convert images to PDFs using JavaScript](/guides/web/conversion/image-to-pdf.md)
- [JavaScript PDF conversion library](/guides/web/conversion.md)
- [Convert PDF to Office using JavaScript](/guides/web/conversion/pdf-to-office.md)
- [Convert scanned PDFs to searchable PDFs using JavaScript](/guides/web/conversion/scan-to-searchable-pdf.md)
- [Convert PDFs to images using JavaScript](/guides/web/conversion/pdf-to-image.md)
- [Convert text to PDF using JavaScript](/guides/web/conversion/text-to-pdf.md)
- [Convert PDFs and images to PDF/A using JavaScript](/guides/web/conversion/to-pdfa.md)
- [Convert Office to PDF using JavaScript](/guides/web/conversion/office-to-pdf.md)
- [Add images to PDFs using JavaScript](/guides/web/editor/add-image.md)
- [Add Bates numbering in PDFs using JavaScript](/guides/web/editor/add-bates-number.md)
- [PDF editing toolbar and UI](/guides/web/features/document-editor-ui.md)
- [Add pages to PDFs using JavaScript](/guides/web/editor/add-page.md)
- [Process documents via Document Engine or DWS API using JavaScript](/guides/web/editor/backend-processing.md)
- [Edit page labels in a PDF](/guides/web/editor/page-label.md)
- [PDF content editing API for Web](/guides/web/editor/content-editor-api.md)
- [Edit PDF text using our JavaScript content editor](/guides/web/editor/edit-text.md)
- [Merge PDF files using JavaScript](/guides/web/editor/merge-or-combine.md)
- [Headless PDF editor](/guides/web/features/document-editor.md)
- [JavaScript PDF editor library](/guides/web/editor.md)
- [Replace text in PDFs using JavaScript](/guides/web/editor/replace-text.md)
- [Split PDFs using JavaScript](/guides/web/editor/split.md)
- [Forms](/guides/web/events/forms.md)
- [Subscribe or unsubscribe to API events](/guides/web/customizing-the-interface/observing-changes-with-events.md)
- [Manage bookmarks efficiently with event-driven updates](/guides/web/events/bookmarks.md)
- [Manage annotations effectively with our API](/guides/web/events/annotation.md)
- [Events and notifications in our JavaScript viewer](/guides/web/events.md)
- [Text Selection](/guides/web/events/text-selection.md)
- [Extract pages from PDFs using JavaScript](/guides/web/extraction/page-extraction.md)
- [Read text from PDFs using JavaScript](/guides/web/extraction/read-text.md)
- [Extract selected text from PDFs programmatically](/guides/web/features/text-selection.md)
- [JavaScript PDF extraction library](/guides/web/extraction.md)
- [JavaScript PDF parser library](/guides/web/extraction/parse-content.md)
- [Extract text from PDFs using JavaScript](/guides/web/features/text-extraction.md)
- [Headless callout annotations](/guides/web/headless/callout.md)
- [Headless color presets](/guides/web/headless/color-presets.md)
- [Headless image annotations](/guides/web/headless/image.md)
- [Annotation clipboard](/guides/web/headless/clipboard.md)
- [Headless](/guides/web/headless.md)
- [Headless ink annotations](/guides/web/headless/ink.md)
- [Headless stamp annotations](/guides/web/headless/stamp.md)
- [Headless link annotations](/guides/web/headless/link.md)
- [Headless note annotations](/guides/web/headless/note.md)
- [Redactions from text selection](/guides/web/headless/redactions-from-selection.md)
- [Programmatic notes panel](/guides/web/headless/notes-panel.md)
- [Headless text annotations](/guides/web/headless/text-annotations.md)
- [Headless shape annotations](/guides/web/headless/shape.md)
- [Headless text markup](/guides/web/headless/text-markup.md)
- [JavaScript PDF fillable form library](/guides/web/forms.md)
- [Extract data from PDF form fields using JavaScript](/guides/web/forms/extract-form-data.md)
- [Flatten dynamic PDF forms using JavaScript](/guides/web/forms/flatten.md)
- [Validate PDF forms using JavaScript](/guides/web/forms/javascript-validation.md)
- [Read PDF form fields using JavaScript](/guides/web/forms/read-form-fields.md)
- [Master PDF actions with JavaScript integration](/guides/web/forms/pdf-actions-support.md)
- [Secure client authentication with JWT for web apps](/guides/web/instant-synchronization/authentication.md)
- [Document layers for all workflows](/guides/web/instant-synchronization/instant-layers.md)
- [Integrating sync and collaboration into your JavaScript application](/guides/web/pspdfkit-instant/getting-started.md)
- [Instant sync and collaboration](/guides/web/instant-synchronization.md)
- [Convert Instant JSON to XFDF using JavaScript](/guides/web/json/convert-to-xfdf.md)
- [Instant JSON](/guides/web/json.md)
- [Understanding Instant JSON for PDF annotations](/guides/web/json/how-it-works.md)
- [Toggle layer (OCG) Visibility in a PDF via the UI](/guides/web/layers/built-in-ui.md)
- [JavaScript library for PDF layers (OCGs)](/guides/web/layers.md)
- [Toggle layer (OCG) visibility in a PDF using JavaScript](/guides/web/layers/visibility.md)
- [Introduction to PDF layers (OCGs)](/guides/web/layers/introduction-to-ocg-layers.md)
- [Measure distance and area in a PDF using JavaScript](/guides/web/measurements.md)
- [Configure measurements in a PDF using JavaScript](/guides/web/measurements/configure-measurements.md)
- [Measure area in a PDF using JavaScript](/guides/web/measurements/measure-area.md)
- [Measure distance in a PDF using JavaScript](/guides/web/measurements/measure-distance.md)
- [Baseline Ui Migration Guide](/guides/web/migration-guides/baseline-ui-migration-guide.md)
- [2025 Blocks Ui Migration](/guides/web/migration-guides/2025-blocks-ui-migration.md)
- [Aria Labels Migration Guide](/guides/web/migration-guides/aria-labels-migration-guide.md)
- [Migrate to electronic signatures](/guides/web/migration-guides/migrating-to-electronic-signatures.md)
- [JavaScript Office library](/guides/web/office.md)
- [Open PDFs from Base64 in the browser using JavaScript](/guides/web/open-a-document/from-base64-data.md)
- [Open PDFs from an ArrayBuffer using JavaScript](/guides/web/open-a-document/from-arraybuffer.md)
- [Open and display PDFs from a Blob using JavaScript](/guides/web/open-a-document/from-blob.md)
- [Open documents from Document Engine](/guides/web/open-a-document/from-document-engine.md)
- [Open image files from a URL using JavaScript](/guides/web/open-a-document/image-from-remote-url.md)
- [Open local PDF files using JavaScript](/guides/web/open-a-document/from-local-storage.md)
- [Open PDFs using DWS Viewer API](/guides/web/open-a-document/from-dws-viewer-api.md)
- [Open Base64 image files using JavaScript](/guides/web/open-a-document/image-from-base64-data.md)
- [Open and display PDF files from a remote URL using JavaScript](/guides/web/open-a-document/from-remote-url.md)
- [Open local image files using JavaScript](/guides/web/open-a-document/image-from-local-storage.md)
- [Open image files from a Blob using JavaScript](/guides/web/open-a-document/image-from-blob.md)
- [Open and display PDFs in the browser using JavaScript](/guides/web/open-a-document.md)
- [Open Base64 MS Office files using JavaScript](/guides/web/open-a-document/office-from-base64-data.md)
- [Open image files from an array buffer using JavaScript](/guides/web/open-a-document/image-from-arraybuffer.md)
- [Open MS Office files from an ArrayBuffer using JavaScript](/guides/web/open-a-document/office-from-arraybuffer.md)
- [Open MS Office files from a Blob using JavaScript](/guides/web/open-a-document/office-from-blob.md)
- [Open local MS Office files using JavaScript](/guides/web/open-a-document/office-from-local-storage.md)
- [Opening specific pages in PDFs using JavaScript](/guides/web/features/open-parameters.md)
- [Open MS Office files from a URL using JavaScript](/guides/web/open-a-document/office-from-remote-url.md)
- [Temporary storage for PDF downloads](/guides/web/open-a-document/temp-storage.md)
- [Headless PDF generation](/guides/web/pdf-generation/headless.md)
- [Generate PDFs from images using JavaScript](/guides/web/pdf-generation/from-images.md)
- [Generate PDFs from a template using JavaScript](/guides/web/pdf-generation/from-pdf-template.md)
- [Generate a PDF with a PDF form using JavaScript](/guides/web/pdf-generation/from-pdf-form.md)
- [Generate PDF thumbnails using JavaScript](/guides/web/pdf-generation/thumbnail-preview.md)
- [Generate PDFs from a Word template using JavaScript](/guides/web/pdf-generation/from-word-template.md)
- [Generate PDF reports using JavaScript](/guides/web/pdf-generation/pdf-reports.md)
- [JavaScript PDF generation library](/guides/web/pdf-generation.md)
- [JavaScript PDF redaction library](/guides/web/redaction.md)
- [Production-safe redaction workflow](/guides/web/redaction/production-safe-workflow.md)
- [Headless redaction](/guides/web/redaction/headless.md)
- [Redact PDFs using JavaScript tools](/guides/web/redaction/built-in-ui.md)
- [PDF redaction techniques for your documents](/guides/web/redaction/introduction-to-redaction.md)
- [Programmatically redact PDFs using JavaScript](/guides/web/redaction/programmatically.md)
- [Automate document redaction with predefined patterns](/guides/web/redaction/preset-patterns.md)
- [Redact PDFs using regex](/guides/web/redaction/regex-patterns.md)
- [Search and redact PDFs using JavaScript](/guides/web/redaction/search-and-redact.md)
- [Auto print PDFs using JavaScript](/guides/web/print/auto-print.md)
- [Disable print options in PDFs using JavaScript](/guides/web/print/disable-printing.md)
- [Print PDFs from Base64 using JavaScript](/guides/web/print/from-base64.md)
- [JavaScript library to print PDFs](/guides/web/print.md)
- [Print PDFs from a Blob using JavaScript](/guides/web/print/from-blob.md)
- [Print PDFs from URLs using JavaScript](/guides/web/print/from-url.md)
- [Print modes in our JavaScript PDF viewer](/guides/web/print/print-modes.md)
- [Print to PDFs programmatically using JavaScript](/guides/web/features/printing.md)
- [Print PDFs without annotations using JavaScript](/guides/web/print/without-annotations.md)
- [Print PDFs without opening using JavaScript](/guides/web/print/without-opening-pdf.md)
- [PDF annotation diffs in our JavaScript viewer](/guides/web/performance/annotation-diff.md)
- [Web caching for our JavaScript PDF viewer](/guides/web/best-practices/caching-on-the-web.md)
- [Optimizing performance in the Nutrient JavaScript PDF viewer](/guides/web/best-practices/performance.md)
- [Optimize PDF loading with linearized documents](/guides/web/performance/linearized-downloads.md)
- [Enhance PDF performance with document streaming](/guides/web/performance/streaming.md)
- [Add Custom Keyboard Shortcuts](/guides/web/knowledge-base/add-custom-keyboard-shortcuts.md)
- [Add Listener Toolbar Item](/guides/web/knowledge-base/add-listener-toolbar-item.md)
- [How to add a custom toolbar item to display current zoom percentage](/guides/web/knowledge-base/add-custom-zoom-perentage.md)
- [Add Listener Text Note Annotation](/guides/web/knowledge-base/add-listener-text-note-annotation.md)
- [Blurry Print Resolution](/guides/web/knowledge-base/blurry-print-resolution.md)
- [Listen to an annotation’s hover event](/guides/web/knowledge-base/annotations-hover-event.md)
- [Add Signature Initials](/guides/web/knowledge-base/add-signature-initials.md)
- [Change Default Line Width Ink Annotations](/guides/web/knowledge-base/change-default-line-width-ink-annotations.md)
- [Automatic Annotation Field Tab Ordering](/guides/web/knowledge-base/automatic-annotation-field-tab-ordering.md)
- [Check Password Protected Files](/guides/web/knowledge-base/check-password-protected-files.md)
- [Check Document Contains Annotations](/guides/web/knowledge-base/check-document-contains-annotations.md)
- [Keep widget annotation dimensions consistent across devices](/guides/web/knowledge-base/consistent-widget-annotation-dimensions.md)
- [Control Appearance Of Delete Button On Ink Annotations](/guides/web/knowledge-base/control-appearance-of-delete-button-on-ink-annotations.md)
- [Customize Page Indicator](/guides/web/knowledge-base/customize-page-indicator.md)
- [Create Highlight Annotations From Text Extraction Technology](/guides/web/knowledge-base/create-highlight-annotations-from-text-extraction-technology.md)
- [Determine Current Layout Mode](/guides/web/knowledge-base/determine-current-layout-mode.md)
- [Default To Cloudy Border](/guides/web/knowledge-base/default-to-cloudy-border.md)
- [Deselect Text](/guides/web/knowledge-base/deselect-text.md)
- [Delete All Annotations](/guides/web/knowledge-base/delete-all-annotations.md)
- [Detect Pspdfkit Ui Loaded](/guides/web/knowledge-base/detect-pspdfkit-ui-loaded.md)
- [Disable Context Menu](/guides/web/knowledge-base/disable-context-menu.md)
- [Disable Resize Of Annotations](/guides/web/knowledge-base/disable-resize-of-annotations.md)
- [Export Ink Annotation Image](/guides/web/knowledge-base/export-ink-annotation-image.md)
- [How to disable text annotation movement in web apps](/guides/web/knowledge-base/disable-text-annotation-movement.md)
- [Download Exported Document](/guides/web/knowledge-base/download-exported-document.md)
- [Extracting text and cursor position in annotations](/guides/web/knowledge-base/extract-annotation-text-and-retrieve-cursor-position.md)
- [Get Visible Annotations](/guides/web/knowledge-base/get-visible-annotations.md)
- [Get Entered Document Password](/guides/web/knowledge-base/get-entered-document-password.md)
- [Find Ink Annotation For Signature Form Field](/guides/web/knowledge-base/find-ink-annotation-for-signature-form-field.md)
- [Focus Widget Annotation](/guides/web/knowledge-base/focus-widget-annotation.md)
- [Focus Viewer After Loading](/guides/web/knowledge-base/focus-viewer-after-loading.md)
- [Focus the delete button in a confirm dialog](/guides/web/knowledge-base/focus-delete-button-in-confirm-modal-component.md)
- [Handling Clicks On Custom Overlays](/guides/web/knowledge-base/handling-clicks-on-custom-overlays.md)
- [Fix errors with unsupported form field actions](/guides/web/knowledge-base/handle-unsupported-form-field-actions.md)
- [How Do I Prevent Printing Annotations](/guides/web/knowledge-base/how-do-i-prevent-printing-annotations.md)
- [How Do I Disable Scrolling On Page Edges](/guides/web/knowledge-base/how-do-i-disable-scrolling-on-page-edges.md)
- [Highlight required form fields](/guides/web/knowledge-base/highlight-required-fields.md)
- [How Do I Limit The Number Of Annotations](/guides/web/knowledge-base/how-do-i-limit-the-number-of-annotations.md)
- [How Do I Rotate A Page](/guides/web/knowledge-base/how-do-i-rotate-a-page.md)
- [Resize multiline text fields to avoid overflow](/guides/web/knowledge-base/how-do-i-resize-form-fields.md)
- [How Do I Toggle The Theme](/guides/web/knowledge-base/how-do-i-toggle-the-theme.md)
- [Load Pdf As Arraybuffer](/guides/web/knowledge-base/load-pdf-as-arraybuffer.md)
- [How Do I Zoom To A Specific Value](/guides/web/knowledge-base/how-do-i-zoom-to-a-specific-value.md)
- [License Registered Different Bundle Id](/guides/web/knowledge-base/license-registered-different-bundle-id.md)
- [Image Attachments Lost Stamp Annotation Templates](/guides/web/knowledge-base/image-attachments-lost-stamp-annotation-templates.md)
- [How To Create Bookmarks From Outline Elements](/guides/web/knowledge-base/how-to-create-bookmarks-from-outline-elements.md)
- [Load Pdf From Stream](/guides/web/knowledge-base/load-pdf-from-stream.md)
- [Link Text](/guides/web/knowledge-base/link-text.md)
- [Loading Multiple Files](/guides/web/knowledge-base/loading-multiple-files.md)
- [Overview](/guides/web/knowledge-base/overview.md)
- [Iterate over form fields and widgets](/guides/web/knowledge-base/iterate-over-form-fields.md)
- [Load Pdf Stub From String](/guides/web/knowledge-base/load-pdf-stub-from-string.md)
- [Disabling automatic synchronization in Nutrient Web SDK](/guides/web/knowledge-base/manual-instant-sync.md)
- [Observe Document Editor Visibility](/guides/web/knowledge-base/observe-document-editor-visibility.md)
- [Nutrient Size Optimization](/guides/web/knowledge-base/nutrient-size-optimization.md)
- [Override User Agent](/guides/web/knowledge-base/override-user-agent.md)
- [Override Ink Signature Dialog](/guides/web/knowledge-base/override-ink-signature-dialog.md)
- [Programmatic Comment Annotations](/guides/web/knowledge-base/programmatic-comment-annotations.md)
- [Persist Ink Signatures Across Instances](/guides/web/knowledge-base/persist-ink-signatures-across-instances.md)
- [Persist Currently Edited Note Test](/guides/web/knowledge-base/persist-currently-edited-note-test.md)
- [Prevent Editing Content Text Annotation](/guides/web/knowledge-base/prevent-editing-content-text-annotation.md)
- [Prevent Shortcut Printing](/guides/web/knowledge-base/prevent-shortcut-printing.md)
- [Process Currently Rendered Pages](/guides/web/knowledge-base/process-currently-rendered-pages.md)
- [Programmatically Navigate To Page](/guides/web/knowledge-base/programmatically-navigate-to-page.md)
- [Read-only forms](/guides/web/knowledge-base/read-only-forms.md)
- [Render Watermark When Printing](/guides/web/knowledge-base/render-watermark-when-printing.md)
- [Render Night Mode](/guides/web/knowledge-base/render-night-mode.md)
- [Render Document Full Height](/guides/web/knowledge-base/render-document-full-height.md)
- [Place Annotation At Visible Center](/guides/web/knowledge-base/place-annotation-at-visible-center.md)
- [Render Page Black White](/guides/web/knowledge-base/render-page-black-white.md)
- [Render Visible Area In Current Page](/guides/web/knowledge-base/render-visible-area-in-current-page.md)
- [Render Page Without Annotations](/guides/web/knowledge-base/render-page-without-annotations.md)
- [Restore Last Seen Page](/guides/web/knowledge-base/restore-last-seen-page.md)
- [Rotate Ink Annotation](/guides/web/knowledge-base/rotate-ink-annotation.md)
- [Save Modified Pdf To Document Engine](/guides/web/knowledge-base/save-modified-pdf-to-document-engine.md)
- [Show Focus Ring Read Only](/guides/web/knowledge-base/show-focus-ring-read-only.md)
- [Show Annotations Properties As Tooltip](/guides/web/knowledge-base/show-annotations-properties-as-tooltip.md)
- [Submit Ink Signatures With Form](/guides/web/knowledge-base/submit-ink-signatures-with-form.md)
- [Web Sdk Vs Dws Viewer](/guides/web/knowledge-base/web-sdk-vs-dws-viewer.md)
- [Wait For Element Appear](/guides/web/knowledge-base/wait-for-element-appear.md)
- [Easily zoom to specific annotations in PDF](/guides/web/knowledge-base/zoom-to-specific-annotation.md)
- [Search text in PDFs using JavaScript](/guides/web/features/customized-search.md)
- [Search PDF annotations](/guides/web/search/annotation-search.md)
- [Search PDFs in our JavaScript viewer](/guides/web/search/built-in-ui.md)
- [JavaScript PDF search library](/guides/web/search.md)
- [Save documents as PDFs on the web](/guides/web/save-a-document/save-as.md)
- [Detecting unsaved changes in PDFs](/guides/web/save-a-document/detect-unsaved-changes.md)
- [Enable incremental saving of PDFs using JavaScript](/guides/web/features/document-processing.md)
- [Save PDF files using JavaScript](/guides/web/save-a-document.md)
- [Save PDFs to Document Engine using JavaScript](/guides/web/save-a-document/to-document-engine.md)
- [Auto-saving PDF changes in our JavaScript viewer](/guides/web/features/saving.md)
- [Save PDFs to an ArrayBuffer using JavaScript](/guides/web/save-a-document/to-arraybuffer.md)
- [Save PDF without annotations using JavaScript](/guides/web/save-a-document/without-annotations.md)
- [Save PDFs to a remote server using JavaScript](/guides/web/save-a-document/to-remote-server.md)
- [Save PDFs to local storage using JavaScript](/guides/web/save-a-document/to-local-storage.md)
- [Fill and sign PDF forms using JavaScript](/guides/web/signatures/fill-and-sign-forms.md)
- [Headless PDF digital signing](/guides/web/signatures/headless.md)
- [Signatures](/guides/web/features/signatures.md)
- [Understand digital and electronic signatures](/guides/web/signatures/overview.md)
- [JavaScript PDF signature library](/guides/web/signatures.md)
- [1 11](/guides/web/release-notes/1-11.md)
- [1 1](/guides/web/release-notes/1-1.md)
- [1 12](/guides/web/release-notes/1-12.md)
- [1 0](/guides/web/release-notes/1-0.md)
- [1 13 1](/guides/web/release-notes/1-13-1.md)
- [1 10](/guides/web/release-notes/1-10.md)
- [1 13](/guides/web/release-notes/1-13.md)
- [1 14](/guides/web/release-notes/1-14.md)
- [1 4](/guides/web/release-notes/1-4.md)
- [1 15](/guides/web/release-notes/1-15.md)
- [1 2](/guides/web/release-notes/1-2.md)
- [1 3](/guides/web/release-notes/1-3.md)
- [Update your PSPDFKit for Web to version 2017.7](/guides/web/release-notes/2017-7.md)
- [1 5](/guides/web/release-notes/1-5.md)
- [1 6](/guides/web/release-notes/1-6.md)
- [1 7](/guides/web/release-notes/1-7.md)
- [1 9](/guides/web/release-notes/1-9.md)
- [1 8](/guides/web/release-notes/1-8.md)
- [2017 6](/guides/web/release-notes/2017-6.md)
- [2017 3](/guides/web/release-notes/2017-3.md)
- [Upgrade annotations in PSPDFKit Web 2017.8](/guides/web/release-notes/2017-8.md)
- [Explore new features in PSPDFKit for Web 2017.9](/guides/web/release-notes/2017-9.md)
- [New features in the 2018.1 migration guide](/guides/web/release-notes/2018-1.md)
- [PSPDFKit for Web 2018.2 migration insights](/guides/web/release-notes/2018-2.md)
- [Explore PSPDFKit for Web 2018.4 features](/guides/web/release-notes/2018-4.md)
- [PSPDFKit Web and Server 2020.4 migration update](/guides/web/release-notes/2020-4.md)
- [Explore new features in PSPDFKit 2018.5](/guides/web/release-notes/2018-5.md)
- [PSPDFKit for Web 2019.3 migration highlights](/guides/web/release-notes/2019-3.md)
- [2019 2](/guides/web/release-notes/2019-2.md)
- [Explore PSPDFKit for Web 2018.6 enhancements](/guides/web/release-notes/2018-6.md)
- [Discover the new features in PSPDFKit for Web 2018.3](/guides/web/release-notes/2018-3.md)
- [PSPDFKit for Web 2019.5 migration insights](/guides/web/release-notes/2019-5.md)
- [Essential updates in PSPDFKit for Web 2019.4](/guides/web/release-notes/2019-4.md)
- [Seamless migration to PSPDFKit for Web 2020.2](/guides/web/release-notes/2020-2.md)
- [Key updates in PSPDFKit for Web 2019.1](/guides/web/release-notes/2019-1.md)
- [Key changes in PSPDFKit for Web 2020.1](/guides/web/release-notes/2020-1.md)
- [Upgrade to PSPDFKit Web 2020.3 seamlessly](/guides/web/release-notes/2020-3.md)
- [Explore the new features in PSPDFKit 2018.7](/guides/web/release-notes/2018-7.md)
- [Upgrade to PSPDFKit for Web 2021.1 with ease](/guides/web/release-notes/2021-1.md)
- [Unified CRUD API enhancements for easy migration](/guides/web/release-notes/2020-5.md)
- [PSPDFKit Web 2020.6 migration insights](/guides/web/release-notes/2020-6.md)
- [PSPDFKit 2021.4 migration guide for seamless updates](/guides/web/release-notes/2021-4.md)
- [2021 3](/guides/web/release-notes/2021-3.md)
- [PSPDFKit 2023.2 migration and updates](/guides/web/release-notes/2023-2.md)
- [2021 6](/guides/web/release-notes/2021-6.md)
- [Migration guide for PSPDFKit 2021.5](/guides/web/release-notes/2021-5.md)
- [Seamlessly migrate to PSPDFKit for Web 2021.2](/guides/web/release-notes/2021-2.md)
- [Enhancements in PSPDFKit for Web 2022.2](/guides/web/release-notes/2022-2.md)
- [Explore the new features of PSPDFKit for Web 2022.3](/guides/web/release-notes/2022-3.md)
- [Discover the key updates in PSPDFKit for Web 2023.1](/guides/web/release-notes/2023-1.md)
- [Key improvements in PSPDFKit for Web 2022.5](/guides/web/release-notes/2022-5.md)
- [PSPDFKit for Web 2022.4 migration overview](/guides/web/release-notes/2022-4.md)
- [PSPDFKit 2022.1.1 migration changes](/guides/web/release-notes/2022-1.md)
- [2024 3](/guides/web/release-notes/2024-3.md)
- [Explore key updates in PSPDFKit for Web 2023.4](/guides/web/release-notes/2023-4.md)
- [Key updates in PSPDFKit for Web 2023.5](/guides/web/release-notes/2023-5.md)
- [Essential Nutrient Web SDK 2024.1 migration tips](/guides/web/release-notes/2024-1.md)
- [Key updates in PSPDFKit for Web 2023.3](/guides/web/release-notes/2023-3.md)
- [2024 4](/guides/web/release-notes/2024-4.md)
- [2024 2](/guides/web/release-notes/2024-2.md)
- [2024 7](/guides/web/release-notes/2024-7.md)
- [2024 5](/guides/web/release-notes/2024-5.md)
- [2024 8](/guides/web/release-notes/2024-8.md)
- [Upgrading Nutrient Web SDK](/guides/web/release-notes/upgrading.md)
- [Client authentication and session renewal](/guides/web/viewer/client-authentication.md)
- [Create custom annotation toggle button](/guides/web/viewer/custom-annotation-toggle.md)
- [Embed Web SDK in a dashboard/app shell](/guides/web/viewer/embed-in-dashboard-app-shell.md)
- [JavaScript image viewer library](/guides/web/viewer/images.md)
- [Enhance PDF viewing with linearized downloading](/guides/web/viewer/linearized-downloads.md)
- [Mobile responsive JavaScript PDF viewer](/guides/web/viewer/mobile-responsive.md)
- [JavaScript PDF viewer library](/guides/web/viewer.md)
- [Office document viewing in JavaScript](/guides/web/viewer/office-documents.md)
- [Page layout and scroll options in our JavaScript PDF viewer](/guides/web/customizing-the-interface/document-presentation-options.md)
- [JavaScript PDF viewer library](/guides/web/viewer/pdf.md)
- [JavaScript Support in our PDF viewer](/guides/web/features/javascript.md)
- [Enable or disable permissions in our JavaScript viewer](/guides/web/features/document-permissions.md)
- [macOS/Linux](/guides/web/viewer/troubleshooting.md)
- [PDF document streaming in JavaScript](/guides/web/viewer/streaming.md)
- [Zoom options in our JavaScript PDF viewer](/guides/web/viewer/zooming.md)
- [Form Designer: Create and edit PDF form fields using JavaScript](/guides/web/user-interface/form-designer.md)
- [Create a custom toolbar in our JavaScript PDF viewer](/guides/web/user-interface/create-a-toolbar.md)
- [PDF form field date and time picker](/guides/web/user-interface/date-and-time-picker.md)
- [Create and customize redactions in our PDF viewer](/guides/web/user-interface/redaction.md)
- [User interface customization in our JavaScript PDF viewer](/guides/web/user-interface.md)
- [Custom overlays in our viewer](/guides/web/customizing-the-interface/creating-custom-overlay-items.md)
- [Localization: Updating languages in our JavaScript PDF viewer](/guides/web/features/localization.md)
- [Right-to-left](/guides/web/user-interface/rtl-languages.md)
- [Customizing the search UI in our PDF viewer toolbar](/guides/web/user-interface/search.md)
- [User interface troubleshooting](/guides/web/user-interface/troubleshooting.md)
- [View state in our JavaScript PDF viewer](/guides/web/customizing-the-interface/viewstate.md)
- [Streamline your migration from PDFTron WebViewer](/guides/web/about/migration-guides/migrating-from-pdftron-webviewer.md)
- [Transitioning from PDF.js for better performance](/guides/web/about/migration-guides/migrating-from-mozilla-pdfjs.md)
- [Reply to annotations in our JavaScript PDF viewer](/guides/web/annotations/comments-and-replies/replies.md)
- [Adding comments and replies in our JavaScript PDF viewer](/guides/web/annotations/comments-and-replies/comments.md)
- [Adding annotations to images using JavaScript](/guides/web/annotations/annotate-on-images/create-edit-and-remove.md)
- [Enhance your image annotation experience effortlessly](/guides/web/annotations/annotate-on-images/specification.md)
- [Customizing stamp annotations](/guides/web/annotations/stamp-annotation-configuration.md)
- [Adding stamp annotations to PDFs using JavaScript](/guides/web/features/stamp-annotation-templates.md)
- [How to choose Instant JSON vs. XFDF vs. server-backed sync](/guides/web/annotations/import-and-export/choose-persistence-strategy.md)
- [Importing and exporting annotations in a database](/guides/web/annotations/import-and-export/database.md)
- [Importing and exporting annotations with Document Engine](/guides/web/annotations/import-and-export/server-backed.md)
- [Importing and exporting annotations with Instant JSON](/guides/web/importing-exporting/instant-json.md)
- [Importing and exporting annotations in XFDF](/guides/web/importing-exporting/xfdf-support.md)
- [Supporting link annotations in PDFs using JavaScript](/guides/web/annotations/link-annotations.md)
- [PDF annotation actions support](/guides/web/annotations/pdf-actions.md)
- [Supported annotation types](/guides/web/annotations/introduction-to-annotations.md)
- [Comparing XFDF and Instant JSON for annotations](/guides/web/annotations/introduction-to-annotations/data-formats.md)
- [Geometry primitives](/guides/web/annotations/geometry.md)
- [Display embedded audio and video files in PDFs using JavaScript](/guides/web/annotations/introduction-to-annotations/media-annotations.md)
- [What are PDF annotations?](/guides/web/annotations/introduction-to-annotations/what-are-annotations.md)
- [Working with annotations](/guides/web/annotations/introduction-to-annotations/working-with-annotations.md)
- [Integrating Nutrient Web SDK with AI agents](/guides/web/ai-assistant/ai-agent-tools.md)
- [Tool reference](/guides/web/ai-assistant/ai-agent-tools/tool-reference.md)
- [Vercel AI SDK](/guides/web/ai-assistant/ai-agent-tools/vercel-ai-sdk.md)
- [LangChain](/guides/web/ai-assistant/ai-agent-tools/langchain.md)
- [Annotation customization](/guides/web/annotations/custom-rendered-annotations.md)
- [Annotation appearance streams](/guides/web/annotations/appearance-streams.md)
- [Customizing display logic for annotations](/guides/web/best-practices/business-logic.md)
- [Annotation notes](/guides/web/annotations/customization/annotation-notes.md)
- [Configuring annotation presets in our viewer](/guides/web/customizing-the-interface/using-annotation-presets.md)
- [Store custom data in annotations](/guides/web/annotations/custom-data-in-annotations.md)
- [Hiding annotations in our viewer](/guides/web/annotations/customization/hiding-annotations.md)
- [Synchronizing annotations across users, devices, and sessions](/guides/web/annotations/synchronization.md)
- [Review persistence architecture](/guides/web/annotations/synchronization/review-persistence-architecture.md)
- [Storing annotation data](/guides/web/annotations/synchronization/storing-annotation-data.md)
- [Conflict resolution when synchronizing annotations](/guides/web/annotations/synchronization/conflict-resolution.md)
- [Edit PDF outlines using JavaScript](/guides/web/bookmarks/outlines/edit.md)
- [Remove PDF outlines using JavaScript](/guides/web/bookmarks/outlines/remove.md)
- [Create PDF outlines using JavaScript](/guides/web/bookmarks/outlines/create.md)
- [PDF bookmarks in our JavaScript PDF viewer](/guides/web/bookmarks/built-in-ui.md)
- [Create bookmarks in PDF using JavaScript](/guides/web/features/bookmarks.md)
- [Edit bookmarks in PDFs using JavaScript](/guides/web/bookmarks/edit.md)
- [Remove bookmarks in PDFs using JavaScript](/guides/web/bookmarks/remove.md)
- [Detect changes in PDF bookmarks](/guides/web/bookmarks/detect-changes.md)
- [Adding margins to PDF pages using JavaScript](/guides/web/editor/page-manipulation/add-margins.md)
- [Move or copy PDF pages using JavaScript](/guides/web/editor/page-manipulation/move-or-copy.md)
- [Crop PDFs using JavaScript](/guides/web/editor/page-manipulation/crop.md)
- [Remove pages from a PDF using JavaScript](/guides/web/editor/page-manipulation/remove.md)
- [Rotating PDF pages using JavaScript](/guides/web/editor/page-manipulation/rotate.md)
- [PDF form elements and data formats](/guides/web/forms/introduction-to-forms/data-formats.md)
- [Supported PDF form fields](/guides/web/forms/introduction-to-forms.md)
- [Understanding the benefits of PDF forms](/guides/web/forms/introduction-to-forms/what-are-forms.md)
- [Autosaving changes made to PDF forms](/guides/web/forms/submit-or-save/auto-save.md)
- [Submit and save PDF forms to an external source](/guides/web/forms/form-submission.md)
- [Embed data into PDF forms using JavaScript](/guides/web/forms/submit-or-save/embed-data-into-pdf.md)
- [Submit and save PDF forms using Document Engine](/guides/web/forms/submit-or-save/to-server-backed.md)
- [Adding a signature field to a PDF form](/guides/web/forms/create-edit-and-remove/add-signature-field.md)
- [Build a browser form template builder](/guides/web/forms/browser-form-template-builder.md)
- [Edit PDF form fields using JavaScript](/guides/web/forms/create-edit-and-remove/edit-fields.md)
- [Create fillable PDF forms using JavaScript](/guides/web/forms/form-creation.md)
- [PDF form field flags](/guides/web/forms/create-edit-and-remove/form-field-flags.md)
- [JavaScript PDF Form Creator](/guides/web/forms/create-edit-and-remove/built-in-ui.md)
- [Remove form fields from PDFs using JavaScript](/guides/web/forms/create-edit-and-remove/remove-fields.md)
- [Content ownership in Nutrient Instant](/guides/web/instant-synchronization/permissions/content-ownership.md)
- [Editing user permissions](/guides/web/collaboration-permissions/changing-permissions.md)
- [Defining document collaboration permissions](/guides/web/collaboration-permissions/introduction-to-collaboration-permissions.md)
- [Example: Understanding Collaboration Permissions](/guides/web/collaboration-permissions/landlord-tenant-example.md)
- [Setting user collaboration permissions](/guides/web/collaboration-permissions/defining-permissions.md)
- [Adding an image to a PDF form using JavaScript](/guides/web/forms/fill-form-fields/add-image.md)
- [Attach a file to a PDF form using JavaScript](/guides/web/forms/fill-form-fields/attach-a-file.md)
- [Detecting user inputs in PDF forms](/guides/web/forms/fill-form-fields/detect-user-input.md)
- [Dynamic font loading in PDF forms using Nutrient Web SDK](/guides/web/forms/fill-form-fields/dynamic-font-loading.md)
- [Import data into PDFs from a database](/guides/web/forms/fill-form-fields/import-from-database.md)
- [Headless form fill](/guides/web/forms/fill-form-fields/headless.md)
- [Import data into PDF forms using Instant JSON](/guides/web/forms/fill-form-fields/import-from-instant-json.md)
- [Import data into PDF forms using XFDF](/guides/web/forms/fill-form-fields/import-from-xfdf.md)
- [Customizing PDF form permissions](/guides/web/forms/fill-form-fields/permissions.md)
- [Fill PDF form fields using our JavaScript viewer UI](/guides/web/forms/fill-form-fields/using-the-ui.md)
- [Fill PDF forms programmatically using JavaScript](/guides/web/forms/form-filling.md)
- [Import data into PDF form using Web SDK with Document Engine](/guides/web/forms/fill-form-fields/import-from-server-backed.md)
- [Open MS Office files in the browser using JavaScript](/guides/web/open-a-document/office.md)
- [Create and open encrypted PDFs using JavaScript](/guides/web/standalone/accessing-protected-files.md)
- [Open password-protected PDFs in JavaScript](/guides/web/features/password-protected-pdfs.md)
- [Restrict access to PDFs with HTTP basic authentication](/guides/web/open-a-document/secured-documents/http-authenticated.md)
- [Add electronic signatures to PDFs with JavaScript](/guides/web/signatures/adding-an-electronic-signature.md)
- [Sign PDFs with certificates using JavaScript](/guides/web/signatures/using-electronic-signatures-and-digital-signatures-together.md)
- [Save and store electronic signatures in our JavaScript viewer](/guides/web/signatures/signature-storage.md)
- [Digital signature architecture](/guides/web/signatures/digital-signatures/architectures.md)
- [Understanding digital signatures and their importance](/guides/web/signatures/digital-signatures/overview.md)
- [Understanding PAdES and CAdES digital signatures](/guides/web/signatures/digital-signatures/standards.md)
- [Supported cryptographic formats](/guides/web/digital-signatures/introduction-to-digital-signatures.md)
- [Troubleshoot common digital signature issues](/guides/web/signatures/digital-signatures/troubleshooting.md)
- [Known Limitations](/guides/web/troubleshooting/content-editor/known-limitations.md)
- [How to add your license key for Nutrient Web SDK](/guides/web/troubleshooting/license/add-license-key.md)
- [License troubleshooting for Nutrient Web SDK](/guides/web/troubleshooting/license-troubleshooting.md)
- [❌ INCORRECT: Missing `NEXT_PUBLIC_` prefix.](/guides/web/troubleshooting/license/watermark-still-appearing.md)
- [Inconsistent Fonts](/guides/web/rendering-issues/inconsistent-fonts.md)
- [Rendering PDF documents](/guides/web/troubleshooting/complexities-of-rendering-pdfs.md)
- [Pspdfkit Doesnt Show The Pdf Form](/guides/web/rendering-issues/pspdfkit-doesnt-show-the-pdf-form.md)
- [Bug Reporting](/guides/web/troubleshooting/bug-reporting.md)
- [Fixing Split Undefined Error With Npm Build](/guides/web/troubleshooting/fixing-split-undefined-error-with-npm-build.md)
- [Chunkloaderror During Pspdfkit To Nutrient Migration In Ember](/guides/web/troubleshooting/chunkloaderror-during-pspdfkit-to-nutrient-migration-in-ember.md)
- [Fixing Symbol Iterator Error](/guides/web/troubleshooting/fixing-symbol-iterator-error.md)
- [npm](/guides/web/troubleshooting/nightlies.md)
- [Testing Troubleshooting](/guides/web/troubleshooting/testing-troubleshooting.md)
- [This will make the current directory contents available through `http://0.0.0.0:5000`.](/guides/web/troubleshooting/common-issues.md)
- [Typescript](/guides/web/troubleshooting/miscellaneous/typescript.md)
- [Webassembly Simd Support](/guides/web/troubleshooting/webassembly-simd-support.md)
- [Embed custom fonts in our JavaScript PDF viewer](/guides/web/features/custom-fonts.md)
- [Load fonts on demand in PDFs using JavaScript](/guides/web/viewer/fonts/dynamic-fonts.md)
- [Introduction to PDF fonts](/guides/web/viewer/fonts/introduction.md)
- [Substitute fonts in PDFs using JavaScript](/guides/web/viewer/fonts/substitution.md)
- [PDF viewer supported fonts](/guides/web/viewer/fonts/support.md)
- [Accessibility support for our JavaScript PDF viewer](/guides/web/viewer/accessibility.md)
- [Text-to-speech conversion from PDF using JavaScript](/guides/web/viewer/accessibility/text-to-speech.md)
- [Fullscreen mode in our JavaScript PDF viewer](/guides/web/features/fullscreen-mode.md)
- [Magazine viewer using JavaScript](/guides/web/viewer/viewing-options/magazine-viewer.md)
- [Customizing the presentation mode in our JavaScript viewer](/guides/web/viewer/viewing-options/presentation-mode.md)
- [Find and convert PDF coordinates with JavaScript](/guides/web/pspdfkit-for-web/coordinate-spaces.md)
- [View and edit PDF forms online](/guides/web/viewer/rendering/pdf-forms.md)
- [Render pages on canvas in our JavaScript PDF viewer](/guides/web/viewer/rendering/render-in-canvas.md)
- [Rendering PDF pages in our JavaScript PDF viewer](/guides/web/features/rendering-pdf-pages.md)
- [Render watermarks in our JavaScript PDF viewer](/guides/web/features/watermarks.md)
- [Custom color picker for color dropdowns in viewer](/guides/web/user-interface/color-picker/custom-color-picker.md)
- [Adding custom color presets to color dropdowns in viewer](/guides/web/user-interface/color-picker/custom-presets.md)
- [Customizing the document editor toolbar and footer](/guides/web/user-interface/document-editor/customizing-the-document-editor-toolbar-and-footer.md)
- [UI for editing PDF documents](/guides/web/user-interface/document-editor.md)
- [Adding contextual tooltips to annotations in viewer](/guides/web/customizing-the-interface/annotation-tooltips.md)
- [Hide the delete button in the annotation toolbar](/guides/web/user-interface/annotations/hide-the-delete-button.md)
- [Customizing the annotation inspector in our viewer](/guides/web/user-interface/annotations/inspector.md)
- [Mastering annotation presets in your PDF viewer](/guides/web/user-interface/annotations/presets.md)
- [Adding stamp annotations in our JavaScript PDF viewer](/guides/web/user-interface/annotations/stamps.md)
- [Customizing annotation variant buttons in the toolbar](/guides/web/user-interface/annotations/variant-buttons.md)
- [Customizing CSS styling in our JavaScript PDF viewer](/guides/web/customizing-the-interface/css-customization.md)
- [Enabling dark theme in our JavaScript PDF viewer](/guides/web/user-interface/theming/dark-theme.md)
- [Customizing icons in our JavaScript PDF viewer](/guides/web/user-interface/theming/icons.md)
- [Customizing the theme of our JavaScript PDF viewer](/guides/web/user-interface/theming/custom-theme.md)
- [Create a new inline text selection tool in the viewer toolbar](/guides/web/user-interface/inline-text-selection-toolbar/create-a-new-tool.md)
- [Customizing existing tools in our inline text selection toolbar](/guides/web/user-interface/inline-text-selection-toolbar/customize-existing-tools.md)
- [Rearranging inline text selection tools in the viewer toolbar](/guides/web/user-interface/inline-text-selection-toolbar/rearrange-items.md)
- [Remove inline text selection tools](/guides/web/user-interface/inline-text-selection-toolbar/remove-a-tool.md)
- [Customize the text selection tooltip in our viewer](/guides/web/user-interface/inline-text-selection-toolbar/tooltip.md)
- [Remove all tools from the inline text selection toolbar](/guides/web/user-interface/inline-text-selection-toolbar/remove-all-tools.md)
- [Customizing the electronic signature UI](/guides/web/signatures/customizing-the-signature-user-interface.md)
- [Capturing electronic signatures with viewer modals](/guides/web/user-interface/signatures/electronic-signatures.md)
- [Invisible signing: Digitally sign any PDF](/guides/web/user-interface/signatures/invisible-signing.md)
- [Customizing electronic signature fonts](/guides/web/user-interface/signatures/signature-fonts.md)
- [Customizing the digital signature validation status](/guides/web/user-interface/signatures/validation-status.md)
- [Internet Explorer [IE11] support for our JavaScript PDF viewer](/guides/web/customizing-the-interface/ie11.md)
- [Optimizing for mobile for our JavaScript PDF viewer](/guides/web/customizing-the-interface/optimizing-for-mobile.md)
- [Annotations list in our viewer sidebar](/guides/web/user-interface/sidebar/annotations-list.md)
- [Document outline in our JavaScript PDF viewer](/guides/web/user-interface/sidebar/document-outline.md)
- [Bookmark navigation in our JavaScript PDF viewer](/guides/web/user-interface/sidebar/bookmarks.md)
- [Customizing the sidebar component in our JavaScript PDF viewer](/guides/web/user-interface/sidebar/customization.md)
- [Hide or show sidebar navigation in our viewer](/guides/web/customizing-the-interface/controlling-the-sidebar-via-api.md)
- [Customizing the OCG layers icon in our PDF viewer UI](/guides/web/user-interface/sidebar/layers.md)
- [Navigate signed and unsigned signature fields in our PDF viewer sidebar](/guides/web/user-interface/sidebar/signatures-list.md)
- [Thumbnail preview in our JavaScript PDF viewer](/guides/web/user-interface/sidebar/thumbnail-preview.md)
- [Activate or deactivate tools in our viewer toolbar](/guides/web/customizing-the-interface/controlling-the-toolbar-via-api.md)
- [Configuring pager toolbar display behavior](/guides/web/user-interface/main-toolbar/pager-display.md)
- [Customizing tools in the JavaScript PDF viewer toolbar](/guides/web/user-interface/main-toolbar/customize-existing-tools.md)
- [Create a new tool in PDF viewer toolbar](/guides/web/user-interface/main-toolbar/create-a-new-tool.md)
- [Hiding the toolbar in our JavaScript PDF viewer](/guides/web/user-interface/main-toolbar/hide-the-toolbar.md)
- [Customizing download/export buttons in our JavaScript PDF viewer](/guides/web/user-interface/main-toolbar/download-export-button.md)
- [Customize dropdown navigation in the viewer toolbar](/guides/web/user-interface/main-toolbar/dropdown-groups.md)
- [Adding page labels to navigation in our viewer](/guides/web/features/navigation-page-labels.md)
- [Adjust the placement of the toolbar in our viewer](/guides/web/user-interface/main-toolbar/placement.md)
- [Removing a tool from the toolbar in our JavaScript viewer](/guides/web/customizing-the-interface/customizing-the-toolbar.md)
- [Customize the print button (hide/enable) in our JavaScript PDF viewer](/guides/web/user-interface/main-toolbar/print-button.md)
- [Rearrange tools in our viewer toolbar](/guides/web/user-interface/main-toolbar/rearrange.md)
- [Customizing responsive navigation in our viewer toolbar](/guides/web/user-interface/main-toolbar/responsive-groups.md)
- [Building a comment thread UI with the customization API](/guides/web/user-interface/ui-customization/comment-thread-example.md)
- [Custom sidebars](/guides/web/user-interface/ui-customization/custom-sidebars.md)
- [Building headless document UIs](/guides/web/user-interface/ui-customization/headless-ui.md)
- [Slot customization examples](/guides/web/user-interface/ui-customization/examples.md)
- [Set UI customization configuration](/guides/web/user-interface/ui-customization/set-ui.md)
- [Customizing the Nutrient Web SDK UI](/guides/web/user-interface/ui-customization/introduction.md)
- [Supported slots for UI customization](/guides/web/user-interface/ui-customization/supported-slots.md)
- [Add image annotations to PDFs using JavaScript](/guides/web/annotations/create-edit-and-remove/add-image.md)
- [Annotation flags](/guides/web/annotations/annotation-flags.md)
- [Defining the author of an annotation](/guides/web/annotations/annotation-author-name.md)
- [Detect changes in annotations](/guides/web/annotations/detecting-if-annotations-have-changed.md)
- [Cut, copy, paste, and duplicate annotations in PDF using JavaScript](/guides/web/annotations/create-edit-and-remove/cut-copy-duplicate.md)
- [Create PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/create.md)
- [Edit PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/edit.md)
- [Customizing annotation permissions](/guides/web/annotations/create-edit-and-remove/permissions.md)
- [Select PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/multiple-selection.md)
- [Remove PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/remove.md)
- [Rich text in PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/rich-text.md)
- [Undo and redo annotations](/guides/web/annotations/create-edit-and-remove/undo-redo.md)
- [Create a new annotation tool in our viewer toolbar](/guides/web/user-interface/annotation-toolbar/create-a-new-tool.md)
- [Customizing an existing annotation tool in our viewer toolbar](/guides/web/user-interface/annotation-toolbar/customize-existing-tools.md)
- [Creating a custom annotation toolbar for mobile devices](/guides/web/user-interface/annotation-toolbar/mobile-responsiveness.md)
- [Rearranging annotation tools in our viewer toolbar](/guides/web/user-interface/annotation-toolbar/rearrange.md)
- [Removing an annotation tool from our viewer toolbar](/guides/web/user-interface/annotation-toolbar/remove-a-tool.md)
- [Understanding Instant JSON action types](/guides/web/json/schema/actions.md)
- [Create and manage PDF bookmarks with Instant JSON](/guides/web/json/schema/bookmarks.md)
- [Streamline document discussions with Instant Comments](/guides/web/json/schema/comments.md)
- [Understanding Instant JSON attachments and schemas](/guides/web/json/schema/file-attachments.md)
- [Sync PDF form field values using Instant JSON](/guides/web/json/schema/form-field-values.md)
- [Instant JSON format for PDF annotations explained](/guides/web/json/schema/annotations.md)
- [Effective guidelines for PDF form field types](/guides/web/json/schema/form-fields.md)
- [Auto saving annotations](/guides/web/annotations/annotation-saving-mechanism.md)
- [Saving PDF annotations](/guides/web/annotations/save/overview.md)
- [Embedding annotations in a PDF](/guides/web/annotations/save/embed-into-pdf.md)
- [Save annotations to external storage](/guides/web/annotations/save/to-external-storage.md)
- [Integrate digital signatures with AWS CloudHSM](/guides/web/signatures/digital-signatures/integrations/aws-hsm.md)
- [Integrate digital signatures with GlobalSign DSS](/guides/web/signatures/digital-signatures/integrations/globalsign.md)
- [Integrate digital signatures](/guides/web/signatures/digital-signatures/integrations/overview.md)
- [Configure digital signature appearance: Visible vs. non-visible Signatures](/guides/web/signatures/digital-signatures/signature-lifecycle/configure-digital-signature-appearance.md)
- [Add signature fields to PDFs using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/add-a-signature-field.md)
- [Creating self-signed certificates for digital signatures](/guides/web/signatures/digital-signatures/signature-lifecycle/prepare-the-certificates-for-signing.md)
- [Sign a PDF via Document Engine using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document-document-engine.md)
- [Sign a PDF via DWS Processor API using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document-dws.md)
- [Implementing a secure digital signature lifecycle](/guides/web/signatures/digital-signatures/signature-lifecycle/signature-lifecycle-overview.md)
- [Sign a PDF with a certificate in a browser](/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document.md)
- [Validating a digital signature using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/validation.md)
- [Understanding digital signature validation statuses](/guides/web/signatures/digital-signatures/troubleshooting/chain-of-certs-not-valid.md)
- [Document Modified Since Signature](/guides/web/signatures/digital-signatures/troubleshooting/document-modified-since-signature.md)
- [Invalid Signatures](/guides/web/signatures/digital-signatures/troubleshooting/invalid-signatures.md)
- [PDF text selection using JavaScript](/guides/web/samples/pdf-text-selection-javascript.md)
- [PDF presentation mode using JavaScript](/guides/web/samples/presentation-mode.md)
- [Storing electronic signatures in the browser using JavaScript](/guides/web/samples/stored-electronic-signatures.md)
- [Create custom overlays on PDFs using JavaScript](/guides/web/samples/custom-overlay-items.md)
- [Open, view, and annotate on images using JavaScript](/guides/web/samples/annotating-images.md)
- [Customizing PDF text search using JavaScript](/guides/web/samples/customized-pdf-search.md)
- [Custom HTML PDF annotations using JavaScript](/guides/web/samples/custom-annotations.md)
- [Edit PDFs using JavaScript](/guides/web/samples/edit-pdf-javascript.md)
- [Customize the PDF toolbar using JavaScript](/guides/web/samples/customized-pdf-toolbar.md)
- [Add electronic signatures to PDFs using JavaScript](/guides/web/samples/electronic-signatures-in-pdf.md)
- [Zoom example for our JavaScript PDF viewer](/guides/web/samples/zooming.md)
- [PDF form support using JavaScript](/guides/web/samples/javascript-pdf-form.md)
- [Customizing JavaScript PDF printing modes](/guides/web/samples/pdf-printing-modes.md)
- [View PDFs in dark mode using JavaScript](/guides/web/samples/dark-mode-pdf-viewer.md)
- [Add electronic signature images to PDFs using JavaScript](/guides/web/samples/adding-image-electronic-signatures.md)
- [Handling password-protected PDFs in our JavaScript viewer](/guides/web/samples/password-protected-pdf.md)
- [Customize PDF annotation permissions using JavaScript](/guides/web/samples/custom-annotation-permissions.md)
- [Add watermarks to PDFs using JavaScript example](/guides/web/samples/add-watermarks-to-pdf-javascript.md)
- [Open PDFs using JavaScript](/guides/web/samples/open-pdf-using-javascript.md)
- [Disable PDF editing and annotations](/guides/web/samples/open-read-only-pdf.md)
- [Customize PDF annotation tooltips using JavaScript](/guides/web/samples/custom-annotation-tooltip.md)
- [Customized Document Editor Toolbar](/guides/web/samples/customized-document-editor-toolbar.md)
- [Hide or reveal area on PDFs using JavaScript](/guides/web/samples/hide-reveal-area-in-pdf.md)
- [PDF annotation in JavaScript](/guides/web/samples/javascript-pdf-annotations.md)
- [Collaborate on PDFs using JavaScript](/guides/web/samples/instant-pdf-collaboration.md)
- [JavaScript PDF magazine viewer](/guides/web/samples/javascript-magazine-viewer.md)
- [Flipbook PDF viewer using JavaScript](/guides/web/samples/flipbook.md)
- [Digitally sign a PDF using JavaScript](/guides/web/samples/javascript-digital-signatures.md)
- [Drag-and-drop UI in our JavaScript PDF viewer](/guides/web/samples/drag-and-drop.md)
- [Redact PDFs using JavaScript](/guides/web/samples/javascript-pdf-redaction.md)
- [PDF Collaboration permissions using JavaScript](/guides/web/samples/collaboration-permissions.md)
- [Customize the UI for PDF annotations using JavaScript](/guides/web/samples/annotations-inspector.md)

