# embedpdf/embed-pdf-viewer

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/embedpdf-embed-pdf-viewer).**

3,343 stars · 190 forks · TypeScript · mit

## Links

- GitHub: https://github.com/embedpdf/embed-pdf-viewer
- Homepage: https://www.embedpdf.com
- awesome-repositories: https://awesome-repositories.com/repository/embedpdf-embed-pdf-viewer.md

## Topics

`adobe-acrobat` `javascript` `pdf` `pdf-document` `pdf-editor` `pdf-library` `pdf-sdk` `pdf-tools` `pdf-viewer` `pdfium` `pdfjs` `react-pdf` `typescript` `vue-pdf`

## Description

Embed PDF Viewer is a browser-based PDF rendering library that uses a WebAssembly port of the PDFium engine to display documents entirely on the client side, with no server-side processing required. It provides a framework-agnostic core engine layer that manages the PDF document lifecycle, memory allocation, and WebAssembly resource cleanup, with dedicated integration hooks for React and Vue 3 that handle initialization, document loading, and reactive state management.

The library offers both a pre-built, embeddable viewer that can be inserted into any web page with a single initialization call, and a set of headless rendering primitives and logic stores for developers who want to build fully custom viewer interfaces. Its plugin-based architecture organizes viewer capabilities as independent, tree-shakable modules, allowing applications to import only the features they need. PDF parsing and rendering operations are offloaded to a dedicated Web Worker to keep the main UI thread responsive.

Beyond basic viewing, the library includes APIs for adding, removing, and modifying annotations such as highlights, sticky notes, free text, and ink drawings. It supports text extraction and search across documents, form field interaction for filling and submitting, and permanent content redaction. Additional capabilities include bookmark navigation, metadata reading, page zoom and rotation, and configurable scrolling modes.

The viewer interface can be customized through a configuration object that controls appearance, color scheme, feature toggling, and localization into different languages. The same PDF engine code runs in browsers, Node.js, and serverless environments.

## Tags

### Content Management & Publishing

