2. Проблемы с векторными объектами.
2.1 Векторный объект, помещенный под прозрачным или полупрозрачным растровым фоном. Если допечатник родился под счастливой звездой и все остальные ошибки и недочеты PostScript могут и не проявиться на фотовыводе из-под его легкой руки, то векторный объект, помещенный под прозрачным или полупрозрачным растровым фоном проявится во всей своей «красе» всегда. Фирма Adobe, как законодательница стандарта, еще не решила эту коллизию на программном уровне. И все остальные производители допечатного программного обеспечения тоже. Поэтому эту проблему до сих пор приходится решать только вручную. «Глюк» выглядит следующим образом: та часть векторного объекта, которая помещена под полупрозрачный или полностью прозрачный растровый фон, вместо того, чтобы, как ей и положено, иметь ровные гладкие края своих контуров, подвергается грубой растеризации с приобретением явно видных и очень некрасиво выглядящих ступенчатых краев. Решений есть три: либо просто поместить векторный объект над растровым фоном, либо маскировать растровый фон, чтобы он не находил на векторный объект, либо, если вышеперечисленное невозможно (допустим, объект прикрыт градиентом полупрозрачности и постепенно исчезает под растровым объектом), то надо вручную растрировать группу «векторный объект–растровый объект» в один растровый объект, желательно уже непрозрачный.
2.2 Полигональные кривые (Polygon), базовые формы (Basic Shapes), художественные кисти (Artistic Brushes) – суть формулы, несмотря на свою простоту. Могут посчитаться правильно, а могут и изменить свою форму до неузнаваемости. Когда их мало, и они простые, ведут себя смирно. Когда их много и/или они сложные – начинают вести себя непредсказуемо- меняют форму или исчезают. Поэтому их надо конвертировать в простые кривые (Convert to curves).
2.3 Масштабируемая обводка/абрис. (Outline Scaled with image) – тоже суть формула, только формула вычисления зависимости толщины обводки от масштаба объекта. Очень удобная опция для дизайнера: задал соотношение толщины контура по отношению к пропорциям у объекта, и можно изменять его размеры как угодно, не боясь за нарушение этой пропорции. Может посчитаться правильно, а может и изменить свою форму до неузнаваемости. Одним из самых интересных «глюков», которые мне довелось наблюдать – это частичное исчезновение обводки вдоль контура. На одном сегменте кривой обводка есть, а на следующем – нет. Когда таких объектов мало, и они простые, ведут себя смирно. Когда их много и/или они сложные – начинают вести себя непредсказуемо. Так как мы уже готовим файл на фотовывод, а значит все объекты уже прошли стадию утверждения их положения и
размера в изображении, и мы точно знаем, что масштабировать эти объекты мы не будем, то мы просто отключим эту опцию у каждого объекта. Тогда размер обводки зафиксируется в виде четко определенной константы размера, который в данный момент имеет обводка, а не в виде формулы вычисления.
2.4 Спецэффекты – смешивание (Blend), контур (Contour), искривление (Distortion), перспектива (Envelope), объем (Extrude), текст вдоль кривой (Fit text to path) и т.п. Мне и самой нравится эта категория векторных спецэффектов за их красивый и быстрый результат. Также за свою бытность допечатником я насмотрелась на большое разнообразие непредсказуемых и абсолютно не имеющих ничего общего с исходным изображением результатов их обработки. Поэтому я сначала привожу эти спецэффекты к простому виду командой Expand/BreakApart, а затем, если мне показалось, что объектов, полученных в результате данного преобразования, получается неприлично много, произвожу операцию Rasterize/Convert to bitmap.
2.5 Незамкнутая кривая. В этом случае PostScript (а мы, несмотря на PDF, по сути имеем дело именно с ним) может двояко интерпретировать, заливать незамкнутую кривую или нет, даже если ей изначально присвоена ненулевая заливка (и, не дай Бог, если еще и заливка будет непростой). Поэтому не полагаясь на авось, замкните кривую, если вы хотите, чтобы там 100% появилась заливка.
2.6 Количество узлов в кривой Безье >2000 узлов. Напрашивается риторический вопрос, зачем так много? Еще 10 лет назад существовало четкое правило – не более 1000 узлов на 1 кривую. Иначе… здесь варианты: произвольное изменение формы, грубая растеризация, просто невывод формы из-за ошибки, зависание и т.п. Причина одна – программные ограничения на обработку такого большого количества узлов. Связаны с особенностями синтаксиса языка PostScript. В общих словах, обработка каждого объекта в PostScript делится на маленькие этапы, результат каждого этапа записывается в стек – временное хранилище данных. Стек имеет фиксированный размер, достаточный для обработки подавляющего большинства объектов. Однако, как понимаете, размер стека фиксирован, а значит, ограничен. Как только объект прошел все свои стадии пошаговой обработки, все результаты вычислений последовательно извлекаются из стека и объект начинает прорисовываться на странице. Допустим, в стек можно поместить до 500 промежуточных этапов (цифры взяты для наглядности). А произошло так, что наша многоточечная кривая обрабатывается полностью, допустим, за 501 этап. 1 этап, который не поместился в стек, создает коллизию – объект полностью не может обработаться, а ячеек стека уже не хватает для его обработки. А без команды окончания обработки данные не будут извлекаться из стека. А команда конца обработки не может быть выполнена, потому что 1 операция не завершена. Эта проблема так и называется в программировании «переполнение стека», в простой речи – «закончилась память». Тогда программа запускает процесс разрешения коллизии – это очень сложный алгоритм. В результате мы видим куски грубо растрированной кривой или изменение ее формы. Решение всегда было одним – приведение кривой к группе простых кривых с количеством узлов в каждой <1000. Очень ювелирная работа. С появлением PostScript 2 проблема вроде как исчезла. Не совсем. Они увеличили размер стека, но стек по определению должен обязательно иметь фиксированную, а значит, ограниченную, длину. Довольно-таки мощный RIP-процессор, работающий с PostScript 3 «выдал» весьма оригинальный результат частичной растеризации таких объектов при следующих условиях. Каждый объект состоял из 5000 узлов. На листе таких объектов было 7 и они занимали всю площадь листа, т.е. были крупные по размеру. В изделии присутствовали еще некоторое множество других объектов, помимо этих 7-и. Это был плакат 700×500 мм. Комментарии, думаю, излишни.
2.7 Толщина объекта или обводки меньше 0,1 мм. Другой риторический вопрос: зачем так тонко? Линию тоньше 0,1 мм офсетная машина плохо пропечатает, даже если объект есть на форме. А если обводка 0,1 мм цветом, допустим, C100M0, поставлена на объект цвета, допустим С50M100, а объект поставлен на фон С100M100, то машина ее пропечатает, но вы ее не увидите на оттиске – она у вас в глазу «сольется» с фоном. Поэтому, если это не тангирный узор (0,035 – 0,05 мм), все обводки размером < 0,1 мм доводим до размера 0,1 мм.
2.8 Текстурная заливка (Texture fill), заливка-узор (Pattern Fill), сеточная заливка (Mesh fill). Красиво, удобно и… очень проблематично. Даже не пытайтесь надеяться, что все будет хорошо. Может быть вам повезет 1 раз, может быть 2, может быть N раз. Но на N+1-й раз это обязательно станет причиной ошибки, материальных потерь и неприязненных взглядов заказчика. Поэтому, как только встретили их, так Rasterize/Convert to bitmap.
[…] уже писали о книге Нины Устиновой «100 советов по допечатной […]
[…] также приобрести ее книгу в бумажном […]