Препроцессоры

Вы можете изменить исходный документ до того, как его страницы будут размещаться на листе: переставить, добавить или удалить страницы, повернуть их или изменить боксы. Это делается в панели Препроцессоры:

Панель препроцессоров в Imposition Wizard

По умолчанию она пуста, но вы можете добавить препроцессоры с помощью кнопки Плюс в правом верхнем углу панели:

Добавление препроцессора в Imposition Wizard

После добавления препроцессора он отображается в списке в верхней части панели. Вы можете добавить несколько препроцессоров с помощью кнопки Плюс и удалить их с помощью кнопки Минус. Больше действий с препроцессорами доступно во всплывающем меню, появляющемся по клику правой кнопки в списке препроцессоров: к примеру вы там можете менять их порядок. Препроцессоры можно временно отключать, убирая галку слева от их названия в списке.

Свойства выбранного препроцессора отображаются в нижней части панели.

Как Работают Препроцессоры

Каждый препроцессор выполняет некоторые операции с документом. Он может клонировать страницы, вращать их, как–то перемешивать итп.

Если в списке есть несколько препроцессоров, то каждый обрабатывает результат работы предыдущего. Таким образом, препроцессоры формируют цепочку изменений документа от исходного документа до финальной версии, которая идет в спуск.

Ошибки Препроцессора

Некоторые конфигурации параметров препроцессоров могут быть неработоспособны. В этом случае, препроцессоры будут сообщать об ошибках путем размещения специальной метки в списке в панели препроцессоров, а также при помощи более детальной текстовой информации в нижней части панели.

Ошибки препроцессора также отображаются в окне Предварительной Проверки.

Встроенные Препроцессоры

Imposition Wizard поставляется с набором встроенных препроцессоров, но вы также можете создать свои собственные при помощи скриптов (ниже о них есть отдельный раздел). Здесь же мы пока обсудим встроенные препроцессоры:

Информация

Это очень простой препроцессор, который ничего не делает с документом. Вместо этого он отображает количество страниц и размеры боксов для документа на текущем этапе обработки.

Препроцессор полезен для просмотра свойств документа. Вы можете добавить его как первый элемент цепочки, чтобы увидеть, что находится в исходном документе. Вы также можете добавить его как последний элемент, чтобы увидеть результат обработки.

Копии Страниц

Этот препроцессор позволяет дублировать страницы. У него есть два параметра Правила и Повторять для всех страниц.

Параметр Правила позволяет ввести несколько чисел, разделенных пробелами. Что-то вроде “2 1 3”. Imposition Wizard использует строку правил для дублирования страниц исходного документа. Для этой конкретной строки правил “2 1 3” он возьмет две копии первой страницы документа, одну копию второй и три копии третьей.

Когда он достигнет конца строки правил, он проверит другой параметр Повторять для всех страниц. Если он включен, Imposition Wizard начнет с начала строки правил, если нет — он просто остановится на этом.

N + 1 Страница

Этот препроцессор берет страницу и делает ее лицевой или оборотной стороной всех остальных. Это полезно, если исходный документ состоит из всех лицевых сторон и одной копии оборота, которую надо поставить позади всех лицевых страниц.

У него есть два параметра Использовать страницу и В качестве, которые позволяют вам настроить, какую страницу использовать в качестве лицевой или оборотной стороны других.

Вы можете использовать отрицательный номер страницы, если хотите отсчитывать от конца документа.

Использование нулевых или выходящих за пределы диапазона номеров страниц приводит к ошибке.

Разделить Страницы

Этот препроцессор позволяет вам оставлять некоторые страницы исходного документа и отбрасывать все остальное. Например, это полезно для отделения обложки от внутренних страниц брошюры.

У препроцессора есть два параметра Список страниц, которые оставить и Инвертировать. Список страниц — это строка, в которую вы помещаете номера страниц, разделенные пробелами. Все введенные вами номера страниц остаются, а все, что вы не ввели, удаляются из документа. Вы можете использовать один и тот же номер страницы несколько раз, фактически клонируя эту страницу. Вы также можете использовать отрицательные числа для отсчета страниц с конца документа.