- [WebAssembly Engines](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing/rendering-visualization/pdf-rendering-engines/webassembly-engines.md) — Renders PDF pages directly in the browser using a WebAssembly port of the PDFium engine.
- [PDF Annotations](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-management-platforms/enterprise-specialized-systems/document-management-systems/pdf-annotations.md) — Provides an API for adding, removing, and modifying highlights, sticky notes, and ink drawings on PDF pages. ([source](https://cdn.jsdelivr.net/gh/embedpdf/embed-pdf-viewer@main/README.md))
- [WebAssembly Initializers](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing-tools/pdf-processing-engines/webassembly-initializers.md) — Loads the PDFium WebAssembly binary and initializes the library for all PDF operations. ([source](https://www.embedpdf.com/docs/pdfium/getting-started))
- [PDF Rendering Engines](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-processing-conversion/document-processing/rendering-visualization/pdf-rendering-engines.md) — Draws specific pages of a loaded PDF document onto a canvas or bitmap for display. ([source](https://www.embedpdf.com/docs/engines/introduction))
- [PDF Document Importers](https://awesome-repositories.com/f/content-management-publishing/pdf-document-importers.md) — Reads PDF files from raw bytes into memory and returns a handle for subsequent operations. ([source](https://www.embedpdf.com/docs/pdfium/getting-started))
- [PDF Document Management](https://awesome-repositories.com/f/content-management-publishing/pdf-document-management.md) — Provides a programmatic API to open, close, and manage PDF documents throughout their lifecycle. ([source](https://www.embedpdf.com/docs/pdfium/introduction))
- [PDF Manipulation Libraries](https://awesome-repositories.com/f/content-management-publishing/pdf-manipulation-libraries.md) — Exposes direct JavaScript bindings to the PDFium rendering engine for fine-grained PDF manipulation. ([source](https://www.embedpdf.com/docs))
- [PDF Text Extraction](https://awesome-repositories.com/f/content-management-publishing/pdf-text-extraction.md) — Pulls text content from PDF pages for search, indexing, and locates matches across the entire document. ([source](https://www.embedpdf.com/docs/engines/introduction))
- [PDF Form Filling](https://awesome-repositories.com/f/content-management-publishing/content-management-systems/content-management-platforms/enterprise-specialized-systems/document-management-systems/pdf-form-filling.md) — Supports filling, reading, and submitting form fields embedded within PDF documents. ([source](https://www.embedpdf.com/docs/pdfium/introduction))
- [Text Searchers](https://awesome-repositories.com/f/content-management-publishing/pdf-text-extraction/text-searchers.md) — Locates text matches across all PDF pages and navigates to each occurrence. ([source](https://cdn.jsdelivr.net/gh/embedpdf/embed-pdf-viewer@main/README.md))
- [Text Selectors](https://awesome-repositories.com/f/content-management-publishing/pdf-text-extraction/text-selectors.md) — Enables highlighting and copying text directly from rendered PDF pages. ([source](https://cdn.jsdelivr.net/gh/embedpdf/embed-pdf-viewer@main/README.md))

### Part of an Awesome List

- [PDF Viewer Composables](https://awesome-repositories.com/f/awesome-lists/devtools/vue-integrations/pdf-viewer-composables.md) — Ships a Vue 3 composable for reactive PDF engine lifecycle management with loading and error states. ([source](https://www.embedpdf.com/docs/engines/introduction))
- [PDF Renderers](https://awesome-repositories.com/f/awesome-lists/devtools/webassembly/pdf-renderers.md) — Renders PDF pages directly in the browser using a WebAssembly-based engine with no server dependency.

### Software Engineering & Architecture

- [Framework Agnostic Interfaces](https://awesome-repositories.com/f/software-engineering-architecture/framework-agnostic-interfaces.md) — Encapsulates the PDF engine lifecycle in a framework-agnostic core with React and Vue integration hooks.
- [Document Lifecycle Managers](https://awesome-repositories.com/f/software-engineering-architecture/memory-usage-analysis/memory-leak-prevention/document-lifecycle-managers.md) — Manages PDF document handles and WebAssembly memory allocation with explicit cleanup across environments.
- [Configuration-Driven Assembly](https://awesome-repositories.com/f/software-engineering-architecture/modular-design-patterns/pipeline-component-modularization/configuration-driven-assembly.md) — Assembles the PDF viewer interface and behavior from a single configuration object.
- [Tree-Shakable Feature Imports](https://awesome-repositories.com/f/software-engineering-architecture/modular-feature-architectures/tree-shakable-feature-imports.md) — Allows importing only the PDF features actually used by tree-shaking unused plugins from the final bundle. ([source](https://www.embedpdf.com/docs/vue/headless/introduction))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Organizes viewer capabilities as independent, tree-shakable plugins for selective feature imports.

### User Interface & Experience

- [Headless Primitives](https://awesome-repositories.com/f/user-interface-experience/component-architectures/component-composition/component-composition-primitives/headless-primitives.md) — Provides unopinionated rendering primitives and logic stores for building custom PDF viewer interfaces.
- [PDF Viewers](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/pdf-viewer-components/pdf-viewers.md) — Provides a pre-built, embeddable PDF viewer that can be inserted into any web page. ([source](https://cdn.jsdelivr.net/gh/embedpdf/embed-pdf-viewer@main/README.md))
- [Headless Viewers](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/pdf-viewer-components/pdf-viewers/headless-viewers.md) — Provides unopinionated rendering primitives and logic stores for building custom PDF viewer interfaces.
- [Vue Composables](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/pdf-viewer-components/pdf-viewers/vue-composables.md) — Provides a Vue 3 composable that binds PDFium engine lifecycle to reactive loading and error states.
- [WebAssembly Viewers](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/pdf-viewer-components/pdf-viewers/webassembly-viewers.md) — Renders PDF documents using a WebAssembly port of the PDFium engine with no server dependency.
- [Custom UI Controllers](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/pdf-viewer-components/pdf-viewers/custom-ui-controllers.md) — Lets developers supply their own UI while the library handles PDF logic and rendering. ([source](https://www.embedpdf.com/docs/vue/headless/introduction))
- [Custom Viewer Builders](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-libraries/react-components/pdf-viewer-components/pdf-viewers/custom-viewer-builders.md) — Ships headless rendering primitives and logic stores for building fully custom PDF viewer interfaces. ([source](https://www.embedpdf.com/docs/svelte/headless/introduction))
- [PDF Plugin Systems](https://awesome-repositories.com/f/user-interface-experience/icon-sets/tree-shakeable/pdf-plugin-systems.md) — Ships a modular plugin system that allows tree-shaking unused PDF viewer features from the final bundle.
- [Viewer Interface Customizations](https://awesome-repositories.com/f/user-interface-experience/viewer-interface-customizations.md) — Adjusts the viewer's appearance and behavior through a configuration object. ([source](https://www.embedpdf.com/docs/snippet/introduction))

### Web Development

- [PDF Viewer Hooks](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/component-authoring/react-ecosystem/react-hooks/pdf-viewer-hooks.md) — Provides a dedicated React hook that manages PDFium engine lifecycle and reactive rendering state.
- [Main Thread Offloading](https://awesome-repositories.com/f/web-development/main-thread-offloading.md) — Offloads PDF parsing and rendering to a Web Worker to keep the UI responsive. ([source](https://www.embedpdf.com/docs/engines/introduction))
- [Server-Side PDF Rendering](https://awesome-repositories.com/f/web-development/server-side-pdf-rendering.md) — Renders PDF pages directly in the browser using WebAssembly, eliminating server-side processing. ([source](https://www.embedpdf.com/docs/pdfium/introduction))

### DevOps & Infrastructure

- [Cross-Platform PDF Engines](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/cross-platform-pdf-engines.md) — Runs the same PDF engine code in browsers, Node.js, and serverless functions. ([source](https://www.embedpdf.com/docs/engines/introduction))

### Graphics & Multimedia

- [PDF Viewer Assemblers](https://awesome-repositories.com/f/graphics-multimedia/3d-scene-descriptions/composable-scene-assemblers/pdf-viewer-assemblers.md) — Provides composable viewer assembly for building custom PDF interfaces from modular parts. ([source](https://www.embedpdf.com/docs/svelte/headless/introduction))
- [PDFium Bindings](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/visualization-frameworks/low-level-rendering-engines/pdfium-bindings.md) — Exposes direct JavaScript bindings to the PDFium rendering engine for fine-grained PDF control.

### Security & Cryptography

- [PDF Content Redaction](https://awesome-repositories.com/f/security-cryptography/sensitive-variable-redaction/document-content-redaction/pdf-content-redaction.md) — Permanently removes selected content from PDF pages so it cannot be recovered. ([source](https://cdn.jsdelivr.net/gh/embedpdf/embed-pdf-viewer@main/README.md))
- [Form Fillers](https://awesome-repositories.com/f/security-cryptography/sensitive-variable-redaction/document-content-redaction/pdf-content-redaction/form-fillers.md) — Fills, reads, and submits form fields within PDF documents alongside permanent content redaction.
