Coût
Tourne sur Cloudflare Workers — pas un conteneur Chromium de 800 Mo facturé 0,40 $/heure à ne rien faire. 0,00005 $ par page. Pas de minimum, pas de licence par siège, pas de surcoût par environnement.
100 000 pages pour 5 $. Des PDF générés à l’edge en quelques millisecondes
Conçue pour une échelle mondiale Entièrement conforme avec PDF/A, Factur-X et ZUGFeRD
Modifiez le DocumentRequest à gauche. Appelez le worker edge en direct
vrai schéma, vrai PDF, typiquement <5 ms.
Tourne sur Cloudflare Workers — pas un conteneur Chromium de 800 Mo facturé 0,40 $/heure à ne rien faire. 0,00005 $ par page. Pas de minimum, pas de licence par siège, pas de surcoût par environnement.
Profils d'archivage PDF/A (1b, 2b, 3b, 4) à la demande. Factur-X, ZUGFeRD et EN 16931 nativement supportés — Section 5 de la référence API, pas un lien sur la feuille de route.
pages[], elements[], x/y en millimètres. Pas de HTML→PDF, pas de Chrome headless, pas de DSL de templates à apprendre. Le même JSON alimente l'API et l'éditeur visuel — designers et développeurs éditent le même fichier.
Latin, CJK, arabe (RTL + ligatures complexes), devanagari, cyrillique, bengali et thaï embarqués dans le moteur — plus 3000+ emojis en couleur. Pas de `apt install fonts-noto-cjk`. Aucun glyphe manquant, jamais.
Vraie sémantique de document, pas des captures de navigateur dans un wrapper PDF.
x/y en millimètres, x_anchor pour l'alignement à droite, placement sub-millimétrique sur les étiquettes. Des coordonnées, pas des approximations.
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
} 30+ symbologies dont GS1-128, QR, PDF417, DataMatrix. Tous vectoriels. Longueur totale précise à 0,1 mm.
// 30+ formats: code128, qrcode, datamatrix, pdf417, ...
"type": "barcode",
"format": "code128",
"content": "INV-2026-001" Why vector beats raster font_mode : strict (la famille déclarée doit couvrir tous les glyphes), prefer (repli sur les familles embarquées), auto (le moteur choisit). L'épuisement auto/prefer retourne API-504 — échec explicite, pas silencieux.
// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer" settings.profile = "pdfa-3b" déclenche la conformité PDF/A-3b et le flux de pièces jointes XML embarqué que Factur-X / ZUGFeRD exigent. Un champ, un document conforme.
// top-level on DocumentRequest
"settings": {
"profile": "pdfa-3b"
} PDF/A and Factur-X, explained {page} / {total_pages} résolus après mise en page. keep_together, widow/orphan, blocs page_break.
// element of type "variable"
{ "type": "variable",
"name": "page",
"scope": "system" } row_span entre les pages, en-têtes répétés, alternate_fill, bordures doubles composées. Le 1 % qui casse toujours.
// inside table element
"pagination": {
"keep_spans_together": true
} Le même JSON DocumentRequest pilote POST /api/v1/pdf/render et l'éditeur visuel sur editor.gpdf.com. Éditez visuellement, livrez par API, ou écrivez à la main — les trois flux round-trippent le même fichier.
// three routes, one engine
POST /api/v1/pdf/render
POST /api/v1/template-render
POST /api/v1/e-invoice/render Read the API reference 0,00005 $ par page, p50 3 ms, CJK intégré, flux d'attachement PDF/A-3. Les quatre chiffres que les équipes fintech, ERP et conformité fiscale vérifient en premier.
// invoice — header + table pattern
{ "size": "a4",
"elements": [
{ "type": "text", "x": 18, "y": 22, ... },
{ "type": "table", "x": 18, "y": 60, ... }
]} Why JSON beats HTML→PDF Presets de tailles label_100_150 et label_4_6_in. GS1-128, ITF-14, SSCC vectoriels à 0,1 mm de précision — transporteurs et 3PL impriment en pointe sans codes-barres rasterisés.
// 4×6 thermal shipping label
{ "size": "label_4_6_in",
"elements": [{
"type": "barcode",
"format": "code128",
"content": "1Z999AA10123456784" }]} Shipping-label use case Facture A4 d’une page, 12 lignes, QR + logo. Médiane de 1000 générations de PDF. Plus bas est meilleur.
Methodology: 1-page A4 invoice · 12 line items · 1 QR + 1 logo · 1K invocations · median (p50) and p99 reported. Sampled 2026-04-29 from a workstation in EU-WEST. PDFShift, DocRaptor, Puppeteer and LaTeX numbers are reproduced from each vendor's published quickstart sample with the same input — re-run on your own workload before deciding. Read the head-to-head comparisons →
Pas de per-seat. Pas de per-environment. Pas de gatekeeping par palier de support.
Tous les paliers payants incluent les mêmes
Pour les équipes réglementées, les déploiements cloud privé/VPC et les intranets isolés. gPdf peut fonctionner comme déploiement dédié Worker, serveur ou adossé à une passerelle ; contrôles réseau, exigences de région, clauses DPA et escalade support sont cadrés par engagement.
Douze réponses — citées textuellement par le JSON-LD FAQPage que les Google rich results consomment.
Le p50 est de 3 ms et le p99 de 8 ms — mesurés sur 1000 appels pour une seule page A4. Le temps total en périphérie, réseau inclus, est typiquement de 8 à 15 ms.
Un corps DocumentRequest en JSON. Pages, éléments, calques, filigranes, en-têtes, pieds de page et tableaux sont tous exprimés de manière structurelle — pas de HTML, pas de Markdown, pas de passe de mise en page navigateur.
Chromium headless tourne à 200 à 800 ms par rendu et nécessite un conteneur de 800 Mo. gPdf rend la même page A4 en 3 ms dans un isolate V8 de 1 Mo, sans démarrage à froid. Le compromis est le format d'entrée : gPdf prend un DocumentRequest JSON, pas du HTML brut.
Trois : /api/v1/pdf/render prend un DocumentRequest complet pour un contrôle au pixel près. /api/v1/template-render prend template_id plus un tableau de données pour les systèmes avec un template publié. /api/v1/e-invoice/render produit des factures hybrides Factur-X / ZUGFeRD (PDF/A-3 + XML intégré). Les trois partagent le même moteur, les mêmes limites de débit et la même surface de codes d'erreur.
Non. NotoSans CJK est intégré, et une chaîne de repli automatique gère les glyphes manquants. Vous ne verrez jamais de carrés tofu, et vous n'avez pas besoin d'apt install fonts-noto-cjk sur votre runtime.
Plus de 30 symbologies dont QR, GS1-128, PDF417, DataMatrix, Aztec, MaxiCode et Code 128. Tous vectoriels. La longueur totale du code-barres est précise à 0,1 mm près de la taille demandée — assez serré pour les largeurs d'étiquettes spécifiées GS1 et ITF-14.
Oui. PDF/A-1b, 2b, 3b et 4 sont sélectionnables par requête. Les flux d'attachement Factur-X et ZUGFeRD sont pris en charge pour les scénarios de facturation électronique.
Oui. Réglez settings.profile sur pdfa-3b et attachez la charge XML structurée comme flux de fichier. Factur-X et ZUGFeRD reposent sur PDF/A-3 — requis pour le mandat français de facturation électronique B2B à partir de septembre 2026, et le mandat allemand déjà en vigueur.
Dans des isolates V8 Cloudflare Workers. Pas de conteneur Chromium, pas de réchauffement Lambda, et pas de persistance de document après la requête.
Non. Le moteur de rendu est sans état. Votre DocumentRequest vit dans un isolate V8 pendant les quelques millisecondes du rendu, puis disparaît. gPdf n'a ni couche de cache ni stockage de documents — l'absence d'état est le contrat, pas une option.
Oui. La version d'essai gratuite offre 100 pages par jour, sans carte bancaire. Elle se réinitialise quotidiennement et s'arrête au quota — aucune facture surprise. Les paliers payants commencent à 5 $ par mois pour 100 000 pages.
Ouvrez le playground ci-dessus, modifiez le DocumentRequest, puis cliquez sur Générer le PDF — le worker edge en direct renvoie un vrai PDF. Copiez l'extrait curl dans votre terminal pour l'appeler depuis n'importe où. Le playground ne nécessite ni installation ni carte bancaire ; un compte n'est requis que pour émettre votre propre clé API.
Un cadre neutre pour choisir une API de génération PDF. Huit questions qui indiquent si vous serez encore satisfait dans 12 mois.
DocRaptor utilise Prince pour convertir du HTML en PDF sur un backend hébergé. gPdf rend du JSON structuré directement à la périphérie Cloudflare. L'écart de prix est de 18×. Voici pourquoi ce n'est pas un appât.
Ce que les profils PDF/A contraignent réellement, pourquoi Factur-X devient obligatoire en France à partir de septembre 2026, et le plus petit pipeline pratique pour devenir conforme depuis un moteur de rendu JSON.
Ingénierie auditable plus la paperasse — les deux registres, les deux vérifiables.
Options de résidence EU, US, APAC et SA. Les exigences de région sont cadrées par contrat.
Pas de persistance de document. Aucune couche de cache ni stockage de documents dans le produit.
Concurrents nommés, méthodologie complète, date d'échantillon. Chaque benchmark de cette page est reproductible — refaites-le sur votre charge avant décision.
Même entrée → PDF byte-identique. Diffable. Testable en CI sans dérive de snapshot.