Вы можете задавать интервалы страниц при помощи синтаксиса “от..до”. Скажем, “1..4” означает “страницы с 1 по 4”, "-3..-1" означает “последние 3 страницы” и “1..-1” означает “все страницы”.

Диапазоны могут быть и обратными, например, “3..1” означает “страницы 3, 2, 1”. Это дает интересную возможность развернуть страницы в документе, указав "-1..1" что означает “все страницы от последней до первой”.

Используйте опцию Инвертировать, чтобы удалить перечисленные страницы и оставить все остальные. Обратите внимание, что в этом случае порядок страниц в строке правил не имеет значения.

Изменить Бокс

Этот препроцессор не меняет порядок страниц. Вместо этого он позволяет вам изменять боксы страниц. Он берет один из боксов страницы (media, crop, bleed, trim или art) в качестве базового, а другой (trim или bleed) в качестве целевого. После этого вы указываете смещения от базового бокса, а также направление этих смещений, а Imposition Wizard вычисляет результат и помещает его в целевой бокс страницы.

Это полезно для перенастройки бокса обрезки или настройки вылетов, хотя для вылетов есть отдельный препроцессор (см. ниже).

Задать Вылеты

Это очень простой препроцессор, который берет бокс обрезки страницы (trim box), добавляет указанное вами смещение и помещает результат в bleed box, по сути определяя вылеты.

Вы можете сделать то же самое, используя препроцессор Изменить Бокс, но этот препроцессор проще.

Размер Страниц

Этот препроцессор позволяет масштабировать страницы на основе их trim боксов.

Параметр Режим позволяет переключаться между относительным и абсолютным масштабированием. Первый позволяет указать коэффициент масштабирования в процентах, а второй требует ввода целевых размеров страницы.

Размеры входной и выходной страницы отображаются в нижней части панели.

Центрирование

Этот препроцессор не масштабирует страницу, а вместо этого изменяет пространство, которое она занимает на листе. Допустим, у вас есть несколько страниц немного разного размера, меняющегося от страницы к странице. Этот препроцессор делает все страницы одного размера, выравнивая их по центру указанной области.

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

Повернуть Страницы

Этот препроцессор может поворачивать все страницы, или только альбомные, или портретные на заданный угол.

Это помогает подготовить документ, составленный из разных страниц, где страницы могут быть повернуты по–разному. Скажем, вы можете выбрать все горизонтальные страницы и повернуть их на 90°, чтобы сделать все страницы вертикальными.

Скриптовый Препроцессор

Вы можете добавить скриптовый препроцессор точно так же, как и другие: при помощи кнопки Плюс в правом верхнем углу панели.

После добавления скриптового препроцессора вы увидите пустое текстовое поле и сообщение об ошибке, что скрипт не создал страниц. Пока не очень хорошо, но мы скоро разберемся.

Imposition Wizard использует JavaScript для скриптовых препроцессоров, и вам нужно изучить основы этого языка, чтобы использовать эту функцию. Далее мы предполагаем, что вы можете писать код на JavaScript.

Ниже приведен простейший скрипт препроцессора:

for (const page of iw.pages)
    iw.add(page);

Этот скрипт пробегается по всем страницам документа и добавляет в выходной список каждую страницу только один раз. Теперь давайте немного изменим его:

for (const page of iw.pages) {
    iw.add(page);
    iw.add(page);
}

Вы можете заметить, что с таким скриптом страницы в документу дублируются. Причина в том, что каждая страница теперь добавляется в выходной список дважды.

Рассмотрим API скриптов:

Итак, давайте посмотрим, что у нас уже есть. Все входные страницы препроцессора поступают как массив, который вы можете обойти в цикле и получать отдельные страницы в виде объектов. Затем вы можете отправить эти объекты в выходной список препроцессора, используя специальный метод. Собственно, именно это мы и делали в примерах выше.

Давайте продолжим изучение API, для начала получим первую страницу документа:

