Сравнение и руководство по развёртыванию
Не уверены, какие пакеты вам нужны? Используйте интерактивный мастер ниже или просмотрите сценарии развёртывания и матрицу решений, чтобы найти идеальную конфигурацию.
Найдите идеальную конфигурацию
Тип проекта
Сгенерируйте вашу конфигурацию
Генератор конфигурации
Выберите пакеты и опции для генерации готовых к использованию файлов конфигурации.
composer require yeeefang/tcpdf-nextСценарии развёртывания
Различные хостинг-окружения имеют разные возможности. Вот что лучше всего подходит для каждого:
Shared-хостинг
Ограниченный доступ к PHP, без shell. Только Core с базовыми шрифтами. Без Chrome/RoadRunner.
VPS (PHP-FPM)
Полный контроль сервера. Chrome для HTML→PDF. Подходит для большинства приложений.
VPS + RoadRunner
RoadRunnerПостоянный worker устраняет cold start. Пропускная способность выше в 3-7 раз.
Выделенный сервер
Полные ресурсы. Идеально для Pro-функций (PAdES, PDF/A-4, HSM).
Выделенный + RoadRunner
RoadRunnerМаксимальная пропускная способность. 9,000+ docs/s при 4 workers.
Kubernetes / Docker
RoadRunnerГоризонтальное масштабирование. RoadRunner как worker-процесс. Production-уровень.
Производительность: стандартный PHP-FPM vs RoadRunner
RoadRunner держит ваше PHP-приложение в памяти как персистентный воркер, устраняя холодные старты и значительно увеличивая пропускную способность.
Стандартный PHP-FPM vs RoadRunner
▲ Чем больше, тем лучшеPHP 8.5.3 + OPcache + JIT · Docker 4 CPUs / 16 GB · i9-13900K · Медиана 20 запусков
Когда использовать RoadRunner
RoadRunner рекомендуется, когда вам нужна высокая пропускная способность (сотни PDF в минуту) или низкая задержка (субмиллисекундное время отклика). Для типичных веб-приложений, генерирующих несколько PDF на запрос, стандартный PHP-FPM вполне подходит.
Матрица решений по вариантам использования
Какие пакеты следует установить для вашего конкретного случая?
| Сценарий | |||||||
|---|---|---|---|---|---|---|---|
| Генерация счетов и отчётов | ✅ | ⚪ | ⚪ | ⚪ | ⚪ | ⚪ | — |
| 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 и т.д.) поддерживают только латинские символы. Если вашим документам нужен текст на китайском, японском или корейском языках, необходимо:
- Встроить TrueType-шрифты — Используйте
setFont()с TTF-шрифтом, поддерживающим нужный набор символов - Настроить пути к шрифтам — Установите переменную окружения
TCPDF_FONTS_DIRили используйте API конфигурации - Учтите размер файла — CJK-шрифты обычно занимают 5-15 МБ каждый; используйте font subsetting для уменьшения размера PDF
// 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-хостинга:
composer require yeeefang/tcpdf-nextИспользуйте только Core со встроенным HTML-парсером для базовых потребностей HTML-в-PDF. Для пиксельно-точного рендеринга HTML рассмотрите переход на VPS.
Следующие шаги
- Начало работы — Установка и создание первого PDF
- Руководство по установке — Детальная установка всех пакетов
- Бенчмарки — Полные данные сравнения производительности
- Миграция с TCPDF — Пошаговое руководство по миграции