Автоматизация вёрстки каталогов продукции с помощью PHP — задача, с которой сталкиваются многие компании, выпускающие регулярно обновляемые прайс-листы или каталоги с переменными данными. Вручную перебирать сотни страниц в InDesign или Illustrator, корректируя цены, артикулы и изображения, чревато пропущенными ошибками и потерянным временем. PHP в связке с библиотеками генерации PDF позволяет собрать макет, готовый к офсетной или цифровой печати, напрямую из базы данных. Но такой подход требует понимания требований типографии: цветовые профили, вылеты, шрифты и разрешение изображений.
Почему PHP подходит для каталогов с переменными данными
PHP — не единственный инструмент для автоматической вёрстки, но один из самых доступных. Большинство хостингов поддерживают его «из коробки», а библиотеки вроде TCPDF, FPDF и mPDF не требуют установки дополнительных модулей. Если ваш каталог обновляется ежемесячно или содержит тысячи позиций, PHP-скрипт может забирать данные из 1С, CRM или Excel-файла, подставлять их в шаблон и формировать готовый PDF. Это исключает человеческий фактор при переносе цифр и гарантирует единообразие макета.
Однако важно понимать: PHP-генерация — это не замена профессиональной вёрстки для дизайнерских каталогов со сложной сеткой. Она идеальна для прайс-листов, технических каталогов, каталогов запчастей или товаров с однотипным описанием. Если в макете много уникальных графических элементов, ручная вёрстка остаётся предпочтительнее.
Ключевые библиотеки: TCPDF, FPDF, mPDF
Выбор библиотеки зависит от сложности макета и требований к печати. Рассмотрим три основных варианта.
- FPDF — лёгкая библиотека без внешних зависимостей. Подходит для простых каталогов, где не нужна поддержка UTF-8 (кириллица требует дополнительной настройки через AddFont). Не поддерживает прозрачность и слои.
- TCPDF — расширенная версия с поддержкой Unicode, JPEG2000, прозрачности, обрезных меток и цветовых пространств. Рекомендуется для каталогов, которые пойдут в офсетную печать.
- mPDF — надстройка над FPDF, умеющая парсить HTML и CSS. Позволяет верстать макет как веб-страницу и конвертировать её в PDF. Удобна, если дизайн каталога уже свёрстан в HTML. Однако для печати требуется тщательно контролировать единицы измерения (mm, pt) и цветовые профили.
Для большинства задач печатного каталога оптимален TCPDF: он даёт полный контроль над параметрами страницы, поддерживает CMYK и встраивание шрифтов. Если вам нужно быстро проверить конфигурацию PHP на сервере, обратитесь к нашему материалу о phpinfo() — он поможет убедиться, что установлены нужные расширения (GD, Imagick, mbstring).
Настройка цветового пространства и обрезных меток
Типография принимает файлы в CMYK, а PHP-библиотеки по умолчанию работают в RGB. Даже если на экране цвета выглядят насыщенными, при печати они могут «упасть» в грязь. В TCPDF цветовое пространство задаётся через метод setColorSpace(), а цвета указываются в формате CMYK (C, M, Y, K от 0 до 255 или в процентах). Не забывайте конвертировать все изображения в CMYK перед вставкой — для этого используйте Imagick или внешний конвертер (Ghostscript).
Обрезные метки и вылеты (bleed) — обязательный атрибут печатного макета. В TCPDF метки добавляются методом setPrintHeader(false) и ручной отрисовкой линий через Line(). Проще использовать готовый класс PDF_MC_Table или создать свой шаблон с метками. Вылеты делайте не менее 3 мм с каждой стороны; сам макет должен быть на 6 мм шире и выше финального формата.
Работа с изображениями и шрифтами
Изображения для каталога должны иметь разрешение не ниже 300 dpi в фактическом размере на странице. PHP-скрипт не сможет «дорисовать» пиксели — только масштабировать. Поэтому при загрузке изображений из базы проверяйте их размеры и при необходимости отклоняйте или предупреждайте оператора. Для автоматической проверки используйте функцию getimagesize().
Шрифты — отдельная боль. Большинство библиотек поддерживают только TrueType (.ttf) и OpenType (.otf). Перед встраиванием шрифта убедитесь, что у вас есть лицензия на его использование в печатном PDF. В TCPDF шрифты регистрируются через addTTFfont() или AddFont(). Кириллические шрифты требуют указания кодировки UTF-8. Никогда не полагайтесь на встроенные шрифты библиотеки — они не содержат кириллицы.
Проверка файла перед печатью
Даже идеально написанный скрипт может дать сбой: не встроился шрифт, съехали метки, изображение в RGB. Поэтому перед отправкой в типографию обязательно выполните префлайт. Для PHP-сгенерированных PDF используйте следующие шаги:
- Откройте PDF в Adobe Acrobat Pro и запустите «Проверка версии PDF» (Preflight). Выберите профиль «Печать офсетная (европейская)».
- Проверьте, что все шрифты встроены (вкладка «Шрифты»).
- Убедитесь, что цветовое пространство документа — CMYK (Object Inspector).
- Проверьте обрезные метки: они должны быть на расстоянии 3–5 мм от края обрезного формата.
- Если в каталоге есть прозрачности (например, тени от изображений), выполните их сведение (flatten) через Ghostscript командой:
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.7 -dPDFSETTINGS=/prepress -sOutputFile=output.pdf input.pdf
Перед отправкой финального PDF в типографию обязательно выполните префлайт в Acrobat Pro или через командную строку Ghostscript — это единственный способ гарантировать, что все шрифты встроены, а прозрачности корректно обработаны. Только после этого макет можно считать готовым к тиражированию.
