Installation
System Requirements
| Requirement | Version | Purpose |
|---|---|---|
| PHP | ^8.5 | Readonly classes, backed enums, property hooks, #[\SensitiveParameter] |
| ext-openssl | * | AES-256 encryption, PKCS#7 signatures, OCSP/TSA requests |
| ext-zlib | * | Flate compression for PDF streams |
| ext-mbstring | * | Unicode string handling |
| ext-gd | * | Image processing (JPEG, PNG, WebP, AVIF) |
| ext-curl | * | HTTP requests to OCSP responders and TSA servers |
| ext-intl | * | ICU line breaking and locale-aware formatting |
Verify all extensions:
bash
php -r "foreach(['openssl','zlib','mbstring','gd','curl','intl'] as \$e){echo \$e.': '.(extension_loaded(\$e)?'OK':'MISSING').PHP_EOL;}"Core Package
bash
composer require yeeefang/tcpdf-nextDependencies: phpseclib/phpseclib ^3.0 (RSASSA-PSS, ASN.1, X.509)
Artisan Package (Chrome CDP)
bash
composer require yeeefang/tcpdf-nextartisanAdditional requirements:
chrome-php/chrome ^1.15- Chrome or Chromium browser installed on the system
bash
# Ubuntu/Debian
apt-get install chromium-browser
# macOS
brew install --cask chromium
# Or use environment variable
export CHROME_PATH=/usr/bin/google-chromeLaravel Package
bash
composer require yeeefang/tcpdf-nextlaravelRequirements: Laravel ^12.0
The ServiceProvider is auto-discovered. Publish the config:
bash
php artisan vendor:publish --tag=tcpdf-next-configPro Package (Commercial)
bash
composer require yeeefang/tcpdf-nextproLicense: $1,000 USD per application, perpetual per major version.
Additional dependencies: phpseclib/phpseclib ^3.0 | Optional: ext-pkcs11
Set your license key:
bash
# .env
TCPDF_PRO_LICENSE_KEY=your-license-keyDocker Setup
🐳 Docker for Legacy PHP Environments
If your production server runs PHP < 8.5, use Docker to isolate 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-autoloaderFor Chrome (Artisan package):
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-autoloaderVerify Installation
php
<?php
require 'vendor/autoload.php';
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::create()->addPage()->setFont('Helvetica', '', 12)->cell(0, 10, 'OK');
echo "TCPDF-Next is working. Classes loaded: " . count(get_declared_classes()) . "\n";