Skip to content

Сравнение и руководство по развёртыванию

Не уверены, какие пакеты вам нужны? Используйте интерактивный мастер ниже или просмотрите сценарии развёртывания и матрицу решений, чтобы найти идеальную конфигурацию.

Найдите идеальную конфигурацию

1
Тип проекта
2
Версия PHP
3
Фреймворк
4
HTML→PDF
5
Функции Pro

Тип проекта

Сгенерируйте вашу конфигурацию

Генератор конфигурации

Выберите пакеты и опции для генерации готовых к использованию файлов конфигурации.

Core всегда включен

Базовый образ
composer require yeeefang/tcpdf-next

Сценарии развёртывания

Различные хостинг-окружения имеют разные возможности. Вот что лучше всего подходит для каждого:

🏠

Shared-хостинг

Производительность
Рекомендуемые пакеты
Core Core

Ограниченный доступ к PHP, без shell. Только Core с базовыми шрифтами. Без Chrome/RoadRunner.

🖥

VPS (PHP-FPM)

Производительность
Рекомендуемые пакеты
Core CoreArtisan ArtisanLaravel Laravel

Полный контроль сервера. Chrome для HTML→PDF. Подходит для большинства приложений.

🖥

VPS + RoadRunner

RoadRunner
Производительность
Рекомендуемые пакеты
Core CoreArtisan ArtisanLaravel Laravel

Постоянный worker устраняет cold start. Пропускная способность выше в 3-7 раз.

Выделенный сервер

Производительность
Рекомендуемые пакеты
Core CoreArtisan ArtisanPro ProLaravel Laravel

Полные ресурсы. Идеально для Pro-функций (PAdES, PDF/A-4, HSM).

Выделенный + RoadRunner

RoadRunner
Производительность
Рекомендуемые пакеты
Core CoreArtisan ArtisanPro ProLaravel Laravel

Максимальная пропускная способность. 9,000+ docs/s при 4 workers.

Kubernetes / Docker

RoadRunner
Производительность
Рекомендуемые пакеты
Core CoreArtisan ArtisanPro ProSymfony Symfony

Горизонтальное масштабирование. RoadRunner как worker-процесс. Production-уровень.

Производительность: стандартный PHP-FPM vs RoadRunner

RoadRunner держит ваше PHP-приложение в памяти как персистентный воркер, устраняя холодные старты и значительно увеличивая пропускную способность.

Стандартный PHP-FPM vs RoadRunner

▲ Чем больше, тем лучше
PHP-FPM RoadRunner
Простой документ
390 docs/s
2,605 docs/s
6.7x быстрее
Счёт-фактура
294 docs/s
1,960 docs/s
6.7x быстрее
Отчёт на 100 страниц
14 docs/s
98 docs/s
7.0x быстрее
4 Workers
1,500 docs/s
9,221 docs/s
6.1x быстрее

PHP 8.5.3 + OPcache + JIT · Docker 4 CPUs / 16 GB · i9-13900K · Медиана 20 запусков

Когда использовать RoadRunner

RoadRunner рекомендуется, когда вам нужна высокая пропускная способность (сотни PDF в минуту) или низкая задержка (субмиллисекундное время отклика). Для типичных веб-приложений, генерирующих несколько PDF на запрос, стандартный PHP-FPM вполне подходит.

Матрица решений по вариантам использования

Какие пакеты следует установить для вашего конкретного случая?

\u{2705} Рекомендуется\u{26AA} Опционально Н/Д
СценарийCore CoreArtisan ArtisanPro ProLaravel LaravelSymfony SymfonyCI4 CI4Adaptation Adaptation
Генерация счетов и отчётов
E-commerce (HTML→PDF)
Доступные документы (PDF/UA)
Цифровые подписи (PAdES)
Миграция с TCPDF Legacy
Высоконагруженный API
Архивное соответствие (PDF/A-4)
Документы со штрихкодами

Совместимость пакетов

Большинство пакетов работают вместе без проблем, за одним исключением:

КомбинацияСовместимостьПримечания
Core + любой пакетДаCore всегда необходим
Artisan + любой фреймворкДаChrome CDP работает со всеми фреймворками
Pro + Laravel/Symfony/CIДаПолные корпоративные функции в любом фреймворке
Pro + AdaptationНетAdaptation оборачивает устаревший API TCPDF; Pro расширяет современный API TCPDF-Next. Выберите один подход.
Adaptation + фреймворкДаИспользуйте Adaptation для миграции устаревшего кода внутри вашего фреймворка

Соображения по CJK и шрифтам

Встроенные базовые 14 шрифтов (Helvetica, Times, Courier и т.д.) поддерживают только латинские символы. Если вашим документам нужен текст на китайском, японском или корейском языках, необходимо:

  1. Встроить TrueType-шрифты — Используйте setFont() с TTF-шрифтом, поддерживающим нужный набор символов
  2. Настроить пути к шрифтам — Установите переменную окружения TCPDF_FONTS_DIR или используйте API конфигурации
  3. Учтите размер файла — CJK-шрифты обычно занимают 5-15 МБ каждый; используйте font subsetting для уменьшения размера PDF
php
// Example: Using a CJK font
$pdf = Document::createStandalone()
    ->addPage()
    ->setFont('/path/to/NotoSansCJK-Regular.ttf', '', 12)
    ->cell(0, 10, '你好世界 こんにちは 안녕하세요');

Рекомендуемые CJK-шрифты

  • Noto Sans CJK — семейство CJK-шрифтов от Google с открытым исходным кодом (бесплатно)
  • Source Han Sans — эквивалент от Adobe (бесплатно)
  • Оба поддерживают упрощённый китайский, традиционный китайский, японский и корейский в одном файле шрифта.

Ограничения shared-хостинга

На shared-хостинге обычно невозможно:

  • Установить Chrome/Chromium (без пакета Artisan)
  • Запускать долгоживущие процессы (без RoadRunner)
  • Устанавливать PHP-расширения (только предустановленные)

Рекомендуемая конфигурация для shared-хостинга:

bash
composer require yeeefang/tcpdf-next

Используйте только Core со встроенным HTML-парсером для базовых потребностей HTML-в-PDF. Для пиксельно-точного рендеринга HTML рассмотрите переход на VPS.

Следующие шаги

Распространяется по лицензии LGPL-3.0-or-later.