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.