Skip to content

Instalación

Requisitos del sistema

RequisitoVersiónPropósito
PHP^8.5Readonly classes, backed enums, pipe operator, #[\SensitiveParameter]
ext-openssl*Cifrado AES-256, firmas PKCS#7, solicitudes OCSP/TSA
ext-zlib*Compresión Flate para streams PDF
ext-mbstring*Manejo de cadenas Unicode
ext-gd*Procesamiento de imágenes (JPEG, PNG, WebP, AVIF)
ext-curl*Solicitudes HTTP a respondedores OCSP y servidores TSA
ext-intl*Salto de línea ICU y formateo sensible al locale

Verificar todas las extensiones:

bash
php -r "foreach(['openssl','zlib','mbstring','gd','curl','intl'] as \$e){echo \$e.': '.(extension_loaded(\$e)?'OK':'MISSING').PHP_EOL;}"

Instalación rápida

bash
composer require yeeefang/tcpdf-next
bash
composer require yeeefang/tcpdf-next yeeefang/tcpdf-next-laravel
bash
composer require yeeefang/tcpdf-next yeeefang/tcpdf-next-symfony
bash
composer require yeeefang/tcpdf-next yeeefang/tcpdf-next-artisan
bash
composer require yeeefang/tcpdf-next yeeefang/tcpdf-next-pro yeeefang/tcpdf-next-artisan yeeefang/tcpdf-next-laravel

Paquete Core

bash
composer require yeeefang/tcpdf-next

Dependencias: phpseclib/phpseclib ^3.0 (RSASSA-PSS, ASN.1, X.509)

Extensiones funcionales

Paquete Artisan (Chrome CDP)

bash
composer require yeeefang/tcpdf-next-artisan

Requisitos adicionales:

  • chrome-php/chrome ^1.15
  • Navegador Chrome o Chromium instalado en el sistema
bash
# Ubuntu/Debian
apt-get install chromium-browser

# macOS
brew install --cask chromium

# O usar variable de entorno
export CHROME_PATH=/usr/bin/google-chrome

Paquete Pro (Comercial)

bash
composer require yeeefang/tcpdf-next-pro

Licencia: $1,000 USD por aplicación, perpetua por versión mayor.

Dependencias adicionales: phpseclib/phpseclib ^3.0 | Opcional: ext-pkcs11

Configura tu clave de licencia:

bash
# .env
TCPDF_PRO_LICENSE_KEY=your-license-key

Integraciones con frameworks

Paquete Laravel

bash
composer require yeeefang/tcpdf-next-laravel

Requisitos: Laravel ^12.0

El ServiceProvider se auto-descubre. Publica la configuración:

bash
php artisan vendor:publish --tag=tcpdf-next-config

Paquete Symfony

bash
composer require yeeefang/tcpdf-next-symfony

Requisitos: Symfony ^7.0

El Bundle se auto-configura. Regístralo manualmente si es necesario:

php
// config/bundles.php
return [
    // ...
    Yeeefang\TcpdfNext\Symfony\TcpdfNextBundle::class => ['all' => true],
];

Paquete CodeIgniter

bash
composer require yeeefang/tcpdf-next-codeigniter

Requisitos: CodeIgniter ^4.0

Registra el servicio en tu app/Config/Services.php o usa el auto-descubrimiento.

Compatibilidad

Paquete Adaptation (Migración desde TCPDF)

bash
composer require yeeefang/tcpdf-next-adaptation

Adaptador de reemplazo directo para TCPDF 6.2.13 — mapea 252 métodos heredados a la API moderna de TCPDF-Next. Soporta sobrecargas de Header() / Footer() mediante clase no final y clases auxiliares heredadas (TCPDF_STATIC, TCPDF_FONTS, TCPDF_COLORS, TCPDF_IMAGES).

Configuración Docker

🐳 Docker for Legacy PHP Environments
Si tu servidor de producción ejecuta PHP < 8.5, usa Docker para aislar TCPDF-Next.
dockerfile
FROM php:8.5-cli

RUN apt-get update && apt-get install -y \
    libicu-dev libpng-dev libjpeg-dev libwebp-dev libzip-dev \
    && docker-php-ext-configure gd --with-jpeg --with-webp \
    && docker-php-ext-install gd intl zip

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

COPY . /app
WORKDIR /app
RUN composer install --no-dev --optimize-autoloader

Para Chrome (paquete Artisan):

dockerfile
FROM php:8.5-cli

RUN apt-get update && apt-get install -y \
    libicu-dev libpng-dev libjpeg-dev libwebp-dev chromium \
    && docker-php-ext-configure gd --with-jpeg --with-webp \
    && docker-php-ext-install gd intl

ENV CHROME_PATH=/usr/bin/chromium

COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY . /app
WORKDIR /app
RUN composer install --no-dev --optimize-autoloader

Verificar la instalación

php
<?php
require 'vendor/autoload.php';

use Yeeefang\TcpdfNext\Core\Document;

$pdf = Document::createStandalone()->addPage()->setFont('Helvetica', '', 12)->cell(0, 10, 'OK');
echo "TCPDF-Next is working. Classes loaded: " . count(get_declared_classes()) . "\n";

Distribuido bajo la licencia LGPL-3.0-or-later.