const p = iw.pages[0];

Каждая страница — это объект, и вот свойства объекта страницы:

А вот методы объекта страницы:

Методы выше требуют некоторых комментариев. Прежде всего, объект страницы, который вы получаете из iw.pages, является обычным объектом JavaScript, поэтому если вы измените его, все остальные его копии также изменятся.

Например, представьте, что вы сделали это в скрипте:

const p1 = iw.pages[0];
const p2 = p1;
p1.angle = 90;

Что вы получите в p2.angle? Вы получите 90, так как p2 на самом деле то же самое, что и p1. Обе переменные ссылаются на один и тот же объект, поэтому изменение одного объекта также изменяет и другой.

Вот почему вам нужен метод clone(). Вот измененный код:

const p1 = iw.pages[0];
const p2 = p1.clone();
p1.angle = 90;

Теперь p2.angle не изменяется при изменении p1.

Обратите внимание, что вызов clone() на самом деле не клонирует страницы ни в исходном, ни в выходном списке страниц препроцессора. Он просто создает копию страницы в памяти, которая ничего не делает, пока не будет добавлена в выходной список при помощи iw.add().

Используйте метод clone(), если хотите добавить одну и ту же страницу несколько раз, при этом нужно изменить ее параметры в процессе. Если вы просто хотите изменить страницу и добавить ее один раз, вам не нужно ее клонировать, просто измените тот объект, что вы получили из iw.pages.

Метод p.scalePage(width, height) довольно прост: он берет trim бокс страницы и изменяет его размер до заданных размеров (в поинтах). Затем он пропорционально масштабирует все остальные боксы.

Методы p.box(name) и p.setBox(name, box) немного сложнее. p.box(name) поддерживает следующие названия боксов: “media”, “crop”, “bleed”, “trim”, “art” (названия чувствительны к регистру). Метод возвращает массив из 4 чисел, содержащих левую, нижнюю, правую и верхнюю позиции указанного блока:

const trim = p.box('trim');
// trim = [10, 10, 100, 100] - просто пример

Важно: страницы в PDF–файле могут быть повернуты, см. параметр p.angle выше. Боксы, с которыми работают эти два метода, не учитывают угол поворота страницы, поэтому порядок чисел в массиве может быть не совсем очевидным, если страница повернута.

Затем вы можете изменить блок нужным вам образом и присвоить его странице при помощи метода p.setBxox(name, box). Обратите внимание, что таким образом можно изменить только боксы “trim” и “bleed”.

Поскольку наиболее распространенной операцией с боксами является их настройка с использованием одного из них как базового, в Imposition Wizard есть специальный вспомогательный метод:

// сделать обрезы
const trim = p.box('trim');
const bleeds = iw.expandBox(trim, 10, 10, 10, 10);
p.setBox('bleed', bleeds);

Метод iw.expandBox(box, left, bottom, right, top) принимает бокс как массив из 4 чисел, а также 4 смещения (в поинтах), которые он прибавляет к значениям бокса и возвращает результат.

Вот несколько примеров скриптов:

// Препроцессор N+1 Страницы
for (let i = 1; i < iw.pages.length; i++) {
    iw.add(iw.pages[0]);
    iw.add(iw.pages[i]);
}

// повернуть все горизонтальные страницы на 90º
for (const page of iw.pages) {
    if (page.landscape && page.angle % 180 == 0)
        page.angle += 90;
    iw.add(page);
}

// выкинуть нечетные страницы
for (let i = 0; i < iw.pages.length; i++) {
    if (i % 2 != 0)
        iw.add(iw.pages[i]);
}

// удалить вылеты
for (const page of iw.pages) {
    const box = page.box('trim');
    page.setBox('bleed', box);
}

Свяжитесь с нами, если вам нужен скрипт, который здесь не описан, и вы не можете сделать его самостоятельно.

Больше Документации по Imposition Wizard

Установка

Основы

Раскладки

Параметры Спуска

Типографские Метки

Автоматизация

Работа из Командной Строки

Другое