How fast does gPdf render a PDF?
p50 is 3 ms and p99 is 8 ms on a single A4 page measured over 1K invocations. Total edge wall time, including network, is typically 8 to 15 ms.
Twelve answers — quoted verbatim by the JSON-LD FAQPage that Google rich results consume.
p50 is 3 ms and p99 is 8 ms on a single A4 page measured over 1K invocations. Total edge wall time, including network, is typically 8 to 15 ms.
A JSON DocumentRequest body. Pages, elements, layers, watermarks, headers, footers and tables are all expressed structurally — no HTML, no Markdown, no browser layout pass.
Headless Chromium runs at 200 to 800 ms per render and needs an 800 MB container. gPdf renders the same A4 page in 3 ms inside a 1 MB V8 isolate, with no cold start. The trade-off is input format: gPdf takes a JSON DocumentRequest, not raw HTML.
Three: /api/v1/pdf/render takes a full DocumentRequest for pixel-level control. /api/v1/template-render takes template_id plus a data array for systems with a published template. /api/v1/e-invoice/render produces Factur-X / ZUGFeRD hybrid invoices (PDF/A-3 + embedded XML). All three share the same engine, rate limits, and error code surface.
No. NotoSans CJK is embedded and an automatic font fallback chain handles missing glyphs. You will never see tofu boxes, and you do not need apt install fonts-noto-cjk on your runtime.
Over 30 symbologies including QR, GS1-128, PDF417, DataMatrix, Aztec, MaxiCode and Code 128. All vector. Overall barcode length lands within 0.1 mm of the requested size — tight enough for GS1- and ITF-14-spec'd label widths.
Yes. PDF/A-1b, 2b, 3b and 4 are selectable per request. Factur-X and ZUGFeRD attachment streams are supported for e-invoice scenarios.
Yes. Set settings.profile to pdfa-3b and attach the structured XML payload as a file stream. Factur-X and ZUGFeRD ride on PDF/A-3 — required for the German e-invoicing mandate already in force, and the French B2B mandate from September 2026.
Inside Cloudflare Workers V8 isolates. There is no Chromium container, no Lambda warming, and no document persistence after the request.
No. The renderer is stateless. Your DocumentRequest lives in a V8 isolate for the few milliseconds of the render, then it is gone. gPdf has no caching layer and no document store — statelessness is the contract, not an opt-in toggle.
Yes. The Free Trial gives 100 pages per day, no credit card. It auto-resets daily and stops at the quota — no surprise bill. Paid tiers start at $5 per month for 100,000 pages.
Open the playground above, edit the DocumentRequest, then click Generate PDF — the live edge worker returns a real PDF. Copy the curl snippet into your terminal to call it from anywhere. The playground requires no install and no credit card; an account is needed only to issue your own API key.