New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@embedpdf/engines

Package Overview
Dependencies
Maintainers
1
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@embedpdf/engines

Pluggable runtime layer that abstracts over multiple PDF engines (PDF-ium, Web Workers, mocks, etc.) to provide a unified API for rendering, search, annotation, and other document-level operations in EmbedPDF.

Source
npmnpm
Version
2.12.1
Version published
Weekly downloads
122K
15.25%
Maintainers
1
Weekly downloads
 
Created
Source
EmbedPDF logo

EmbedPDF

NPM version License Join the community on GitHub

@embedpdf/engines

Pluggable rendering engines for EmbedPDF. Ships with PdfiumNative (low-level executor) and PdfEngine (high-level orchestrator) – a promise‑first API built on top of @embedpdf/pdfium.

Documentation

For complete guides, examples, and full API reference, visit:

Official Documentation

Why @embedpdf/engines?

  • High‑level abstraction – handles tasks, DPR scaling, annotation colour resolution, range/linearised loading.
  • Universal runtimes – works in browsers, Node, and serverless environments.
  • Typed & composable – 100 % TypeScript with generics for custom image pipelines.

Features

  • Open PDFs from ArrayBuffer or URL
  • Render full pages, arbitrary rectangles, thumbnails – all DPI‑aware
  • Text extraction, glyph geometry, word‑break‑aware search with context windows
  • Read / create / transform / delete annotations and form fields
  • Page ops: merge, extract, flatten, partial import
  • Attachments & digital‑signature introspection

Installation

npm install @embedpdf/engines @embedpdf/pdfium

Basic Usage

import { init } from '@embedpdf/pdfium';
import { PdfiumNative, PdfEngine } from '@embedpdf/engines/pdfium';
import { browserImageDataToBlobConverter } from '@embedpdf/engines/converters';

const pdfiumWasm =
  'https://cdn.jsdelivr.net/npm/@embedpdf/pdfium/dist/pdfium.wasm';

(async () => {
  const response = await fetch(pdfiumWasm);
  const wasmBinary = await response.arrayBuffer();

  // 1 – boot the low‑level WASM module
  const pdfiumModule = await init({ wasmBinary });

  // 2 – create the native executor (initializes PDFium automatically)
  const native = new PdfiumNative(pdfiumModule);

  // 3 – create the orchestrator with image converter
  const engine = new PdfEngine(native, {
    imageConverter: browserImageDataToBlobConverter,
  });

  // 4 – open & render
  const doc = await engine
    .openDocumentUrl({ id: 'demo', url: '/demo.pdf' })
    .toPromise();
  const page0 = doc.pages[0];

  const blob = await engine.renderPage(doc, page0).toPromise();
})();

Learn More

Head over to our docs for:

  • Getting Started – initialise, render, destroy
  • Engine Interface – implement your own back‑end
  • Advanced Topics – workers, Node pipelines, Sharp image adapters

License

MIT – see the LICENSE file.

Keywords

pdf

FAQs

Package last updated on 01 Apr 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts