Skip to content

Установка

Системные требования

ТребованиеВерсияНазначение
PHP^8.5Readonly-классы, backed enum-ы, pipe-оператор, #[\SensitiveParameter]
ext-openssl*AES-256 шифрование, PKCS#7 подписи, OCSP/TSA запросы
ext-zlib*Flate-сжатие для PDF-потоков
ext-mbstring*Обработка Unicode-строк
ext-gd*Обработка изображений (JPEG, PNG, WebP, AVIF)
ext-curl*HTTP-запросы к OCSP-серверам и TSA-серверам
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 конфигурируется автоматически. При необходимости зарегистрируйте вручную:

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 устаревших метода на современный API TCPDF-Next. Поддерживает переопределение Header() / Footer() через не-final класс и устаревшие вспомогательные классы (TCPDF_STATIC, TCPDF_FONTS, TCPDF_COLORS, TCPDF_IMAGES).

Настройка Docker

🐳 Docker for Legacy PHP Environments
Если на вашем production-сервере 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.