Чтобы исправить ошибку PostScript, следует что-то предпринять, но для этого нужно понимать смысл выводимых сообщений:

%%[ Error: limitcheck; OffendingCoiranand:

sethalftone ]%%

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

Познакомившись с типами команд и ошибок языка PostScript, Вы научитесь приходить к более определенным выводам. Официальной спецификацией языка PostScript является руководство «PostScript Eanguage Reference Manual» (второе издание). Там приводится описание всех стандартных команд и ошибок, которые встречаются в языке PostScript Eevel 2. Стандартные команды называются операторами. В разделе 8.1, «Operator Summary», собраны все операторы, сгруппированные по 24 категориям. Там содержится также краткий обзор 30 возможных ошибок PostScript.

Анализируя сообщение об ошибке, обратите внимание на вызвавшую сбой команду (OffendmgCommand), это позволит определить, какой оператор не сработал. Прежде всего взгляните на имя ошибки. В обоих случаях держите под рукой Раздел 8.1. Само по себе только имя ошибки без сбойной команды бессмысленно. Например, ошибка limitchek означает, что в структуре RIP был превышен некий лимит. Это ни о чем не говорит. Что за лимит, или хотя бы к чему он относится? Сбойная команда

Выражение OffendmgCommand показывает, какой именно PostScript-оператор дал сбой. Все операторы можно разделить на две группы: влияющие на внешний вид страницы и не влияющие. Операторы первой группы влияют, в частности, на объекты трех типов, поддерживаемые языком PostScript, — текст, графика (здесь и далее под этим подразумевается векторная графика) и изображения (растровые картинки, созданные на компьютере или оцифрованные путем сканирования). Различие между этими группами весьма существенно: чтобы исправить ошибки, вызванные операторами первой группы, достаточно модифицировать документ в программе, где он был создан. Операторы второй группы используются при программировании PostScript-файла, и, чтобы понимать их и устранять возникающие проблемы, требуется серьезный опыт работы с языком PostScript.

Операторы первой группы, в свою очередь, могут быть разбиты на категории (см. табл. 1), как указано в Разделе 8.1 руководства «PostScript Language Reference Manual». Категории эти следующие: Graphics State, Device-Independent (состояние графики, аппаратно-независимые); Graphics State, Device-Dependent (состояние графики, аппаратно-зависи-мые); Path Construction (построение контуров); Painting (закрашивание); Form and Pattern (формы и орнамент); Device Setup (настройка устройства); Character and Font (символы и шрифты). Эти семь категорий насчитывают довольно много операторов, но следует иметь в виду, что одни из них используются чаще, другие реже. Например, оператор рисования fill встречается весьма часто, поскольку применяется для закрашивания графики, а специфичный оператор ueofill — редко.

Увидев в выражении OffendingCommand имя оператора, найдите в Разделе 8.1 руководства его категорию. Это поможет определить тип операции, вызвавшей ошибку. Например, оператор show относится к категории Character and Font, поэтому, если Вы увидите ошибку, где сбойная команда представлена оператором show, можно подозревать, что проблема связана с текстом PostScript-файла. Табл. 1 содержит перечень категорий операторов, их краткое описание и общие примеры.