С разрешения автора публикуем одну главу из книги
ЧТО ТАКОЕ POSTSCRIPT И ОТКУДА ОШИБКА?
5 «ГРЕХОВ» POSTSCRIPT 1
Язык PostScript был создан в 1982 году Джоном Уорноком в фирме Adobe как язык управления лазерными принтерами под маркой Apple. Вместе они должны были обеспечить качественный вывод графики и шрифтовых начертаний в таком виде, как их видит пользователь в своем графическом редакторе или настольной издательской системе (НИС). Надо сказать, не первый язык такого рода. Однако, прекрасно справляясь с задачами печати из офисных приложений, языки управления принтерами «до PostScript’овского» времени (типа PCL) плохо подходили для работы в зарождавшихся настольных издательских системах.
PostScript существенно отличается от предшествующих языков следующим:
- Базой описания кривых, как в символах шрифта, так и в векторной графике стали кривые Безье 2.
- PostScript-принтер не разделяет память для хранения шрифтов и рабочую область для формирования картинки, увеличивая эффективность использования памяти и разрешая загрузку произвольного числа шрифтов с произвольным количеством символов в каждом.
- PostScript является полноценным языком программирования, в отличие от предшествующих языков управления, представлявших собой линейные последовательности команд. За счет этого эффективность исполнения повышается в несколько раз.
- Чтобы обеспечить независимость описания страницы от всего разнообразия внешних растровых устройств в языке PostScript введено понятие текущей страницы. Текущая страница – «идеальная» страница в памяти, на которой «рисует» PostScript. Она не зависит от физических характеристик принтера, на который страница будет вводиться. В начале работы программы – это совершенно чистая страница. Когда текущая страница полностью описана, она посылается на принтер, который распечатывает ее с таким качеством, которое способен обеспечить.
Приведенный перечень преимуществ и особенностей языка PostScript объясняет его быстрый успех. Фирма Adobe сделала PostScript базой внутреннего кода программы Adobe Illustrator и создала на его основе формат данных EPS – encapsulated PostScript, ставший ведущим форматом межпрограммного и межплатформенного переноса векторной информации в издательских системах. EPS-файл представляет собой просто подпрограмму, которую можно поставить в PostScript-код для вывода «как есть».
С появлением лазерных устройств высокого разрешения PostScript естественным образом стал основным языком для вывода информации через эти устройства. Версия Level 2 предоставила возможность включения в PostScript информации управления выводными устройствами (цветоделение с участием смесевых красок, включение ICC-профилей цветоделения и т. д.) и расширения поддерживаемых форматов графики, включенной в PostScript (сначала был разрешен TIFF, затем JPEG, цветные изображения в модели RGB и т. д.). Но в основе своей PostScript, как язык описания графических объектов, не претерпел никаких изменений.
Однако, недостатки у языка PostScript были. И, как ни парадоксально, недостатки PostScript являются прямым продолжением его достоинств. Во-первых, PostScript является языком программирования, а не просто форматом данных. Язык содержит около 250 операторов, что позволяет одни и те же действия запрограммировать самыми разными способами. С другой стороны, разработчики не предполагали, что программы на PostScript будут большими, поэтому средства структуризации в языке не сильно развиты.
Для любого языка программирования результат работы на разных платформах и разных компиляторах (или интерпретаторах) может и, как правило, будет различаться. Не очень сильно, но будет. А в случае языка PostScript, программа – это сам файл, подлежащий выводу. Исполнение – это вывод файла. Несмотря на то, что PostScript обладает свойством независимости от типа устройства, с фотонаборным автоматом и устройством CTP ситуация не так однозначна.
В общем случае, PostScript-устройство (принтер, ФНА, СТР) – это устройство, в котором имеется интерпретатор языка PostScript – RIP (Raster Image Interpretator). Интерпретатор PostScript принимает из компьютера файл с описанием страницы и преобразует его в растровую форму, которая и выводится на печать. Фотонаборный автомат (ФНА, устройство экспонирования растра на пленку или офсетную пластину) – устройство куда более сложное нежели принтер, и работает оно с гораздо большим разрешением, а значит и объемом информации, чем принтер, поэтому его RIP более требователен к файлу PostScript. RIP в свою очередь преобразовывает данные из PostSсript-файла в битовую карту, которая записывается в TIFF-файл высокого разрешения и в таком виде отправляется на устройство экспонирования (ФНА, CTP).
Второй «грех» PostScript – плохая диагностика подстановки шрифтов. В PostScript определены три возможности работы со шрифтами: использование встроенного шрифта принтера; использование шрифта, встроенного в PostScript-файл; замена шрифта на другой в соответствии с таблицей подстановки принтера и/или таблицей подстановки, записанной в PostScript-файл. Шансы получить правильный фотовывод есть только во втором случае. Некоторые программы могут некорректно записать в PostScript информацию о подстановке или встраивании шрифта. А слабая диагностика не позволяет определить, что при генерации PostScript-файла пропущен необходимый шрифт. Как следствие, подготовленный на основании одних и тех же исходных данных файл будет успешно выведен на одном RIP, на другом «съедет» верстка, на третьем вместо текста вылезут «зюквы». И лишь четвертый, вместо того, чтобы заниматься ерундой, выдаст вам любезное сообщение «font Helvetica Сyrillic not found».
Третий «грех» кроется в кривых Безье. Кривая Безье при слишком близко расположенных опорных точках становится чрезмерно чувствительной к погрешностям округления, что порождает искажения формы контура при изменении разрешения. Отсюда известные большинству и «непонятно откуда взявшиеся» тонкие белые линии, пересекающие векторный объект.
Четвертый «грех» – это своеобразная работа с данными. PostScript готов записать в себя все, в том числе и лишнее, поэтому, даже если изображения на экране перекрываются, подавляющее большинство программ запишет в PostScript все иллюстрации целиком, взвалив на RIP труд удаления невидимой части. С одной стороны, это хорошо, поскольку сохраняет теоретическую возможность «открыть» PostScript-файл для редактирования. С другой стороны, это приводит к явной избыточности за счет хранения невидимых частей изображения. Такая избыточность, в свою очередь, приводит к неоправданному увеличению времени на растрирование, а на маломощных растровых процессорах – к сбою интерпретатора из-за нехватки памяти.
Пятый «грех» PostScript – его «нечитаемость». Для того чтобы увидеть ожидаемый результат вывода до появления формы из проявочной машины, оператору приходится либо растрировать PostScript какой-либо вспомогательной программой типа Acrobat Distiller, сохраняя известную долю сомнения в достоверности результата проверки, либо просматривать «preview» на RIP, тратя драгоценное время выводного устройства.
Notes:
- Теоретическая часть данного подраздела написана на основе статьи Алексея Моисеева «PostScript умер да здравствует PDF?!» с любезного разрешения редакции журнала «Publish» ↩
- Кривая Безье, названная в честь ее создателя, Пьера Безье является на сегодня стандартом для описания векторных объектов в настольных издательских системах. Популярность она заслужила благодаря своему оригинальному способу описания. Контур кривой формируется между двумя опорными точками – узлами и исходящими из них двумя направляющими. Отрезок между двумя узлами называется сегмент. Направляющие, в свою очередь, могут изменять свое направление и размер. Форма сегмента зависит от взаиморасположения направляющих соответствующих узлов и от размера самих направляющих. Сама кривая может состоять из сколько угодно большого количества сегментов, быть замкнутой или разомкнутой, а также иметь такие свойства как заливка и абрис (обводка).
Описание векторного объекта с помощью кривой Безье, помимо существенного сокращения времени на обработку его графики, представляет из себя очень мощный и удобный инструмент для работы с векторным объектом. ↩
[…] уже писали о книге Нины Устиновой «100 советов по допечатной […]
[…] также приобрести ее книгу в бумажном […]