Skip to content

安装

系统需求

需求版本用途
PHP^8.5只读类、枚举、管道运算符、#[\SensitiveParameter]
ext-openssl*AES-256 加密、PKCS#7 签名、OCSP/TSA 请求
ext-zlib*PDF 流的 Flate 压缩
ext-mbstring*Unicode 字符串处理
ext-gd*图片处理(JPEG、PNG、WebP、AVIF)
ext-curl*对 OCSP 响应器与 TSA 服务器发送 HTTP 请求
ext-intl*ICU 断行算法与本地化格式处理

验证所有扩展是否已安装:

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

快速安装

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

Core 包

bash
composer require yeeefang/tcpdf-next

依赖包: phpseclib/phpseclib ^3.0(RSASSA-PSS、ASN.1、X.509)

功能性扩展

Artisan 包(Chrome CDP)

bash
composer require yeeefang/tcpdf-next-artisan

额外需求:

  • chrome-php/chrome ^1.15
  • 系统需安装 Chrome 或 Chromium 浏览器
bash
# Ubuntu/Debian
apt-get install chromium-browser

# macOS
brew install --cask chromium

# 或通过环境变量指定路径
export CHROME_PATH=/usr/bin/google-chrome

Pro 包(商业版)

bash
composer require yeeefang/tcpdf-next-pro

授权方式: 每个应用程序 $1,000 USD,依主版本永久授权。

额外依赖包: phpseclib/phpseclib ^3.0 | 可选:ext-pkcs11

配置你的授权密钥:

bash
# .env
TCPDF_PRO_LICENSE_KEY=your-license-key

框架集成

Laravel 包

bash
composer require yeeefang/tcpdf-next-laravel

需求: Laravel ^12.0

ServiceProvider 会自动注册。发布配置文件:

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

Symfony 包

bash
composer require yeeefang/tcpdf-next-symfony

需求: Symfony ^7.0

Bundle 会通过 Symfony Flex 自动配置。如需手动注册:

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

CodeIgniter 包

bash
composer require yeeefang/tcpdf-next-codeigniter

需求: CodeIgniter ^4.0

app/Config/Services.php 中注册服务,或使用自动发现。

兼容性

Adaptation 包(TCPDF 迁移)

bash
composer require yeeefang/tcpdf-next-adaptation

即插即用的 TCPDF 6.2.13 向后兼容适配器 — 将 252 个旧版方法映射到 TCPDF-Next 的现代 API。支持通过非 final 类重写 Header() / Footer(),以及旧版辅助类(TCPDF_STATICTCPDF_FONTSTCPDF_COLORSTCPDF_IMAGES)。

Docker 配置

🐳 Docker for Legacy PHP Environments
如果你的生产环境 PHP 版本低于 8.5,可以使用 Docker 隔离 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

若需使用 Chrome(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

验证安装

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

以 LGPL-3.0-or-later 许可证发布。