Custo
Roda no Cloudflare Workers — não um container Chromium de 800 MB faturando $0,40/hora sem fazer nada. $0,00005 por página. Sem mínimos, sem custo por assento, sem sobretaxas por ambiente.
100 mil páginas por US$ 5. PDFs gerados na borda em poucos milissegundos
Construída para escala global Totalmente em conformidade com PDF/A, Factur-X e ZUGFeRD
Edite o DocumentRequest à esquerda. Chame o worker de borda em tempo real
schema real, PDF real, normalmente <5 ms.
Roda no Cloudflare Workers — não um container Chromium de 800 MB faturando $0,40/hora sem fazer nada. $0,00005 por página. Sem mínimos, sem custo por assento, sem sobretaxas por ambiente.
Perfis de arquivamento PDF/A (1b, 2b, 3b, 4) sob demanda. Factur-X, ZUGFeRD e EN 16931 suportados nativamente — Seção 5 da referência API, não um link no roadmap.
pages[], elements[], x/y em milímetros. Sem HTML→PDF, sem Chrome headless, sem DSL de templates para aprender. O mesmo JSON alimenta a API e o editor visual — designers e desenvolvedores editam um único arquivo.
Latim, CJK, árabe (RTL + ligaduras complexas), devanágari, cirílico, bengali e tailandês integrados ao motor — mais 3000+ emojis coloridos. Sem `apt install fonts-noto-cjk`. Nunca um glifo faltando.
Semântica de documento real, não capturas de navegador num wrapper PDF.
x/y em milímetros, x_anchor para alinhamento à direita, posicionamento submilimétrico em etiquetas. Coordenadas, não aproximações.
// inside elements[i]
"x_anchor": {
"reference": "content_right",
"offset": 6
} 30+ simbologias incl. GS1-128, QR, PDF417, DataMatrix. Todos vetoriais. Comprimento total preciso a 0,1 mm.
// 30+ formats: code128, qrcode, datamatrix, pdf417, ...
"type": "barcode",
"format": "code128",
"content": "INV-2026-001" Why vector beats raster font_mode: strict (a família declarada deve cobrir todos os glifos), prefer (recorre às famílias integradas), auto (motor escolhe). Esgotamento de auto/prefer retorna API-504 — falha explícita, não silenciosa.
// inside style{}
"font_family": "NotoSans-Regular",
"font_mode": "prefer" settings.profile = "pdfa-3b" ativa a conformidade PDF/A-3b mais o fluxo de anexos XML incorporado que Factur-X / ZUGFeRD requerem. Um campo, um documento conforme.
// top-level on DocumentRequest
"settings": {
"profile": "pdfa-3b"
} PDF/A and Factur-X, explained {page} / {total_pages} resolvidos pós-layout. keep_together, widow/orphan, blocos page_break.
// element of type "variable"
{ "type": "variable",
"name": "page",
"scope": "system" } row_span entre páginas, cabeçalhos repetidos, alternate_fill, bordas duplas compostas. O 1 % que sempre quebra.
// inside table element
"pagination": {
"keep_spans_together": true
} O mesmo JSON DocumentRequest impulsiona POST /api/v1/pdf/render e o editor visual em editor.gpdf.com. Edite visualmente, entregue via API ou escreva à mão — os três fluxos round-trippam o mesmo arquivo.
// 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 por página, p50 3 ms, CJK embutido, fluxo de anexo PDF/A-3. Os quatro números que equipes fintech, ERP e compliance fiscal verificam primeiro.
// 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 tamanho label_100_150 e label_4_6_in. GS1-128, ITF-14, SSCC vetoriais com precisão de 0,1 mm — transportadoras e 3PLs imprimem no pico sem códigos de barras rasterizados.
// 4×6 thermal shipping label
{ "size": "label_4_6_in",
"elements": [{
"type": "barcode",
"format": "code128",
"content": "1Z999AA10123456784" }]} Shipping-label use case Fatura A4 de 1 página, 12 itens, QR + logo. Mediana de 1000 gerações de PDF. Quanto menor, melhor.
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 →
Sem per-seat. Sem per-environment. Sem gatekeeping por nível de suporte.
Todos os planos pagos incluem as mesmas
Para equipes reguladas, implantações em cloud privada/VPC e ambientes de intranet isolados. Rode o gPdf como um deploy dedicado em Worker, servidor ou atrás de um gateway; controles de rede, requisitos de região, termos de DPA e escalonamento de suporte são definidos por projeto.
Doze respostas — citadas literalmente pelo JSON-LD FAQPage que os Google rich results consomem.
O p50 é de 3 ms e o p99 de 8 ms numa única página A4 medido sobre 1000 invocações. O tempo total no edge, incluindo rede, é tipicamente de 8 a 15 ms.
Um corpo DocumentRequest em JSON. Páginas, elementos, camadas, marcas d'água, cabeçalhos, rodapés e tabelas são todos expressos estruturalmente — sem HTML, sem Markdown, sem passe de layout do navegador.
Chromium headless roda em 200-800 ms por renderização e precisa de um container de 800 MB. O gPdf renderiza a mesma página A4 em 3 ms dentro de um isolate V8 de 1 MB, sem cold start. O trade-off é o formato de entrada: gPdf aceita um DocumentRequest JSON, não HTML cru.
Três: /api/v1/pdf/render aceita um DocumentRequest completo para controle ao nível do pixel. /api/v1/template-render aceita template_id mais um array de dados para sistemas com template publicado. /api/v1/e-invoice/render produz faturas híbridas Factur-X / ZUGFeRD (PDF/A-3 + XML embutido). Os três compartilham o mesmo motor, os mesmos limites de taxa e a mesma superfície de códigos de erro.
Não. NotoSans CJK está embutido e uma cadeia de fallback automático trata glifos faltantes. Você nunca verá caixas tofu e não precisa de apt install fonts-noto-cjk no seu runtime.
Mais de 30 simbologias incluindo QR, GS1-128, PDF417, DataMatrix, Aztec, MaxiCode e Code 128. Todos vetoriais. O comprimento total do código de barras está dentro de 0,1 mm do tamanho solicitado — preciso o suficiente para larguras de etiqueta especificadas por GS1 e ITF-14.
Sim. PDF/A-1b, 2b, 3b e 4 são selecionáveis por requisição. Fluxos de anexo Factur-X e ZUGFeRD são suportados para cenários de fatura eletrônica.
Sim. Defina settings.profile como pdfa-3b e anexe o payload XML estruturado como fluxo de arquivo. Factur-X e ZUGFeRD baseiam-se em PDF/A-3 — exigido pelo mandato alemão de e-fatura já em vigor, e pelo mandato francês B2B desde setembro de 2026.
Dentro de isolates V8 do Cloudflare Workers. Sem container Chromium, sem warming de Lambda, e sem persistência de documento após a requisição.
Não. O renderizador é stateless. Seu DocumentRequest vive num isolate V8 pelos poucos milissegundos da renderização, depois desaparece. O gPdf não tem camada de cache nem armazenamento de documentos — a ausência de estado é o contrato, não uma opção.
Sim. O Free Trial dá 100 páginas por dia, sem cartão de crédito. Reseta diariamente e para na cota — sem fatura surpresa. Os planos pagos começam em $5 por mês para 100.000 páginas.
Abra o playground acima, edite o DocumentRequest e clique em Gerar PDF — o worker em vivo do edge devolve um PDF real. Copie o snippet curl no seu terminal para chamá-lo de qualquer lugar. O playground não exige instalação nem cartão de crédito; uma conta só é necessária para emitir sua própria API key.
Um framework neutro para escolher uma API de geração de PDF. As oito perguntas que indicam se você continuará satisfeito em 12 meses.
DocRaptor usa Prince para converter HTML em PDF em backend hospedado. gPdf renderiza JSON estruturado diretamente no edge da Cloudflare. A diferença de preço é 18×. Aqui está por que isso não é uma isca.
O que perfis PDF/A realmente restringem, por que Factur-X torna-se obrigatório na UE em 2026, e o pipeline mais prático para emitir compliant a partir de um renderer JSON.
Engenharia auditável mais a papelada — ambos os registros, ambos verificáveis.
Opções de residência na UE, US, APAC e SA. Requisitos de região são definidos em contrato.
Sem persistência de documentos. Não há camada de cache nem armazenamento de documentos no produto.
Concorrentes nomeados, metodologia completa, data de amostragem. Cada benchmark desta página é reproduzível — re-execute na sua própria carga antes de decidir.
Mesma entrada → PDF byte-idêntico. Diffável. Testável em CI sem deriva de snapshot.