Skip to content

Installazione

Requisiti di Sistema

RequisitoVersioneScopo
PHP^8.5Classi readonly, backed enum, pipe operator, #[\SensitiveParameter]
ext-openssl*Crittografia AES-256, firme PKCS#7, richieste OCSP/TSA
ext-zlib*Compressione Flate per stream PDF
ext-mbstring*Gestione stringhe Unicode
ext-gd*Elaborazione immagini (JPEG, PNG, WebP, AVIF)
ext-curl*Richieste HTTP a responder OCSP e server TSA
ext-intl*Interruzione di riga ICU e formattazione locale-aware

Verifica tutte le estensioni:

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

Installazione Rapida

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

Pacchetto Core

bash
composer require yeeefang/tcpdf-next

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

Estensioni Funzionali

Pacchetto Artisan (Chrome CDP)

bash
composer require yeeefang/tcpdf-next-artisan

Requisiti aggiuntivi:

  • chrome-php/chrome ^1.15
  • Browser Chrome o Chromium installato sul sistema
bash
# Ubuntu/Debian
apt-get install chromium-browser

# macOS
brew install --cask chromium

# Oppure usa variabile d'ambiente
export CHROME_PATH=/usr/bin/google-chrome

Pacchetto Pro (Commerciale)

bash
composer require yeeefang/tcpdf-next-pro

Licenza: $1,000 USD per applicazione, perpetua per versione major.

Dipendenze aggiuntive: phpseclib/phpseclib ^3.0 | Opzionale: ext-pkcs11

Imposta la tua chiave di licenza:

bash
# .env
TCPDF_PRO_LICENSE_KEY=your-license-key

Integrazioni Framework

Pacchetto Laravel

bash
composer require yeeefang/tcpdf-next-laravel

Requisiti: Laravel ^12.0

Il ServiceProvider è auto-discoverable. Pubblica la configurazione:

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

Pacchetto Symfony

bash
composer require yeeefang/tcpdf-next-symfony

Requisiti: Symfony ^7.0

Il Bundle è auto-configurato. Registra manualmente se necessario:

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

Pacchetto CodeIgniter

bash
composer require yeeefang/tcpdf-next-codeigniter

Requisiti: CodeIgniter ^4.0

Registra il service nel tuo app/Config/Services.php o usa auto-discovery.

Compatibilità

Pacchetto Adaptation (Migrazione TCPDF)

bash
composer require yeeefang/tcpdf-next-adaptation

Adattatore drop-in replacement per TCPDF 6.2.13 — mappa 252 metodi legacy all'API moderna di TCPDF-Next. Supporta override Header() / Footer() tramite classe non-final e classi helper legacy (TCPDF_STATIC, TCPDF_FONTS, TCPDF_COLORS, TCPDF_IMAGES).

Configurazione Docker

🐳 Docker for Legacy PHP Environments
Se il tuo server di produzione esegue PHP < 8.5, usa Docker per isolare 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

Per Chrome (pacchetto 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

Verifica Installazione

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";

Rilasciato sotto licenza LGPL-3.0-or-later.