Когда менеджер типографии или дизайнер вручную считает количество страниц в брошюре, толщину корешка или расход бумаги на тираж, ошибки неизбежны. Перепутанный расклад на листе, неверный шаг спуска полос, забытый припуск на биговку — каждая такая мелочь превращается в перерасход материала или бракованный тираж. PHP, как скриптовый язык веб-разработки, редко ассоциируют с полиграфическими расчётами. Однако именно он позволяет быстро автоматизировать рутинные вычисления прямо на сайте типографии или в CRM-системе, не требуя от пользователя глубоких математических знаний.
Какие расчёты можно автоматизировать?
Типографская числовая грамотность (typography numeracia) — это умение переводить параметры макета в производственные цифры: объём издания в страницах, толщину блока, формат листа после обрезки, количество заготовок на листе. PHP отлично справляется с такими задачами:
- расчёт количества страниц в тетради при заданном формате и способе фальцовки;
- вычисление толщины корешка для скрепления (скоба, термоклей, пружина);
- определение оптимального раскроя листа для визиток, листовок, пакетов;
- пересчёт граммажа бумаги в вес тиража и стоимость доставки;
- проверка соответствия макета техническим требованиям (размеры, вылеты, поля).
Каждый из этих пунктов — готовый скрипт, который можно встроить в форму заказа или в личный кабинет клиента.

Практический пример: расчёт толщины корешка для мягкой обложки
Допустим, клиент заказывает каталог на 80 страниц, бумага мелованная матовая 150 г/м². Толщина одного листа этой бумаги — примерно 0,12 мм (зависит от производителя, но для предварительного расчёта берут среднее значение). Формула: (количество страниц / 2) × толщина листа. В PHP это выглядит так:
$pages = 80;
$paper_thickness_mm = 0.12;
$spine = ($pages / 2) * $paper_thickness_mm;
echo 'Толщина корешка: ' . $spine . ' мм';
Результат: 4,8 мм. Для термоклеевого скрепления это нормально, но если клиент хочет скрепление скобой, при толщине более 4 мм скоба может не пробить блок. PHP позволяет сразу выдать предупреждение: «Рекомендуется клеевое скрепление».
На практике толщина листа сильно варьируется даже в пределах одной марки бумаги. Поэтому в скрипт стоит заложить таблицу с реальными значениями, полученными от поставщика. Пример массива:
$paper_db = [
'мелованная матовая 150' => ['thickness' => 0.12, 'weight_per_sqm' => 150],
'офсетная 80' => ['thickness' => 0.10, 'weight_per_sqm' => 80],
// ...
];
Расчёт раскроя листа для визиток и листовок
Одна из частых задач — определить, сколько заготовок (визиток, флаеров) помещается на листе формата SRA3 (320×450 мм) с учётом обрезки и вылетов. PHP-функция принимает размер заготовки с вылетами и размер листа, а возвращает количество по оси X и Y:
function count_on_sheet($item_w, $item_h, $sheet_w, $sheet_h) {
$cols = floor($sheet_w / $item_w);
$rows = floor($sheet_h / $item_h);
return $cols * $rows;
}
Но это упрощённый вариант. Реальный расклад требует учёта технологических полей (захват печатной машины, приводные шкалы). Для офсетной печати часто используют спуск полос с поворотом заготовок — там алгоритм сложнее. Тем не менее, даже такая простая функция помогает менеджеру быстро прикинуть тиражность: если на листе помещается 8 визиток, а тираж 1000 штук, понадобится 125 листов.
Подробнее о том, как правильно подготовить макет с учётом вылетов и полей, мы разбирали в статье «Дизайн каталогов продукции: правила макета и подготовка к печати». Там же приведены типовые значения для разных видов скрепления.

