Skip to content

Fullbleed 0.8.0: Cloudflare Workers and an invoice starter

Latest

Choose a tag to compare

@krflol krflol released this 21 Oct 00:16
· 3 commits to main since this release

Generate PDFs inside a Cloudflare Worker with fullbleed/cloudflare. Version 0.8.0 bundles the same Fullbleed 2.5.29 engine and fonts, with typed HTML/CSS, component, asset and PNG-preview options. Existing Node and browser entry points remain available.

npm install --save-exact fullbleed@0.8.0

The Workers guide covers Wrangler configuration and the execution model. The invoice starter turns bounded JSON into a styled PDF attachment with an editable Northstar template, integer-cent totals, long-invoice tests, private download headers and public preview URLs disabled.

The Workers entry computes synchronously inside an isolate and returns a settled Promise. It rejects timeoutMs, signal and isolation; Cloudflare owns CPU and memory enforcement. Source and asset limits are validation bounds, not CPU or memory guarantees. Complete component HTML with embedded styles and separate HTML/CSS produce identical PDF and preview bytes in the retained fixtures.

Qualification is local workerd on Windows and Linux using the exact release tarball. Hosted CPU, memory, startup behavior and free-plan suitability have not been qualified. No hosted service is deployed by these examples.

Validation includes 101 Node tests, 42 Python checks, TypeScript surfaces, nine installed Node/platform configurations and Chrome/Firefox/WebKit downloads. Workers checks cover Northstar, Common Ground, custom fonts/SVG, components, embedded styles, input limits and error recovery. The invoice endpoint adds normal, zero-total, maximum-total, five-page and escaped-text cases. PDF contents and preview images are independently checked; 15 distinct preview pages were visually reviewed. Existing engine and component regression expectations are retained.

Successful source CI · Verification record · Retained evidence · Worker invoice PDF

This entry exposes ordinary PDF generation. It does not expose the Python package's PDF/A, PDF/UA, PDF/X or VDP profiles, and makes no new standards-conformance claim.