Перейти к содержимому
pdftools.kz

Что такое CropBox и MediaBox

У страницы PDF не один размер, а до пяти прямоугольников. MediaBox — физический лист, на котором всё нарисовано; CropBox — область, которую просмотрщик показывает и печатает. По умолчанию они совпадают, но у сканов и печатных макетов CropBox почти всегда меньше. Инструмент, который считает от MediaBox, а показывает пользователю CropBox, промахивается молча: файл открывается, содержимое просто оказывается не там.

Локально в браузеребез регистрации

Коротко о цифрах

MediaBox
физический размер листа, единственный обязательный прямоугольник
CropBox
видимая область; при отсутствии равен MediaBox
Пример расхождения
MediaBox 595×842 при CropBox [50,100,400,600] — видимое кончается на x=450
Что пишет обрезка
и CropBox, и MediaBox — иначе файл печатается в исходном размере
Минимальная сторона
1 пункт: страницы, от которых ничего не осталось бы, не трогаются

Пять прямоугольников одной страницы

  • MediaBox — физические границы листа. Обязателен, остальные при отсутствии берутся из него.
  • CropBox — видимая область. Именно её показывает просмотрщик и в неё вписывает страницу при печати.
  • BleedBox — область с запасом под обрез, нужна типографии, чтобы краска доходила до края.
  • TrimBox — размер готового изделия после обрезки.
  • ArtBox — значимое содержимое макета; в обычных документах встречается редко.

Ошибка, из-за которой это перестало быть теорией

Водяной знак в правом нижнем углу когда-то считался так: размер брался у MediaBox, а начало координат — у CropBox. На файле с MediaBox 595 на 842 и CropBox [50, 100, 400, 600] знак уезжал на x = 525, тогда как видимая полоса заканчивается на x = 450. Интерфейс при этом рапортовал об успехе, а пользователь получал документ, на котором знака не видно.

Теперь все инструменты размещения — водяной знак, нумерация, подпись — меряют в одной системе: размеры берутся у CropBox, и к результату добавляется смещение его начала. Поворот учитывается отдельно, потому что «верх» для пользователя и «верх» для файла на странице с /Rotate 90 — разные стороны.

Как это работает в наших инструментах

  • Обрезка отсчитывает поля от CropBox: у скана он часто уже MediaBox, и отсчёт от листа срезал бы то, что человек видит.
  • В результат пишутся оба прямоугольника — просмотрщику хватило бы CropBox, но принтеры и часть программ ориентируются на MediaBox, и файл печатался бы в исходном размере.
  • Поля пользователя визуальные: на странице с поворотом «сверху» отображается на другую сторону прямоугольника, и это пересчитывается по квадрантам.
  • Раскладка N-up вписывает в ячейку CropBox, иначе на лист попали бы поля под обрез и типографские метки.
  • Страница, от которой после обрезки осталось бы меньше пункта, пропускается и остаётся нетронутой.

Частые вопросы

Почему водяной знак оказался за краем страницы?

Классическая причина — расчёт от MediaBox на файле, где CropBox меньше. Знак ставится по координатам физического листа и попадает в область, которую просмотрщик не показывает, хотя в файле он есть.

Обрезка действительно удаляет содержимое?

Нет. Она меняет прямоугольники страницы, а объекты за новой границей остаются в файле. Если рамку потом расширить, спрятанное вернётся — поэтому обрезка не годится как способ скрыть данные.

Как тогда убрать то, что скрыто обрезкой?

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

Почему в разных программах один PDF выглядит по-разному?

Часть просмотрщиков показывает CropBox, часть — MediaBox, а некоторые редакторы при сохранении подгоняют их друг под друга. На файле, где прямоугольники расходятся, это и даёт разные поля вокруг содержимого.

Рядом