Fullbleed 0.3.0: PDFs in Node.js and browsers
Fullbleed now has a browser SDK: render static HTML/CSS in a Web Worker with fullbleed/browser, then download PDF bytes or display PNG previews. It uses the same pinned Fullbleed 2.5.8 engine and bundled fonts as the Node entry.
npm install --save-exact fullbleed@0.3.0
npx fullbleed-browser-assets public/fullbleedimport { createRenderer } from 'fullbleed/browser';
const renderer = createRenderer({ assetBaseUrl: '/fullbleed/' });
const result = await renderer.renderPdf({ html: '<h1>Hello, print.</h1>', maxPages: 20 });
const pdf = new Blob([result.pdf], { type: 'application/pdf' });The asset-copy command verifies the installed files. The worker checks its engine and font hashes before rendering, supports cancellation and deadlines, and returns structured errors. Deploy the complete runtime directory on the same origin over HTTPS or localhost. Document input stays in the browser in the tested fixtures; the worker fetches its static engine and font files.
The Node root entry and worker/process options remain compatible. This release adds no core-engine dependency or browser installation requirement. See the browser guide for downloads, TypeScript, custom assets, CSP, and scope.
All 13 jobs passed on the exact release source: nine packed-package combinations across Node 22/24/26 and Linux/Windows/macOS, the native build, and Chrome/Firefox/Playwright WebKit. Thirty checks per browser compare PDF and PNG bytes with the installed Node package, independently read every fixture PDF page, and exercise input snapshots, cancellation, corrupt or mismatched assets, and recovery. Attached evidence binds every matrix result to the shipped tarball.
Browser termination checks observe calls to the browser API, not native thread-exit events. Playwright WebKit is not branded Safari certification. This API exposes ordinary PDF rendering and previews; no standards certification, general performance result, or fix for the native Node issue #7 is claimed.