Skip to content

Cài đặt

Yêu cầu hệ thống

Yêu cầuPhiên bảnMục đích
PHP^8.5Readonly 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:

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

Cài nhanh

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

Package Core

bash
composer require yeeefang/tcpdf-next

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

Extension chức năng

Package Artisan (Chrome CDP)

bash
composer require yeeefang/tcpdf-next-artisan

Yê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
bash
# 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-chrome

Package Pro (Thương mại)

bash
composer require yeeefang/tcpdf-next-pro

Giấ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:

bash
# .env
TCPDF_PRO_LICENSE_KEY=your-license-key

Tích hợp Framework

Package Laravel

bash
composer require yeeefang/tcpdf-next-laravel

Yêu cầu: Laravel ^12.0

ServiceProvider được tự động phát hiện. Publish config:

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

Package Symfony

bash
composer require yeeefang/tcpdf-next-symfony

Yêu cầu: Symfony ^7.0

Bundle được tự động cấu hình. Đăng ký thủ công nếu cần:

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

Package CodeIgniter

bash
composer require yeeefang/tcpdf-next-codeigniter

Yê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)

bash
composer require yeeefang/tcpdf-next-adaptation

Adapter 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

🐳 Docker for Legacy PHP Environments
Nếu server production chạy PHP < 8.5, hãy dùng Docker để cách ly 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

Dùng Chrome (package 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

Xác minh cài đặt

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 hoạt động. Số class đã load: " . count(get_declared_classes()) . "\n";

Phân phối theo giấy phép LGPL-3.0-or-later.