Как распечатать несколько страниц PDF на одном листе
У задачи два решения, и они не равнозначны. Драйвер принтера умеет класть на лист несколько страниц, но эта настройка живёт в одном сеансе печати и не уезжает вместе с файлом. Наша раскладка делает то же самое внутри документа: получается новый PDF, где на каждом листе уже стоит сетка из двух, четырёх, шести, девяти или шестнадцати страниц. Такой файл печатается одинаково на любом устройстве и открывается тем же видом на экране.
Коротко о цифрах
- Наборы
- 2, 4, 6, 9 или 16 страниц на лист
- Сетки на книжном листе
- 2 → 1×2, 4 → 2×2, 6 → 2×3, 9 → 3×3, 16 → 4×4; на альбомном строки и столбцы меняются местами
- Отступы по умолчанию
- поля 20 пунктов, зазор между ячейками 10 пунктов
- Поворот
- вложение игнорирует /Rotate, поэтому доворот считается вручную по квадрантам
- Что не переезжает на лист
- ссылки, поля формы и комментарии: вложение несёт содержимое, а не аннотации
Какая сетка получится
- На книжном листе: две страницы встают одна под другой, четыре — квадратом два на два, шесть — двумя столбцами по три, девять — три на три, шестнадцать — четыре на четыре.
- На альбомном листе строки и столбцы меняются местами, поэтому две страницы оказываются рядом, а не друг под другом.
- Режим «авто» не гадает по таблице: он раскладывает обе ориентации и оставляет ту, где страница выходит крупнее.
- Масштаб единый по обеим осям — берётся меньшее из двух отношений ячейки. Пропорции не растягиваются никогда: растянутая страница сразу выдаёт машинную раскладку.
- По умолчанию поля вокруг всей сетки — 20 пунктов, зазор между соседними ячейками — 10 пунктов; оба значения меняются ползунками.
Порядок работы
- Загрузите документ — раскладка идёт целиком во вкладке, файл на сервер не уходит.
- Выберите число страниц на лист и размер листа: A4, Letter или как в исходнике.
- Оставьте ориентацию на «авто», если не уверены: она выберет ту, где содержимое крупнее.
- Включите тонкую рамку вокруг каждой вложенной страницы, если листы потом режут по ячейкам.
- Посмотрите предпросмотр готового листа и сохраните результат.
- Печатайте с масштабом «фактический размер»: вписывание уменьшит и без того уменьшенные страницы ещё раз.
Две вещи, которые ломают чужие раскладки
Первая — поворот. Вложение страницы в лист строится из её содержимого и её рамки, а запись /Rotate при этом игнорируется. Скан, у которого страницы повёрнуты на девяносто градусов, встаёт на лист боком: на экране он выглядел ровно, а на бумаге текст идёт снизу вверх. Наша раскладка досчитывает доворот вручную для каждого квадранта, и таблица углов закреплена тестами, потому что ошибка здесь молчаливая — файл открывается, просто он неправильный.
Вторая — от какого прямоугольника мерить. Ячейка считается от видимой рамки страницы, а не от физического листа. У сканов и печатных макетов эти прямоугольники расходятся, и раскладка по физическому листу притащила бы на лист поля под обрез и типографские метки, а заодно посчитала бы масштаб по размеру, которого пользователь никогда не видел.
Частые вопросы
Чем раскладка в файле лучше настройки в драйвере?
Тем, что она едет вместе с документом. Настройка драйвера действует один сеанс и на чужом принтере не повторится, а готовый файл везде напечатается одинаково и на экране выглядит ровно так же.
Почему страницы на листе стоят боком?
Так ведёт себя вложение страниц, которое не смотрит на записанный в файле поворот. У нас этот угол пересчитывается отдельно, но если раскладку делал другой инструмент, повёрнутые сканы у него ложатся набок.
Насколько мельче станет текст?
На альбомном листе при двух страницах масштаб выходит около двух третей линейного размера, при четырёх — примерно вдвое меньше. Каждое следующее удвоение числа ячеек уменьшает сторону ещё примерно в полтора раза.
Останутся ли рабочими ссылки внутри документа?
Нет. На лист переносится содержимое страниц, а ссылки, поля формы и комментарии живут отдельным слоем аннотаций и не воспроизводятся. Раскладка — это печатный макет, а не редактируемая копия документа.