Pular para o conteúdo

Instalação do NextPDF compat-legacy

nextpdf/compat-legacy é uma biblioteca Composer. Ela requer PHP 8.4 ou mais recente e nextpdf/core ^3.0. Instale-a para adicionar uma classe de compatibilidade para a qual você possa migrar; as chamadas TCPDF existentes continuam inalteradas.

DependênciaVersãoFonte da verdade
PHP>=8.4 <9.0pacote composer.jsonrequire.php
nextpdf/core^3.0pacote composer.jsonrequire
Composer2.7 ou mais recentelinha de base da cadeia de ferramentas

O pacote inclui a própria suíte de testes e declara PHPStan Level 10 sem baseline. Ele requer PHP 8.4 em tempo de execução. O engine NextPDF como um todo dá suporte a PHP 8.1 até 8.4 na linha de backport, mas este adaptador define PHP 8.4 como versão mínima.

Use o Composer para adicionar o pacote:

Terminal window
composer require nextpdf/compat-legacy:^3.0

O Composer resolve nextpdf/core ^3.0 como dependência transitiva. Os recursos principais não exigem nenhuma outra extensão de runtime.

Os metadados do pacote também aceitam o nome histórico nextpdf/compat-tcpdf por meio de uma entrada replace do Composer. Novas instalações devem requerer nextpdf/compat-legacy, que é o nome canônico do pacote.

Após a instalação, confirme que a classe do adaptador é carregada e que a ligação com o engine é resolvida. A verificação a seguir cria um Portable Document Format (PDF) de uma página inteiramente em memória e valida o cabeçalho do PDF. Ela exercita a mesma superfície validada pelo teste do pacote tests/Unit/Compat/Tcpdf/TcpdfOutputTest.php.

examples/install-verify.php
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php';
use NextPDF\Compat\Tcpdf\TCPDF;
$pdf = new TCPDF('P', 'mm', 'A4');
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Cell(0, 10, 'compat-legacy install verified');
$bytes = $pdf->Output('verify.pdf', 'S');
if (! str_starts_with($bytes, '%PDF')) {
fwrite(STDERR, "Install check failed: output is not a PDF.\n");
exit(1);
}
echo "OK: adapter loaded, engine linked, PDF produced (" . strlen($bytes) . " bytes).\n";

Execute o script:

Terminal window
php examples/install-verify.php

A saída esperada é uma única linha OK:. O prefixo %PDF na string retornada confirma que o adaptador construiu um NextPDF\Core\Document, delegou as chamadas de página e texto e serializou uma saída PDF 2.0 válida.

O adaptador requer nextpdf/core ^3.0. Confirme a versão que o Composer resolveu:

Terminal window
composer show nextpdf/core --format=json

Se o Composer resolver uma versão do core fora de ^3.0, o adaptador falhará rapidamente durante a construção, em vez de produzir saída incorreta. Fixe o engine explicitamente no composer.json se o projeto também depender dele diretamente.

Se a base de código usa new \TCPDF(...) no namespace global e você ainda não consegue alterar essas instruções use/require, o pacote pode registrar aliases globais. Esse comportamento é opcional e está descrito em /integrations/tcpdf-compat/boot-and-discovery/. Não o ative se a biblioteca TCPDF real também estiver instalada no mesmo processo; consulte /integrations/tcpdf-compat/troubleshooting/ para conhecer a regra de prevenção de conflitos.

  • Ela não modifica nem remove uma dependência TCPDF existente. Remova tecnickcom/tcpdf apenas como uma etapa posterior e deliberada em /integrations/tcpdf-compat/migration/.
  • Ela não habilita assinaturas digitais nem PDF/A. Esses recursos exigem uma edição comercial do NextPDF (consulte /integrations/tcpdf-compat/security-and-operations/).
  • Ela não altera o destino de saída do PDF. A saída é sempre PDF 2.0.
  • /integrations/tcpdf-compat/quickstart/ — crie seu primeiro documento real.
  • /integrations/tcpdf-compat/configuration/ — configure o modo estrito e o adaptador.
  • /integrations/tcpdf-compat/migration/ — use a estratégia de migração arquivo por arquivo.
  • /integrations/tcpdf-compat/method-coverage/ — veja exatamente o que cada método TCPDF faz aqui.
  • Pacote composer.json — as restrições oficiais de dependência
  • docs/TCPDF_COVERAGE.md — a matriz de cobertura oficial (no repositório)