---
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-06-16T13:30:17.815Z"
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.

## Ways to use Web SDK

Nutrient Web SDK can load documents with a Web SDK license key, with DWS Viewer API session authorization, or with self-hosted Document Engine. Refer to the guide on [ways to use Web SDK](https://www.nutrient.io/guides/web/about/operational-modes.md) for the full comparison, or read [Web SDK vs. DWS Viewer API](https://www.nutrient.io/guides/web/knowledge-base/web-sdk-vs-dws-viewer.md) if you’re choosing between licensed SDK and DWS Viewer API.

Web SDK with a license key

[Read more](https://www.nutrient.io/guides/web/pspdfkit-for-web/licensing.md)

Web SDK with DWS Viewer API

[Read more](https://www.nutrient.io/guides/dws-viewer/getting-started.md)

Web SDK with self-hosted Document Engine

[Read more](https://www.nutrient.io/sdk/document-engine/getting-started/docker-deployment-react-frontend.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, authorization, and more. 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

- [Agent skill](/guides/web/agent-skill.md)
- [JavaScript barcode library: Scan, read, and generate barcodes](/guides/web/barcodes.md)
- [Best practices](/guides/web/best-practice.md)
- [Appian PDF viewer](/guides/web/appian.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)
- [JavaScript PDF framework support](/guides/web/about/frameworks.md)
- [Compare deployment options and use cases for Nutrient document solutions](/guides/web/about/capability-and-component-comparison-web-sdk.md)
- [Licensing](/guides/web/pspdfkit-for-web/licensing.md)
- [File type support](/guides/web/about/file-type-support.md)
- [Ways to use Web SDK](/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)
- [Compare PDF files using JavaScript](/guides/web/comparison/compare-documents.md)
- [Compare PDF text using JavaScript](/guides/web/comparison/compare-text.md)
- [Compare PDF text using AI and JavaScript](/guides/web/comparison/compare-text-ai.md)
- [Headless file conversion](/guides/web/conversion/headless.md)
- [Convert images to PDFs using JavaScript](/guides/web/conversion/image-to-pdf.md)
- [Convert images to text using JavaScript](/guides/web/conversion/image-to-text.md)
- [Convert PDFs to images using JavaScript](/guides/web/conversion/pdf-to-image.md)
- [Convert Office to PDF using JavaScript](/guides/web/conversion/office-to-pdf.md)
- [Convert PDF to Office using JavaScript](/guides/web/conversion/pdf-to-office.md)
- [JavaScript PDF conversion library](/guides/web/conversion.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 scanned PDFs to searchable PDFs using JavaScript](/guides/web/conversion/scan-to-searchable-pdf.md)
- [Add watermarks to PDFs using JavaScript](/guides/web/document-security/add-a-watermark.md)
- [Password protect PDFs using JavaScript](/guides/web/document-security/password-protect-pdf.md)
- [Document security in our JavaScript PDF viewer](/guides/web/document-security.md)
- [Open PDFs without downloading using JavaScript](/guides/web/document-security/open-without-downloading.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)
- [JavaScript document library](/guides/web/documents.md)
- [Add Bates numbering in PDFs using JavaScript](/guides/web/editor/add-bates-number.md)
- [Add pages to PDFs using JavaScript](/guides/web/editor/add-page.md)
- [Add images to PDFs using JavaScript](/guides/web/editor/add-image.md)
- [PDF editing toolbar and UI](/guides/web/features/document-editor-ui.md)
- [Process documents via Document Engine or DWS API using JavaScript](/guides/web/editor/backend-processing.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)
- [Headless PDF editor](/guides/web/features/document-editor.md)
- [JavaScript PDF editor library](/guides/web/editor.md)
- [Merge PDF files using JavaScript](/guides/web/editor/merge-or-combine.md)
- [Edit page labels in a PDF](/guides/web/editor/page-label.md)
- [Split PDFs using JavaScript](/guides/web/editor/split.md)
- [Replace text in PDFs using JavaScript](/guides/web/editor/replace-text.md)
- [Manage annotations effectively with our API](/guides/web/events/annotation.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)
- [Events and notifications in our JavaScript viewer](/guides/web/events.md)
- [Forms](/guides/web/events/forms.md)
- [Text Selection](/guides/web/events/text-selection.md)
- [JavaScript PDF extraction library](/guides/web/extraction.md)
- [Extract selected text from PDFs programmatically](/guides/web/features/text-selection.md)
- [Extract pages from PDFs using JavaScript](/guides/web/extraction/page-extraction.md)
- [JavaScript PDF parser library](/guides/web/extraction/parse-content.md)
- [Read text from PDFs using JavaScript](/guides/web/extraction/read-text.md)
- [Extract text from PDFs using JavaScript](/guides/web/features/text-extraction.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)
- [Master PDF actions with JavaScript integration](/guides/web/forms/pdf-actions-support.md)
- [Read PDF form fields using JavaScript](/guides/web/forms/read-form-fields.md)
- [JavaScript PDF fillable form library](/guides/web/forms.md)
- [Headless callout annotations](/guides/web/headless/callout.md)
- [Annotation clipboard](/guides/web/headless/clipboard.md)
- [Headless image annotations](/guides/web/headless/image.md)
- [Headless color presets](/guides/web/headless/color-presets.md)
- [Headless](/guides/web/headless.md)
- [Headless ink annotations](/guides/web/headless/ink.md)
- [Headless link annotations](/guides/web/headless/link.md)
- [Programmatic notes panel](/guides/web/headless/notes-panel.md)
- [Headless note annotations](/guides/web/headless/note.md)
- [Headless measurement annotations](/guides/web/headless/measurement.md)
- [Headless content editor](/guides/web/headless/content-editor.md)
- [Headless shape annotations](/guides/web/headless/shape.md)
- [Headless redaction annotations](/guides/web/headless/redactions-from-selection.md)
- [Headless stamp annotations](/guides/web/headless/stamp.md)
- [Headless text annotations](/guides/web/headless/text-annotations.md)
- [Headless text markup](/guides/web/headless/text-markup.md)
- [Integrating sync and collaboration into your JavaScript application](/guides/web/pspdfkit-instant/getting-started.md)
- [Secure client authentication with JWT for web apps](/guides/web/instant-synchronization/authentication.md)
- [Instant sync and collaboration](/guides/web/instant-synchronization.md)
- [Document layers for all workflows](/guides/web/instant-synchronization/instant-layers.md)
- [Choose the right collaboration and synchronization setup](/guides/web/instant-synchronization/choose-the-right-collaboration-and-synchronization-setup.md)
- [Understanding Instant JSON for PDF annotations](/guides/web/json/how-it-works.md)
- [Convert Instant JSON to XFDF using JavaScript](/guides/web/json/convert-to-xfdf.md)
- [Instant JSON](/guides/web/json.md)
- [Toggle layer (OCG) visibility in a PDF using JavaScript](/guides/web/layers/visibility.md)
- [JavaScript library for PDF layers (OCGs)](/guides/web/layers.md)
- [Toggle layer (OCG) Visibility in a PDF via the UI](/guides/web/layers/built-in-ui.md)
- [Introduction to PDF layers (OCGs)](/guides/web/layers/introduction-to-ocg-layers.md)
- [Measure distance in a PDF using JavaScript](/guides/web/measurements/measure-distance.md)
- [Measure area in a PDF using JavaScript](/guides/web/measurements/measure-area.md)
- [Configure measurements in a PDF using JavaScript](/guides/web/measurements/configure-measurements.md)
- [Measure distance and area in a PDF using JavaScript](/guides/web/measurements.md)
- [Migrate to electronic signatures](/guides/web/migration-guides/migrating-to-electronic-signatures.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)
- [How to add a custom toolbar item to display current zoom percentage](/guides/web/knowledge-base/add-custom-zoom-perentage.md)
- [Add Custom Keyboard Shortcuts](/guides/web/knowledge-base/add-custom-keyboard-shortcuts.md)
- [Listen to an annotation’s hover event](/guides/web/knowledge-base/annotations-hover-event.md)
- [Add Listener Text Note Annotation](/guides/web/knowledge-base/add-listener-text-note-annotation.md)
- [Add Signature Initials](/guides/web/knowledge-base/add-signature-initials.md)
- [Add Listener Toolbar Item](/guides/web/knowledge-base/add-listener-toolbar-item.md)
- [Blurry Print Resolution](/guides/web/knowledge-base/blurry-print-resolution.md)
- [Check Password Protected Files](/guides/web/knowledge-base/check-password-protected-files.md)
- [Automatic Annotation Field Tab Ordering](/guides/web/knowledge-base/automatic-annotation-field-tab-ordering.md)
- [Change Default Line Width Ink Annotations](/guides/web/knowledge-base/change-default-line-width-ink-annotations.md)
- [Control Appearance Of Delete Button On Ink Annotations](/guides/web/knowledge-base/control-appearance-of-delete-button-on-ink-annotations.md)
- [Check Document Contains Annotations](/guides/web/knowledge-base/check-document-contains-annotations.md)
- [Default To Cloudy Border](/guides/web/knowledge-base/default-to-cloudy-border.md)
- [Create Highlight Annotations From Text Extraction Technology](/guides/web/knowledge-base/create-highlight-annotations-from-text-extraction-technology.md)
- [Keep widget annotation dimensions consistent across devices](/guides/web/knowledge-base/consistent-widget-annotation-dimensions.md)
- [Disable Context Menu](/guides/web/knowledge-base/disable-context-menu.md)
- [Customize Page Indicator](/guides/web/knowledge-base/customize-page-indicator.md)
- [Delete All Annotations](/guides/web/knowledge-base/delete-all-annotations.md)
- [Determine Current Layout Mode](/guides/web/knowledge-base/determine-current-layout-mode.md)
- [Deselect Text](/guides/web/knowledge-base/deselect-text.md)
- [Detect Pspdfkit Ui Loaded](/guides/web/knowledge-base/detect-pspdfkit-ui-loaded.md)
- [Disable Resize Of Annotations](/guides/web/knowledge-base/disable-resize-of-annotations.md)
- [How to disable text annotation movement in web apps](/guides/web/knowledge-base/disable-text-annotation-movement.md)
- [Export Ink Annotation Image](/guides/web/knowledge-base/export-ink-annotation-image.md)
- [Focus the delete button in a confirm dialog](/guides/web/knowledge-base/focus-delete-button-in-confirm-modal-component.md)
- [Download Exported Document](/guides/web/knowledge-base/download-exported-document.md)
- [Focus Widget Annotation](/guides/web/knowledge-base/focus-widget-annotation.md)
- [Extracting text and cursor position in annotations](/guides/web/knowledge-base/extract-annotation-text-and-retrieve-cursor-position.md)
- [Focus Viewer After Loading](/guides/web/knowledge-base/focus-viewer-after-loading.md)
- [Fix errors with unsupported form field actions](/guides/web/knowledge-base/handle-unsupported-form-field-actions.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)
- [Highlight required form fields](/guides/web/knowledge-base/highlight-required-fields.md)
- [How Do I Disable Scrolling On Page Edges](/guides/web/knowledge-base/how-do-i-disable-scrolling-on-page-edges.md)
- [Handling Clicks On Custom Overlays](/guides/web/knowledge-base/handling-clicks-on-custom-overlays.md)
- [How Do I Prevent Printing Annotations](/guides/web/knowledge-base/how-do-i-prevent-printing-annotations.md)
- [How Do I Rotate A Page](/guides/web/knowledge-base/how-do-i-rotate-a-page.md)
- [How Do I Toggle The Theme](/guides/web/knowledge-base/how-do-i-toggle-the-theme.md)
- [How Do I Limit The Number Of Annotations](/guides/web/knowledge-base/how-do-i-limit-the-number-of-annotations.md)
- [Resize multiline text fields to avoid overflow](/guides/web/knowledge-base/how-do-i-resize-form-fields.md)
- [How Do I Zoom To A Specific Value](/guides/web/knowledge-base/how-do-i-zoom-to-a-specific-value.md)
- [Iterate over form fields and widgets](/guides/web/knowledge-base/iterate-over-form-fields.md)
- [Image Attachments Lost Stamp Annotation Templates](/guides/web/knowledge-base/image-attachments-lost-stamp-annotation-templates.md)
- [License Registered Different Bundle Id](/guides/web/knowledge-base/license-registered-different-bundle-id.md)
- [Link Text](/guides/web/knowledge-base/link-text.md)
- [Find Ink Annotation For Signature Form Field](/guides/web/knowledge-base/find-ink-annotation-for-signature-form-field.md)
- [Load Pdf As Arraybuffer](/guides/web/knowledge-base/load-pdf-as-arraybuffer.md)
- [Load Pdf From Stream](/guides/web/knowledge-base/load-pdf-from-stream.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)
- [Loading Multiple Files](/guides/web/knowledge-base/loading-multiple-files.md)
- [How To Create Bookmarks From Outline Elements](/guides/web/knowledge-base/how-to-create-bookmarks-from-outline-elements.md)
- [Override Ink Signature Dialog](/guides/web/knowledge-base/override-ink-signature-dialog.md)
- [Override User Agent](/guides/web/knowledge-base/override-user-agent.md)
- [Overview](/guides/web/knowledge-base/overview.md)
- [Prevent Editing Content Text Annotation](/guides/web/knowledge-base/prevent-editing-content-text-annotation.md)
- [Persist Currently Edited Note Test](/guides/web/knowledge-base/persist-currently-edited-note-test.md)
- [Persist Ink Signatures Across Instances](/guides/web/knowledge-base/persist-ink-signatures-across-instances.md)
- [Place Annotation At Visible Center](/guides/web/knowledge-base/place-annotation-at-visible-center.md)
- [Observe Document Editor Visibility](/guides/web/knowledge-base/observe-document-editor-visibility.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)
- [Prevent Shortcut Printing](/guides/web/knowledge-base/prevent-shortcut-printing.md)
- [Render Document Full Height](/guides/web/knowledge-base/render-document-full-height.md)
- [Read-only forms](/guides/web/knowledge-base/read-only-forms.md)
- [Render Night Mode](/guides/web/knowledge-base/render-night-mode.md)
- [Render Page Black White](/guides/web/knowledge-base/render-page-black-white.md)
- [Render Page Without Annotations](/guides/web/knowledge-base/render-page-without-annotations.md)
- [Programmatic Comment Annotations](/guides/web/knowledge-base/programmatic-comment-annotations.md)
- [Render Watermark When Printing](/guides/web/knowledge-base/render-watermark-when-printing.md)
- [Rotate Ink Annotation](/guides/web/knowledge-base/rotate-ink-annotation.md)
- [Render Visible Area In Current Page](/guides/web/knowledge-base/render-visible-area-in-current-page.md)
- [Restore Last Seen Page](/guides/web/knowledge-base/restore-last-seen-page.md)
- [Save Modified Pdf To Document Engine](/guides/web/knowledge-base/save-modified-pdf-to-document-engine.md)
- [Show Annotations Properties As Tooltip](/guides/web/knowledge-base/show-annotations-properties-as-tooltip.md)
- [Web Sdk Vs Dws Viewer](/guides/web/knowledge-base/web-sdk-vs-dws-viewer.md)
- [Show Focus Ring Read Only](/guides/web/knowledge-base/show-focus-ring-read-only.md)
- [Submit Ink Signatures With Form](/guides/web/knowledge-base/submit-ink-signatures-with-form.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)
- [JavaScript Office library](/guides/web/office.md)
- [Choose the right document opening and loading setup](/guides/web/open-a-document/choose-the-right-document-opening-and-loading-setup.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 PDFs using DWS Viewer API](/guides/web/open-a-document/from-dws-viewer-api.md)
- [Open documents from Document Engine](/guides/web/open-a-document/from-document-engine.md)
- [Open PDFs from Base64 in the browser using JavaScript](/guides/web/open-a-document/from-base64-data.md)
- [Open image files from an array buffer using JavaScript](/guides/web/open-a-document/image-from-arraybuffer.md)
- [Open and display PDF files from a remote URL using JavaScript](/guides/web/open-a-document/from-remote-url.md)
- [Open local PDF files using JavaScript](/guides/web/open-a-document/from-local-storage.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 Base64 image files using JavaScript](/guides/web/open-a-document/image-from-base64-data.md)
- [Open and display PDFs in the browser using JavaScript](/guides/web/open-a-document.md)
- [Open image files from a URL using JavaScript](/guides/web/open-a-document/image-from-remote-url.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 Base64 MS Office files using JavaScript](/guides/web/open-a-document/office-from-base64-data.md)
- [Open MS Office files from a URL using JavaScript](/guides/web/open-a-document/office-from-remote-url.md)
- [Opening specific pages in PDFs using JavaScript](/guides/web/features/open-parameters.md)
- [Open local MS Office files using JavaScript](/guides/web/open-a-document/office-from-local-storage.md)
- [Temporary storage for PDF downloads](/guides/web/open-a-document/temp-storage.md)
- [JavaScript PDF generation library](/guides/web/pdf-generation.md)
- [Generate a PDF with a PDF form using JavaScript](/guides/web/pdf-generation/from-pdf-form.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 PDF thumbnails using JavaScript](/guides/web/pdf-generation/thumbnail-preview.md)
- [Headless PDF generation](/guides/web/pdf-generation/headless.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)
- [Optimizing performance in the Nutrient JavaScript PDF viewer](/guides/web/best-practices/performance.md)
- [PDF annotation diffs in our JavaScript viewer](/guides/web/performance/annotation-diff.md)
- [Optimize PDF loading with linearized documents](/guides/web/performance/linearized-downloads.md)
- [Enhance PDF performance with document streaming](/guides/web/performance/streaming.md)
- [Web caching for our JavaScript PDF viewer](/guides/web/best-practices/caching-on-the-web.md)
- [Disable print options in PDFs using JavaScript](/guides/web/print/disable-printing.md)
- [Auto print PDFs using JavaScript](/guides/web/print/auto-print.md)
- [Print PDFs from Base64 using JavaScript](/guides/web/print/from-base64.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 to PDFs programmatically using JavaScript](/guides/web/features/printing.md)
- [JavaScript library to print PDFs](/guides/web/print.md)
- [Print PDFs without opening using JavaScript](/guides/web/print/without-opening-pdf.md)
- [Print modes in our JavaScript PDF viewer](/guides/web/print/print-modes.md)
- [Print PDFs without annotations using JavaScript](/guides/web/print/without-annotations.md)
- [Headless redaction](/guides/web/redaction/headless.md)
- [JavaScript PDF redaction library](/guides/web/redaction.md)
- [PDF redaction techniques for your documents](/guides/web/redaction/introduction-to-redaction.md)
- [Redact PDFs using JavaScript tools](/guides/web/redaction/built-in-ui.md)
- [Automate document redaction with predefined patterns](/guides/web/redaction/preset-patterns.md)
- [Production-safe redaction workflow](/guides/web/redaction/production-safe-workflow.md)
- [Redact PDFs using regex](/guides/web/redaction/regex-patterns.md)
- [Programmatically redact PDFs using JavaScript](/guides/web/redaction/programmatically.md)
- [Search and redact PDFs using JavaScript](/guides/web/redaction/search-and-redact.md)
- [Detecting unsaved changes in PDFs](/guides/web/save-a-document/detect-unsaved-changes.md)
- [Save PDF files using JavaScript](/guides/web/save-a-document.md)
- [Enable incremental saving of PDFs using JavaScript](/guides/web/features/document-processing.md)
- [Save documents as PDFs on the web](/guides/web/save-a-document/save-as.md)
- [Save PDFs to an ArrayBuffer using JavaScript](/guides/web/save-a-document/to-arraybuffer.md)
- [Save PDFs to local storage using JavaScript](/guides/web/save-a-document/to-local-storage.md)
- [Save PDFs to Document Engine using JavaScript](/guides/web/save-a-document/to-document-engine.md)
- [Save PDF without annotations using JavaScript](/guides/web/save-a-document/without-annotations.md)
- [Auto-saving PDF changes in our JavaScript viewer](/guides/web/features/saving.md)
- [Save PDFs to a remote server using JavaScript](/guides/web/save-a-document/to-remote-server.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)
- [Search text in PDFs using JavaScript](/guides/web/features/customized-search.md)
- [Fill and sign PDF forms using JavaScript](/guides/web/signatures/fill-and-sign-forms.md)
- [JavaScript PDF signature library](/guides/web/signatures.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)
- [1 1](/guides/web/release-notes/1-1.md)
- [1 0](/guides/web/release-notes/1-0.md)
- [1 11](/guides/web/release-notes/1-11.md)
- [1 13 1](/guides/web/release-notes/1-13-1.md)
- [1 12](/guides/web/release-notes/1-12.md)
- [1 10](/guides/web/release-notes/1-10.md)
- [1 13](/guides/web/release-notes/1-13.md)
- [1 15](/guides/web/release-notes/1-15.md)
- [1 14](/guides/web/release-notes/1-14.md)
- [1 4](/guides/web/release-notes/1-4.md)
- [1 2](/guides/web/release-notes/1-2.md)
- [1 3](/guides/web/release-notes/1-3.md)
- [1 5](/guides/web/release-notes/1-5.md)
- [1 16](/guides/web/release-notes/1-16.md)
- [1 8](/guides/web/release-notes/1-8.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)
- [2017 3](/guides/web/release-notes/2017-3.md)
- [2017 6](/guides/web/release-notes/2017-6.md)
- [Update your PSPDFKit for Web to version 2017.7](/guides/web/release-notes/2017-7.md)
- [Upgrade annotations in PSPDFKit Web 2017.8](/guides/web/release-notes/2017-8.md)
- [PSPDFKit for Web 2018.2 migration insights](/guides/web/release-notes/2018-2.md)
- [Discover the new features in PSPDFKit for Web 2018.3](/guides/web/release-notes/2018-3.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)
- [Explore PSPDFKit for Web 2018.4 features](/guides/web/release-notes/2018-4.md)
- [Explore PSPDFKit for Web 2018.6 enhancements](/guides/web/release-notes/2018-6.md)
- [Explore new features in PSPDFKit 2018.5](/guides/web/release-notes/2018-5.md)
- [Explore the new features in PSPDFKit 2018.7](/guides/web/release-notes/2018-7.md)
- [Key updates in PSPDFKit for Web 2019.1](/guides/web/release-notes/2019-1.md)
- [2019 2](/guides/web/release-notes/2019-2.md)
- [PSPDFKit for Web 2019.5 migration insights](/guides/web/release-notes/2019-5.md)
- [PSPDFKit for Web 2019.3 migration highlights](/guides/web/release-notes/2019-3.md)
- [Essential updates in PSPDFKit for Web 2019.4](/guides/web/release-notes/2019-4.md)
- [PSPDFKit Web and Server 2020.4 migration update](/guides/web/release-notes/2020-4.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)
- [Seamless migration to PSPDFKit for Web 2020.2](/guides/web/release-notes/2020-2.md)
- [Upgrade to PSPDFKit for Web 2021.1 with ease](/guides/web/release-notes/2021-1.md)
- [Seamlessly migrate to PSPDFKit for Web 2021.2](/guides/web/release-notes/2021-2.md)
- [PSPDFKit Web 2020.6 migration insights](/guides/web/release-notes/2020-6.md)
- [2021 3](/guides/web/release-notes/2021-3.md)
- [Unified CRUD API enhancements for easy migration](/guides/web/release-notes/2020-5.md)
- [Enhancements in PSPDFKit for Web 2022.2](/guides/web/release-notes/2022-2.md)
- [2021 6](/guides/web/release-notes/2021-6.md)
- [PSPDFKit 2022.1.1 migration changes](/guides/web/release-notes/2022-1.md)
- [Migration guide for PSPDFKit 2021.5](/guides/web/release-notes/2021-5.md)
- [Explore the new features of PSPDFKit for Web 2022.3](/guides/web/release-notes/2022-3.md)
- [PSPDFKit for Web 2022.4 migration overview](/guides/web/release-notes/2022-4.md)
- [PSPDFKit 2021.4 migration guide for seamless updates](/guides/web/release-notes/2021-4.md)
- [Key improvements in PSPDFKit for Web 2022.5](/guides/web/release-notes/2022-5.md)
- [PSPDFKit 2023.2 migration and updates](/guides/web/release-notes/2023-2.md)
- [Key updates in PSPDFKit for Web 2023.5](/guides/web/release-notes/2023-5.md)
- [Discover the key updates in PSPDFKit for Web 2023.1](/guides/web/release-notes/2023-1.md)
- [Explore key updates in PSPDFKit for Web 2023.4](/guides/web/release-notes/2023-4.md)
- [Essential Nutrient Web SDK 2024.1 migration tips](/guides/web/release-notes/2024-1.md)
- [2024 4](/guides/web/release-notes/2024-4.md)
- [2024 2](/guides/web/release-notes/2024-2.md)
- [2024 3](/guides/web/release-notes/2024-3.md)
- [2024 8](/guides/web/release-notes/2024-8.md)
- [2024 5](/guides/web/release-notes/2024-5.md)
- [2024 7](/guides/web/release-notes/2024-7.md)
- [Upgrading Nutrient Web SDK](/guides/web/release-notes/upgrading.md)
- [Key updates in PSPDFKit for Web 2023.3](/guides/web/release-notes/2023-3.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)
- [Form Designer: Create and edit PDF form fields using JavaScript](/guides/web/user-interface/form-designer.md)
- [User interface customization in our JavaScript PDF viewer](/guides/web/user-interface.md)
- [Localization: Updating languages in our JavaScript PDF viewer](/guides/web/features/localization.md)
- [Custom overlays in our viewer](/guides/web/customizing-the-interface/creating-custom-overlay-items.md)
- [Create and customize redactions in our PDF viewer](/guides/web/user-interface/redaction.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)
- [Client authentication and session renewal](/guides/web/viewer/client-authentication.md)
- [Create custom annotation toggle button](/guides/web/viewer/custom-annotation-toggle.md)
- [JavaScript PDF viewer library](/guides/web/viewer.md)
- [Enhance PDF viewing with linearized downloading](/guides/web/viewer/linearized-downloads.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)
- [Mobile responsive JavaScript PDF viewer](/guides/web/viewer/mobile-responsive.md)
- [Office document viewing in JavaScript](/guides/web/viewer/office-documents.md)
- [JavaScript Support in our PDF viewer](/guides/web/features/javascript.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)
- [Enable or disable permissions in our JavaScript viewer](/guides/web/features/document-permissions.md)
- [Production runtime setup checklist](/guides/web/viewer/production-runtime-setup-checklist.md)
- [PDF document streaming in JavaScript](/guides/web/viewer/streaming.md)
- [macOS/Linux](/guides/web/viewer/troubleshooting.md)
- [Zoom options in our JavaScript PDF viewer](/guides/web/viewer/zooming.md)
- [Streamline your migration from PDFTron WebViewer](/guides/web/about/migration-guides/migrating-from-pdftron-webviewer.md)
- [Migrating from react-pdf to Nutrient Web SDK](/guides/web/about/migration-guides/migrating-from-react-pdf.md)
- [Migrating from PDF.js to Nutrient Web SDK](/guides/web/about/migration-guides/migrating-from-mozilla-pdfjs.md)
- [Enhance your image annotation experience effortlessly](/guides/web/annotations/annotate-on-images/specification.md)
- [Adding annotations to images using JavaScript](/guides/web/annotations/annotate-on-images/create-edit-and-remove.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)
- [Integrating Nutrient Web SDK with AI agents](/guides/web/ai-assistant/ai-agent-tools.md)
- [LangChain](/guides/web/ai-assistant/ai-agent-tools/langchain.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)
- [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 with Document Engine](/guides/web/annotations/import-and-export/server-backed.md)
- [Importing and exporting annotations in a database](/guides/web/annotations/import-and-export/database.md)
- [Export only selected annotations](/guides/web/annotations/import-and-export/export-only-selected-annotations.md)
- [Importing and exporting annotations in XFDF](/guides/web/importing-exporting/xfdf-support.md)
- [Importing and exporting annotations with Instant JSON](/guides/web/importing-exporting/instant-json.md)
- [Supporting link annotations in PDFs using JavaScript](/guides/web/annotations/link-annotations.md)
- [PDF annotation actions support](/guides/web/annotations/pdf-actions.md)
- [Adding stamp annotations to PDFs using JavaScript](/guides/web/features/stamp-annotation-templates.md)
- [Customizing stamp annotations](/guides/web/annotations/stamp-annotation-configuration.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)
- [Annotation customization](/guides/web/annotations/custom-rendered-annotations.md)
- [Annotation appearance streams](/guides/web/annotations/appearance-streams.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)
- [Hiding annotations in our viewer](/guides/web/annotations/customization/hiding-annotations.md)
- [Customizing display logic for annotations](/guides/web/best-practices/business-logic.md)
- [Store custom data in annotations](/guides/web/annotations/custom-data-in-annotations.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)
- [Auto saving annotations](/guides/web/annotations/annotation-saving-mechanism.md)
- [Saving PDF annotations](/guides/web/annotations/save/overview.md)
- [Add image annotations to PDFs using JavaScript](/guides/web/annotations/create-edit-and-remove/add-image.md)
- [Defining the author of an annotation](/guides/web/annotations/annotation-author-name.md)
- [Create PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/create.md)
- [Annotation flags](/guides/web/annotations/annotation-flags.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)
- [Edit PDF annotations using JavaScript](/guides/web/annotations/create-edit-and-remove/edit.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)
- [Customizing annotation permissions](/guides/web/annotations/create-edit-and-remove/permissions.md)
- [Undo and redo annotations](/guides/web/annotations/create-edit-and-remove/undo-redo.md)
- [Adding margins to PDF pages using JavaScript](/guides/web/editor/page-manipulation/add-margins.md)
- [Crop PDFs using JavaScript](/guides/web/editor/page-manipulation/crop.md)
- [Move or copy PDF pages using JavaScript](/guides/web/editor/page-manipulation/move-or-copy.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)
- [Synchronizing annotations across users, devices, and sessions](/guides/web/annotations/synchronization.md)
- [Conflict resolution when synchronizing annotations](/guides/web/annotations/synchronization/conflict-resolution.md)
- [Review persistence architecture](/guides/web/annotations/synchronization/review-persistence-architecture.md)
- [Storing annotation data](/guides/web/annotations/synchronization/storing-annotation-data.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)
- [Detect changes in PDF bookmarks](/guides/web/bookmarks/detect-changes.md)
- [Edit bookmarks in PDFs using JavaScript](/guides/web/bookmarks/edit.md)
- [Remove bookmarks in PDFs using JavaScript](/guides/web/bookmarks/remove.md)
- [Adding a signature field to a PDF form](/guides/web/forms/create-edit-and-remove/add-signature-field.md)
- [JavaScript PDF Form Creator](/guides/web/forms/create-edit-and-remove/built-in-ui.md)
- [Build a browser form template builder](/guides/web/forms/browser-form-template-builder.md)
- [PDF form field flags](/guides/web/forms/create-edit-and-remove/form-field-flags.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)
- [Remove form fields from PDFs using JavaScript](/guides/web/forms/create-edit-and-remove/remove-fields.md)
- [Submit and save PDF forms to an external source](/guides/web/forms/form-submission.md)
- [Autosaving changes made to PDF forms](/guides/web/forms/submit-or-save/auto-save.md)
- [Submit and save PDF forms using Document Engine](/guides/web/forms/submit-or-save/to-server-backed.md)
- [Embed data into PDF forms using JavaScript](/guides/web/forms/submit-or-save/embed-data-into-pdf.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 form using Web SDK with Document Engine](/guides/web/forms/fill-form-fields/import-from-server-backed.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)
- [Fill PDF forms programmatically using JavaScript](/guides/web/forms/form-filling.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)
- [Example: Understanding Collaboration Permissions](/guides/web/collaboration-permissions/landlord-tenant-example.md)
- [Content ownership in Nutrient Instant](/guides/web/instant-synchronization/permissions/content-ownership.md)
- [Editing user permissions](/guides/web/collaboration-permissions/changing-permissions.md)
- [Setting user collaboration permissions](/guides/web/collaboration-permissions/defining-permissions.md)
- [Defining document collaboration permissions](/guides/web/collaboration-permissions/introduction-to-collaboration-permissions.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)
- [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)
- [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)
- [Open MS Office files in the browser using JavaScript](/guides/web/open-a-document/office.md)
- [Restrict access to PDFs with HTTP basic authentication](/guides/web/open-a-document/secured-documents/http-authenticated.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)
- [Sign PDFs with certificates using JavaScript](/guides/web/signatures/using-electronic-signatures-and-digital-signatures-together.md)
- [Add electronic signatures to PDFs with JavaScript](/guides/web/signatures/adding-an-electronic-signature.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)
- [❌ INCORRECT: Missing `NEXT_PUBLIC_` prefix.](/guides/web/troubleshooting/license/watermark-still-appearing.md)
- [License troubleshooting for Nutrient Web SDK](/guides/web/troubleshooting/license-troubleshooting.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)
- [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 the annotation inspector in our viewer](/guides/web/user-interface/annotations/inspector.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)
- [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 custom color presets to color dropdowns in viewer](/guides/web/user-interface/color-picker/custom-presets.md)
- [Custom color picker for color dropdowns in viewer](/guides/web/user-interface/color-picker/custom-color-picker.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)
- [Bug Reporting](/guides/web/troubleshooting/bug-reporting.md)
- [Chunkloaderror During Pspdfkit To Nutrient Migration In Ember](/guides/web/troubleshooting/chunkloaderror-during-pspdfkit-to-nutrient-migration-in-ember.md)
- [Content Security Policy](/guides/web/troubleshooting/content-security-policy.md)
- [Fixing Symbol Iterator Error](/guides/web/troubleshooting/fixing-symbol-iterator-error.md)
- [Debug Logging](/guides/web/troubleshooting/debug-logging.md)
- [npm](/guides/web/troubleshooting/nightlies.md)
- [This will make the current directory contents available through `http://0.0.0.0:5000`.](/guides/web/troubleshooting/common-issues.md)
- [Fixing Split Undefined Error With Npm Build](/guides/web/troubleshooting/fixing-split-undefined-error-with-npm-build.md)
- [Testing Troubleshooting](/guides/web/troubleshooting/testing-troubleshooting.md)
- [Typescript](/guides/web/troubleshooting/miscellaneous/typescript.md)
- [Webassembly Simd Support](/guides/web/troubleshooting/webassembly-simd-support.md)
- [Load fonts on demand in PDFs using JavaScript](/guides/web/viewer/fonts/dynamic-fonts.md)
- [Substitute fonts in PDFs using JavaScript](/guides/web/viewer/fonts/substitution.md)
- [Embed custom fonts in our JavaScript PDF viewer](/guides/web/features/custom-fonts.md)
- [Introduction to PDF fonts](/guides/web/viewer/fonts/introduction.md)
- [PDF viewer supported fonts](/guides/web/viewer/fonts/support.md)
- [Text-to-speech conversion from PDF using JavaScript](/guides/web/viewer/accessibility/text-to-speech.md)
- [Accessibility support for our JavaScript PDF viewer](/guides/web/viewer/accessibility.md)
- [Keyboard-accessible review workflow](/guides/web/viewer/accessibility/keyboard-review-workflow.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 all tools from the inline text selection toolbar](/guides/web/user-interface/inline-text-selection-toolbar/remove-all-tools.md)
- [Remove inline text selection tools](/guides/web/user-interface/inline-text-selection-toolbar/remove-a-tool.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)
- [Customize the text selection tooltip in our viewer](/guides/web/user-interface/inline-text-selection-toolbar/tooltip.md)
- [Find and convert PDF coordinates with JavaScript](/guides/web/pspdfkit-for-web/coordinate-spaces.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)
- [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)
- [Fullscreen mode in our JavaScript PDF viewer](/guides/web/features/fullscreen-mode.md)
- [Customizing the presentation mode in our JavaScript viewer](/guides/web/viewer/viewing-options/presentation-mode.md)
- [Magazine viewer using JavaScript](/guides/web/viewer/viewing-options/magazine-viewer.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)
- [Create a new tool in PDF viewer toolbar](/guides/web/user-interface/main-toolbar/create-a-new-tool.md)
- [Customizing download/export buttons in our JavaScript PDF viewer](/guides/web/user-interface/main-toolbar/download-export-button.md)
- [Customizing tools in the JavaScript PDF viewer toolbar](/guides/web/user-interface/main-toolbar/customize-existing-tools.md)
- [Customize dropdown navigation in the viewer toolbar](/guides/web/user-interface/main-toolbar/dropdown-groups.md)
- [Hiding the toolbar in our JavaScript PDF viewer](/guides/web/user-interface/main-toolbar/hide-the-toolbar.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)
- [Rearrange tools in our viewer toolbar](/guides/web/user-interface/main-toolbar/rearrange.md)
- [Customize the print button (hide/enable) in our JavaScript PDF viewer](/guides/web/user-interface/main-toolbar/print-button.md)
- [Removing a tool from the toolbar in our JavaScript viewer](/guides/web/customizing-the-interface/customizing-the-toolbar.md)
- [Customizing responsive navigation in our viewer toolbar](/guides/web/user-interface/main-toolbar/responsive-groups.md)
- [Customizing CSS styling in our JavaScript PDF viewer](/guides/web/customizing-the-interface/css-customization.md)
- [Customizing the theme of our JavaScript PDF viewer](/guides/web/user-interface/theming/custom-theme.md)
- [Customizing icons in our JavaScript PDF viewer](/guides/web/user-interface/theming/icons.md)
- [Enabling dark theme in our JavaScript PDF viewer](/guides/web/user-interface/theming/dark-theme.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)
- [Building a comment thread UI with the customization API](/guides/web/user-interface/ui-customization/comment-thread-example.md)
- [Customizing the Nutrient Web SDK UI](/guides/web/user-interface/ui-customization/introduction.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)
- [Set UI customization configuration](/guides/web/user-interface/ui-customization/set-ui.md)
- [Slot customization examples](/guides/web/user-interface/ui-customization/examples.md)
- [Supported slots for UI customization](/guides/web/user-interface/ui-customization/supported-slots.md)
- [Building a custom document editor sidebar with the customization API](/guides/web/user-interface/ui-customization/document-editor-sidebar-example.md)
- [Create PDF outlines using JavaScript](/guides/web/bookmarks/outlines/create.md)
- [Edit PDF outlines using JavaScript](/guides/web/bookmarks/outlines/edit.md)
- [Remove PDF outlines using JavaScript](/guides/web/bookmarks/outlines/remove.md)
- [Bookmark navigation in our JavaScript PDF viewer](/guides/web/user-interface/sidebar/bookmarks.md)
- [Document outline in our JavaScript PDF viewer](/guides/web/user-interface/sidebar/document-outline.md)
- [Annotations list in our viewer sidebar](/guides/web/user-interface/sidebar/annotations-list.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)
- [PDF form elements and data formats](/guides/web/forms/introduction-to-forms/data-formats.md)
- [Understanding the benefits of PDF forms](/guides/web/forms/introduction-to-forms/what-are-forms.md)
- [Supported PDF form fields](/guides/web/forms/introduction-to-forms.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)
- [Rearranging annotation tools in our viewer toolbar](/guides/web/user-interface/annotation-toolbar/rearrange.md)
- [Creating a custom annotation toolbar for mobile devices](/guides/web/user-interface/annotation-toolbar/mobile-responsiveness.md)
- [Removing an annotation tool from our viewer toolbar](/guides/web/user-interface/annotation-toolbar/remove-a-tool.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)
- [Integrate digital signatures with AWS CloudHSM](/guides/web/signatures/digital-signatures/integrations/aws-hsm.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)
- [Configure digital signature appearance: Visible vs. non-visible Signatures](/guides/web/signatures/digital-signatures/signature-lifecycle/configure-digital-signature-appearance.md)
- [Sign a PDF via Document Engine using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document-document-engine.md)
- [Implementing a secure digital signature lifecycle](/guides/web/signatures/digital-signatures/signature-lifecycle/signature-lifecycle-overview.md)
- [Sign a PDF via DWS Processor API using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document-dws.md)
- [Validating a digital signature using JavaScript](/guides/web/signatures/digital-signatures/signature-lifecycle/validation.md)
- [Sign a PDF with a certificate in a browser](/guides/web/signatures/digital-signatures/signature-lifecycle/sign-a-pdf-document.md)
- [Invalid Signatures](/guides/web/signatures/digital-signatures/troubleshooting/invalid-signatures.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)
- [Zoom example for our JavaScript PDF viewer](/guides/web/samples/zooming.md)
- [View PDFs in dark mode using JavaScript](/guides/web/samples/dark-mode-pdf-viewer.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)
- [Add watermarks to PDFs using JavaScript example](/guides/web/samples/add-watermarks-to-pdf-javascript.md)
- [Customized Document Editor Toolbar](/guides/web/samples/customized-document-editor-toolbar.md)
- [Add electronic signature images to PDFs using JavaScript](/guides/web/samples/adding-image-electronic-signatures.md)
- [Open PDFs using JavaScript](/guides/web/samples/open-pdf-using-javascript.md)
- [PDF form support using JavaScript](/guides/web/samples/javascript-pdf-form.md)
- [Edit PDFs using JavaScript](/guides/web/samples/edit-pdf-javascript.md)
- [Custom HTML PDF annotations using JavaScript](/guides/web/samples/custom-annotations.md)
- [Disable PDF editing and annotations](/guides/web/samples/open-read-only-pdf.md)
- [Customize PDF annotation permissions using JavaScript](/guides/web/samples/custom-annotation-permissions.md)
- [Customize PDF annotation tooltips using JavaScript](/guides/web/samples/custom-annotation-tooltip.md)
- [PDF Collaboration permissions using JavaScript](/guides/web/samples/collaboration-permissions.md)
- [Drag-and-drop UI in our JavaScript PDF viewer](/guides/web/samples/drag-and-drop.md)
- [Hide or reveal area on PDFs using JavaScript](/guides/web/samples/hide-reveal-area-in-pdf.md)
- [Flipbook PDF viewer using JavaScript](/guides/web/samples/flipbook.md)
- [Add electronic signatures to PDFs using JavaScript](/guides/web/samples/electronic-signatures-in-pdf.md)
- [Customizing PDF text search using JavaScript](/guides/web/samples/customized-pdf-search.md)
- [PDF presentation mode using JavaScript](/guides/web/samples/presentation-mode.md)
- [Digitally sign a PDF using JavaScript](/guides/web/samples/javascript-digital-signatures.md)
- [PDF text selection using JavaScript](/guides/web/samples/pdf-text-selection-javascript.md)
- [Handling password-protected PDFs in our JavaScript viewer](/guides/web/samples/password-protected-pdf.md)
- [Customizing JavaScript PDF printing modes](/guides/web/samples/pdf-printing-modes.md)
- [Customize the PDF toolbar using JavaScript](/guides/web/samples/customized-pdf-toolbar.md)
- [Open, view, and annotate on images using JavaScript](/guides/web/samples/annotating-images.md)
- [Redact PDFs using JavaScript](/guides/web/samples/javascript-pdf-redaction.md)
- [Collaborate on PDFs using JavaScript](/guides/web/samples/instant-pdf-collaboration.md)
- [PDF annotation in JavaScript](/guides/web/samples/javascript-pdf-annotations.md)
- [JavaScript PDF magazine viewer](/guides/web/samples/javascript-magazine-viewer.md)
- [Customize the UI for PDF annotations using JavaScript](/guides/web/samples/annotations-inspector.md)

