Иллюстрированный самоучитель по программам Adobe

Техника работы

MAC OS/ WINDOWS/ UNIX

Сообщения об ошибках PostScript

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

Что такое ошибка POSTSCRIPT?

При печати страницы на настольном принтере или растровом процессоре RTP, поддерживающим язык PostScript, тот создает электронный файл, где страница отображается при помощи PostScript-кода. Точнее, принтер или RIP включает программу, так называемый интерпретатор PostScript, которая исполняет PostScript-файл и создает второе представление страницы (нередко называемое растровым изображением), понятное механизму принтера. Затем механизм печатает растровое изображение на бумаге или пленке.

Когда интерпретатор составляет PostScript-файл и все протекает нормально, принтер печатает соответствующую страницу или страницы. Если же с PostScript-кодом что-то не в порядке, интерпретатор воспринимает это как ошибку PostScript и вводит в действие особый код – обработчик ошибок для того, чтобы отметить данную ошибку. Обработчик записывает информацию об ошибке в память RIP и подает команду остановить обработку файла.

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

%%[ Error: <имя ошибки>; OffendingCommand: <имя команды> ] %%
  
%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%

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

RIP может генерировать другие сообщения, похожие на приведенное выше. Если сообщения имеют такой же формат, но не содержат слов Error и OffendingCommand, то скорее всего это не ошибки PostScript. Например, можно увидеть такое сообщение с меткой PostScript:

%%[ PrinterError: Media jam ]%%

Это не ошибка в PostScript-файле, обнаруженная интерпретатором, а проблема иного рода, и обнаружена другой частью системы, в данном случае механизмом принтера.

Что означают сообщения об ошибках

Чтобы исправить ошибку 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 был превышен некий лимит. Это ни о чем не говорит. Что за лимит, или хотя бы к чему он относится?

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.