Por que as equipes escolhem o NextPDF
Spec: ISO 32000-2ISO 32000-2Spec: ETSI EN 319 142-1ETSI EN 319 142-1
Visão geral
Seção intitulada “Visão geral”Escolher um motor de PDF é uma decisão pequena que silenciosamente define muitas decisões posteriores. Esta página é a defesa do NextPDF, enquadrada como a decisão que uma equipe realmente toma: permanecer em PHP ou rodar um sidecar, ser dona do código ou alugar uma caixa-preta, produzir assinaturas reais ou uma marca de seleção, entregar um protótipo que sobrevive à produção ou um que precisa ser reescrito para chegar até lá.
Por que isso importa
Seção intitulada “Por que isso importa”O PDF que você gera raramente é o fim da história. Ele é assinado, arquivado, enviado por e-mail a um regulador ou aberto anos depois por alguém que não estava na sala quando você escreveu o código. Isso torna um motor de PDF uma escolha de infraestrutura, não uma chamada utilitária. O motor errado aparece mais tarde como uma assinatura que um validador rejeita, um arquivo que um verificador reprova ou uma fatura de fornecedor da qual você não consegue sair porque seus documentos só são renderizados pelo serviço dele.
Uma equipe normalmente não tem a chance de relitigar essa decisão. O motor que ela escolhe na primeira semana é o motor no caminho crítico no terceiro ano. Então a pergunta que vale a pena responder com honestidade não é “ele consegue fazer um PDF” — quase tudo consegue —, mas “isto vai se sustentar quando o documento se tornar um artefato jurídico ou de arquivamento”.
A versão resumida
Seção intitulada “A versão resumida”As equipes escolhem o NextPDF porque ele elimina quatro riscos distintos de uma só vez:
- Ele é nativo em PHP. Um motor de PDF 2.0 que roda dentro do seu processo, não um runtime separado que você opera, escala e protege ao lado da sua aplicação.
- Ele é aberto por padrão. O núcleo é Apache-2.0 — legível, bifurcável, vendorável. As edições avançadas acrescentam capacidade; elas nunca mantêm seus documentos como reféns.
- Sua assinatura é de nível padronizado. Perfis baseline PAdES (Spec: ETSI EN 319 142-1, §6ETSI EN 319 142-1 §6), não um esquema de assinatura caseiro que um validador europeu nunca viu.
- Ele escala com o mesmo código. O protótipo que você escreveu no primeiro dia é o caminho de código de produção. Não existe uma etapa de “agora porte para o motor de verdade”.
Como o NextPDF aborda isso
Seção intitulada “Como o NextPDF aborda isso”Cada uma dessas quatro afirmações mapeia para uma propriedade concreta, e cada uma é algo que um revisor pode verificar em vez de aceitar por fé.
Nativo em PHP significa nenhum segundo runtime. O NextPDF tem como alvo o PDF 2.0 conforme definido na versão de referência do formato (Spec: ISO 32000-2, §6ISO 32000-2 §6), e o faz a partir de dentro do seu processo PHP. Não há navegador headless para manter vivo, nenhum microsserviço para implantar, nenhuma fronteira de linguagem a atravessar. Para uma equipe cuja pilha já é PHP, a superfície operacional permanece exatamente tão ampla quanto era. Quando um renderizador de nível de navegador genuinamente é a ferramenta certa, o NextPDF pode conduzir um — mas é uma escolha que você faz, não uma dependência que você herda. Esse compromisso é o tema do guia de decisão de integração.
Aberto por padrão significa nenhum lock-in. O motor de núcleo é Apache-2.0. Você pode ler cada linha que toca seus bytes, vendorizá-lo em um espelho privado, bifurcá-lo se uma versão um dia tomar um rumo que você não pode seguir, e continuar entregando. Um documento produzido pelo núcleo é um PDF padrão que qualquer leitor em conformidade abre — não é um contêiner proprietário que só faz round-trip pelo serviço de um fornecedor. As edições comerciais são aditivas: elas desbloqueiam capacidades como assinatura respaldada por hardware e recursos de alto volume, mas os documentos que produzem permanecem PDFs comuns, em conformidade com os padrões e totalmente seus.
Assinatura de nível padronizado significa uma assinatura que sobrevive à revisão. É aqui que uma biblioteca de PDF “boa o suficiente” silenciosamente se torna um passivo. Uma assinatura que um validador não reconhece é, para o propósito que importava, não uma assinatura. O NextPDF tem como alvo a progressão baseline PAdES — B-B, B-T, B-LT, B-LTA — definida pela ETSI, os níveis que um validador europeu e um auditor esperam ver. A fronteira é escalonada: o núcleo Apache-2.0 entrega um signatário CMS/PAdES por software para os níveis B-B e B-T usando uma chave local ou fornecida, enquanto os níveis de validação de longo prazo (B-LT, B-LTA) e as chaves respaldadas por HSM ou cloud-KMS são capacidades de edição avançada. PAdES é o perfil de assinatura da ETSI para PDF; o eIDAS — o regulamento da UE (Spec: Regulation (EU) No 910/2014 (eIDAS), Art. 25Regulation (EU) No 910/2014 (eIDAS) Art. 25) — é o que dá a uma assinatura eletrônica sua validade jurídica, e PAdES é a realização em PDF a que uma obrigação eIDAS se resolve, que é exatamente por que o motor tem como alvo a família de perfis em vez de uma aproximação. A página perfis baseline do PAdES percorre a progressão e como escolher o nível que sua obrigação realmente exige.
- Stay in your stackA PHP-native PDF 2.0 engine runs in-process — no second runtime to deploy, scale, or secure.
- Own what you shipApache-2.0 core: readable, forkable, vendorable. The documents are standard PDFs you keep, not a proprietary container.
- Sign for realPAdES baseline profiles (ETSI EN 319 142-1), the levels a validator and an auditor recognise — not a homegrown scheme.
- Grow without a rewriteThe prototype is the production path. Fail-fast typed inputs catch mistakes in development, where they are cheap.
Do protótipo à produção significa nenhuma reescrita. O quarto risco é o mais silencioso: uma ferramenta que demonstra lindamente e depois precisa ser substituída para entrar no ar. O NextPDF é construído de modo que o primeiro programa que você escreve seja o mesmo programa que você opera. As entradas são estritamente tipadas e validadas na borda, então os modos de falha que você verá em produção são os mesmos que você já viu em desenvolvimento — nomeados, no ponto de chamada, antes que um byte seja escrito. Essa postura é o tema de a filosofia de design e de uma API que se recusa a adivinhar; aqui ela importa porque é o que permite que o mesmo caminho de código leve uma equipe de um experimento de fim de semana a uma carga de trabalho regulada.
Exemplo prático
Seção intitulada “Exemplo prático”O formato de “do protótipo à produção com o mesmo código” é mais fácil de ver no ponto de chamada. O programa que uma equipe escreve para avaliar o motor é, linha por linha, o programa que roda em produção — apenas o material de assinatura muda.
<?php
declare(strict_types=1);
use NextPDF\Contracts\Orientation;use NextPDF\Contracts\OutputDestination;use NextPDF\Core\Document;use NextPDF\Signature\SignatureLevel;use NextPDF\ValueObjects\PageSize;
$document = Document::createStandalone();$document->setTitle('Service Agreement');
// Typed page geometry and an enum orientation — intent is explicit,// so a typo is a type error in development, not a silent default in production.$document->addPage(PageSize::a4(), Orientation::Portrait);$document->setFont('helvetica', 'B', 16);$document->cell(0, 12, 'Service Agreement', newLine: true);
// The signature level is a recognised PAdES baseline profile, named as an// enum case — never a string the engine has to interpret. B-T is a core// software-signing level; the long-term levels (B-LT, B-LTA) are an// advanced-edition capability selected the same way.$document->setSignature(certInfo: $certInfo, level: SignatureLevel::PAdES_B_T);
// The output destination is stated, not inferred from whether a filename// was passed. The same call shape serves a spike and a production endpoint.$bytes = $document->output(dest: OutputDestination::String);Nada neste programa muda entre o protótipo e a implantação. A equipe troca o material de assinatura real pelo placeholder e aponta a saída para uma resposta em vez de um buffer. O motor, a API e os modos de falha são idênticos nos dois lugares — que é o ponto inteiro.
Equívoco comum
Seção intitulada “Equívoco comum”A objeção frequente é “núcleo de código aberto significa que o produto de verdade está atrás de um paywall, então a parte gratuita é uma isca”. Isso inverte a relação. O núcleo é um motor de PDF 2.0 de produção sob Apache-2.0 — geração de documentos, saída em conformidade com os padrões e assinatura CMS/PAdES por software nos níveis B-B e B-T; as equipes o rodam em produção sem modificações. As edições avançadas acrescentam capacidade especializada — assinatura com validação de longo prazo (B-LT, B-LTA), chaves respaldadas por HSM e cloud-KMS, recursos de escala — para as equipes que delas precisam. O teste é simples e verificável: um documento que o núcleo produz é um PDF padrão que abre em qualquer leitor em conformidade, sem dependência de um serviço NextPDF para lê-lo de volta. Não há refém a resgatar.
Um segundo equívoco é que “nativo em PHP” significa “menos capaz que um motor de navegador”. Significa diferente, e os casos honestos em que um renderizador de nível de navegador é o melhor ajuste estão catalogados em quando não usar o NextPDF — não escondidos.
Limites e fronteiras
Seção intitulada “Limites e fronteiras”Esta página é uma defesa da adoção, não uma alegação de adequação universal. O NextPDF é a ferramenta certa para a geração programática de documentos de nível padronizado em uma pilha PHP. Ele não é uma reimplementação pixel a pixel de um navegador web, e não é a resposta para todos os problemas de documento; a fronteira está declarada com clareza em quando não usar o NextPDF.
| Edition | Availability |
|---|---|
| Core | Not in this edition — software signing only (B-B, B-T). |
| Pro | Available — HSM and qualified-device signing. |
| Enterprise | Available — HSM and qualified-device signing. |
Duas fronteiras merecem ênfase. Primeira, a capacidade de assinatura é escalonada: o núcleo Apache-2.0 fornece assinatura CMS/PAdES por software nos níveis B-B e B-T com uma chave local ou fornecida, enquanto os níveis de validação de longo prazo (B-LT, B-LTA) e as chaves respaldadas por hardware através de um HSM, dispositivo qualificado ou cloud KMS são capacidades de edição avançada. Segunda — e este é o limite honesto de toda alegação de conformidade — a conformidade é decidida por um verificador independente, nunca pelo produtor. PAdES é o perfil de assinatura da ETSI para PDF; PDF/A-4 (Spec: ISO 19005-4, §6ISO 19005-4 §6), definido pela ISO 19005-4, é um nível de conformidade de arquivamento separado. O NextPDF pode ter cada um como alvo, mas ter um perfil como alvo não é uma garantia de conformidade: o veredicto autoritativo vem de um validador de PDF/A ou de um validador de assinatura, não do motor que escreveu o arquivo. Trate o motor como a ferramenta que leva você ao “deveria passar”, e o verificador como a ferramenta que diz “passa”.
Documentos relacionados
Seção intitulada “Documentos relacionados”- O guia de decisão de integração — uma vez que você escolheu o NextPDF, qual pacote e renderizador se ajustam ao seu caso de uso.
- Quando não usar o NextPDF — a fronteira honesta desta defesa; os problemas de documento que se ajustam a outra ferramenta.
- Perfis baseline do PAdES — como a progressão B-B → B-LTA funciona e qual nível sua obrigação exige.
- A empresa por trás do NextPDF — quem mantém o motor do qual uma equipe está escolhendo depender.
Glossário
Seção intitulada “Glossário”- PDF 2.0 — a versão atual do formato PDF, especificada na ISO 32000-2. O NextPDF a tem como alvo enquanto versão de referência, então sua saída é medida contra o padrão ISO atual em vez de um dialeto de fornecedor.
- PAdES — PDF Advanced Electronic Signatures, a família de perfis da ETSI (EN 319 142-1) para assinar PDFs. Seus níveis baseline — B-B, B-T, B-LT, B-LTA — são o que um validador europeu e um auditor esperam ver.
- eIDAS — Regulation (EU) No 910/2014, o arcabouço da UE que dá às assinaturas eletrônicas e qualificadas sua validade jurídica; PAdES é a realização em PDF a que uma obrigação eIDAS se resolve.
- PDF/A — a família de conformidade de arquivamento (aqui, PDF/A-4 sob ISO 19005-4) para documentos que devem permanecer autocontidos e legíveis por longo prazo.
- Apache-2.0 — a licença de código aberto permissiva do núcleo do NextPDF: você pode usar, modificar, vendorizar e redistribuir o motor, sem obrigação de abrir sua própria aplicação.
- No lock-in — a propriedade de que os documentos que um motor produz são artefatos padrão, neutros em relação ao fornecedor e totalmente seus, legíveis sem qualquer dependência do serviço do produtor.