У меня есть файлы ресурсов postscript для рисования объектов (флаги) в любом файле постскриптума (вдохновленный от Терри Бертона postscriptbarcode).Файлы ресурсов Postscript: как передать параметры функции?
Файлов для рисования Flaggs в подкаталоге Flaggs (без расширения .ps), вместе с некоторыми вспомогательными файлами, особенно sethexcolor
, определяющих функцией sethexcolor
, чтобы установить RGB цвета из шестнадцатеричных.
У меня есть файл sample.ps
над вложенной Flaggs с кодом:
100 600 moveto
100 /square /Flaggs findresource exec % draw a square of size 100
showpage
Файл square
имеет код:
1 dict
dup /sethexcolor dup /Flaggs findresource put
begin
/square {
/size exch def
currentpoint translate
/red (ff0000) def
red sethexcolor
% 1 0 0 setrgbcolor
} bind def
/square dup load /Flaggs defineresource pop
end
Я работаю в Windows 7 с Ghostscript 9.10. Ghostscript вызывается с параметром командной строки -P
для поиска файлов в текущей папке. (Путь поиска можно увидеть с помощью gswin32c [-P] -h в командной оболочке). Обычно это работает отлично (например, с кодом postscriptbar, см. Выше).
Но здесь это не работает: Начиная sample.ps
, я получаю сообщение об ошибке: (. После настройки RGB цвета с 1 0 0 setrgbcolor
, он работает)
Error: /undefined in sethexcolor
Operand stack:
(ff0000)
Если изменить red sethexcolor
red /sethexcolor
к или red //sethexcolor
, нет сообщения об ошибке, а квадрат нарисован - , но в черном, а не в красном.
Что случилось с этим кодом постскриптума? Почему функция square
вызывает функцию вызова sethexcolor
в той же папке?
Вольфганг
Для объяснения того, как принять ответ, см. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – Alan