Cài đặt
Yêu cầu hệ thống
| Yêu cầu | Phiên bản | Mục đích |
|---|---|---|
| PHP | ^8.5 | Readonly class, backed enum, pipe operator, #[\SensitiveParameter] |
| ext-openssl | * | Mã hóa AES-256, chữ ký PKCS#7, yêu cầu OCSP/TSA |
| ext-zlib | * | Nén Flate cho PDF stream |
| ext-mbstring | * | Xử lý chuỗi Unicode |
| ext-gd | * | Xử lý hình ảnh (JPEG, PNG, WebP, AVIF) |
| ext-curl | * | Yêu cầu HTTP đến OCSP responder và TSA server |
| ext-intl | * | ICU line breaking và định dạng theo locale |
Kiểm tra tất cả extension:
php -r "foreach(['openssl','zlib','mbstring','gd','curl','intl'] as \$e){echo \$e.': '.(extension_loaded(\$e)?'OK':'MISSING').PHP_EOL;}"Cài nhanh
composer require yeeefang/tcpdf-nextcomposer require yeeefang/tcpdf-next yeeefang/tcpdf-next-laravelcomposer require yeeefang/tcpdf-next yeeefang/tcpdf-next-symfonycomposer require yeeefang/tcpdf-next yeeefang/tcpdf-next-artisancomposer require yeeefang/tcpdf-next yeeefang/tcpdf-next-pro yeeefang/tcpdf-next-artisan yeeefang/tcpdf-next-laravelPackage Core
composer require yeeefang/tcpdf-nextDependency: phpseclib/phpseclib ^3.0 (RSASSA-PSS, ASN.1, X.509)
Extension chức năng
Package Artisan (Chrome CDP)
composer require yeeefang/tcpdf-next-artisanYêu cầu thêm:
chrome-php/chrome ^1.15- Trình duyệt Chrome hoặc Chromium được cài trên hệ thống
# Ubuntu/Debian
apt-get install chromium-browser
# macOS
brew install --cask chromium
# Hoặc dùng biến môi trường
export CHROME_PATH=/usr/bin/google-chromePackage Pro (Thương mại)
composer require yeeefang/tcpdf-next-proGiấy phép: $1,000 USD mỗi ứng dụng, vĩnh viễn cho mỗi phiên bản major.
Dependency thêm: phpseclib/phpseclib ^3.0 | Tùy chọn: ext-pkcs11
Đặt license key:
# .env
TCPDF_PRO_LICENSE_KEY=your-license-keyTích hợp Framework
Package Laravel
composer require yeeefang/tcpdf-next-laravelYêu cầu: Laravel ^12.0
ServiceProvider được tự động phát hiện. Publish config:
php artisan vendor:publish --tag=tcpdf-next-configPackage Symfony
composer require yeeefang/tcpdf-next-symfonyYêu cầu: Symfony ^7.0
Bundle được tự động cấu hình. Đăng ký thủ công nếu cần:
// config/bundles.php
return [
// ...
Yeeefang\TcpdfNext\Symfony\TcpdfNextBundle::class => ['all' => true],
];Package CodeIgniter
composer require yeeefang/tcpdf-next-codeigniterYêu cầu: CodeIgniter ^4.0
Đăng ký service trong app/Config/Services.php hoặc sử dụng auto-discovery.
Tương thích
Package Adaptation (Di chuyển từ TCPDF)
composer require yeeefang/tcpdf-next-adaptationAdapter thay thế trực tiếp cho TCPDF 6.2.13 — ánh xạ 252 method cũ sang API hiện đại của TCPDF-Next. Hỗ trợ override Header() / Footer() qua non-final class và các class helper cũ (TCPDF_STATIC, TCPDF_FONTS, TCPDF_COLORS, TCPDF_IMAGES).
Thiết lập Docker
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-autoloaderDùng Chrome (package Artisan):
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-autoloaderXác minh cài đặt
<?php
require 'vendor/autoload.php';
use Yeeefang\TcpdfNext\Core\Document;
$pdf = Document::createStandalone()->addPage()->setFont('Helvetica', '', 12)->cell(0, 10, 'OK');
echo "TCPDF-Next hoạt động. Số class đã load: " . count(get_declared_classes()) . "\n";