Пересчёт граммажа в вес тиража
Клиент часто спрашивает: «Сколько будет весить коробка с 500 листовками А5?». Плотность бумаги 300 г/м², формат А5 — 148×210 мм = 0,03108 м². Вес одного листа: 0,03108 × 300 = 9,324 г. На 500 листов — 4,662 кг. PHP-скрипт легко считает это, а также прибавляет вес упаковки и рассчитывает стоимость доставки по тарифам транспортной компании.
Важно помнить: граммаж указывается для квадратного метра, а не для листа. Ошибка в этом пункте — самая частая причина несоответствия заявленного и фактического веса. Скрипт должен явно запрашивать формат листа (в мм) и граммаж.
Проверка макета на соответствие техническим требованиям
PHP может анализировать параметры загруженного PDF (через библиотеку, например, FPDI или Imagick) и проверять:
- размеры страницы совпадают с заказанным форматом;
- наличие вылетов (bleed) — не менее 3 мм с каждой стороны;
- разрешение изображений не ниже 300 dpi;
- цветовая модель — CMYK (а не RGB).
Такая автоматическая пре-пресс проверка экономит часы работы технолога. Если макет не проходит проверку, клиент получает сообщение с указанием конкретной ошибки и ссылкой на статью о подготовке макета, например, «Листовка А5: технические параметры, которые нужно согласовать с типографией». Это снижает количество переделок и недопонимания.
Расчёт количества страниц при заданном способе фальцовки
Для буклетов и брошюр важно знать, сколько страниц получится из определённого количества сфальцованных листов. Например, один лист формата А3, сложенный в два сгиба (еврофальцовка), даёт 6 панелей — 3 с каждой стороны. Но если фальцовка «гармошка» — 4 панели. PHP-функция может принимать тип фальцовки и количество листов, а возвращать количество страниц (панелей).
Пример для буклета с параллельной фальцовкой:
function pages_from_sheets($sheets, $folds) {
// для параллельной фальцовки количество панелей = 2 * ($folds + 1)
return $sheets * 2 * ($folds + 1);
}
Для более сложных видов (крестовая, комбинированная) логика усложняется, но PHP позволяет описать их через условные операторы или switch.
Учёт постпечатной обработки в расчётах
Лакирование, ламинация, тиснение — каждая операция добавляет допуски на усадку или смещение. Например, при выборочном УФ-лакировании необходимо учитывать, что плёнка лака может «стягивать» бумагу, меняя её размер. В PHP можно заложить поправочные коэффициенты для разных типов обработки. Если заказ включает тиснение фольгой, скрипт автоматически увеличивает припуск на 0,5 мм с каждой стороны для клише.
Такой подход позволяет менеджеру сразу видеть итоговую карту раскроя с учётом всех этапов, а не считать вручную на калькуляторе.
Интеграция с формами заказа и CRM
PHP-скрипты удобно встраивать в веб-формы. Пользователь выбирает формат, бумагу, тираж, а на сервере мгновенно вычисляется вес, толщина, количество листов и даже предварительная стоимость (без фиксации цены — только ориентир). Это повышает доверие клиента: он видит, что типография понимает его задачу и может дать оперативный расчёт.
Для безопасности все вычисления лучше выполнять на стороне сервера, а не в JavaScript, чтобы защитить логику от подделки. PHP — естественный выбор для этой задачи в большинстве хостингов.
Ограничения и точность
PHP не заменит профессиональные программы спуска полос (Preps, Imposition Studio), но для быстрых прикидок и автоматизации рутины он идеален. Помните: все расчёты основаны на справочных данных, которые необходимо регулярно обновлять. Толщина бумаги одной и той же плотности может отличаться у разных производителей на 10–15%. Поэтому финальное решение всегда остаётся за технологом.
Автоматизация на PHP не обещает волшебного роста продаж — она лишь убирает человеческий фактор из повторяющихся вычислений. Но для типографии, которая принимает десятки заказов в день, каждый сэкономленный час — это реальный ресурс, который можно направить на контроль качества и развитие новых услуг.
