Я надеюсь, гуру Postscript поможет мне понять этот код
Фрагмент
1 dict dup /MediaPosition null put setpagedevice
Создать словарь, содержащий один элемент {MediaPosition: null}
; объединить содержимое этого небольшого словаря со словарем pagedevice.
userdict /lms currentpagedevice /InputAttributes get 1 known { 1 }{ 0 }ifelse put
Получить словарь, хранящийся под ключом InputAttributes
из текущего словаря устройства страниц. Если в словаре InputAttributes
есть ключ с именем 1
(ключи словаря InputAttributes
- это все числа, в которых словари хранятся в виде значений), тогда установите значение lms
в пользовательском словаре на 1
иначе 0
. (Т.е. сохраните этот 0 или 1 ключ.)
currentpagedevice /InputAttributes get lms get setpagedevice
В текущем словаре устройства страниц снова получите словарь InputAttributes
и найдите числовой ключ, который мы сохранили в переменной lms
(теперь это символ в userdict). Какой бы словарь вы не вернули (от ключа 0
или ключа 1
), объедините этот словарь в словарь устройства страниц.
т.е. если определение лотка 1 существует, выберите его, в противном случае по умолчанию используется определение лотка 0. Символ lms
может не иметь здесь никакого внутреннего значения, он может быть просто временным. Однако, если это так, то мы могли бы заменить эти две строки на что-то вроде:
currentpagedevice /InputAttributes get dup 1 known { 1 }{ 0 }ifelse get setpagedevice
Так что либо они хотели, чтобы lms
продолжал существовать за пределами этого использования, либо им просто было не очень удобно с PostScript!
Поскольку фрагменты приведенного выше кода появляются в PPD-файлах Lexmark, я предполагаю, что это означает «LexMark Systems» или что-то подобное, и что этот сценарий мог быть создан на принтере Lexmark до Ricoh.
Может быть стандартный способ выбора устройств в трее, которые вы можете обнаружить, изучая файлы PPD.