Если возможно, это то, что обычно включает в себя производитель.Это требует, чтобы принтер знал, какой лоток содержит какой носитель.Некоторые принтеры имеют эту информацию, а некоторые нет.Конечно, для некоторых принтеров это исправлено.
Для ваших подробных вопросов: 1) Ключ / PageSize в словаре устройства страницы имеет текущий запрашиваемый размер носителя.Оператор setpagedevice используется для запроса медиа (среди прочего).если ваш файл PostScript не содержит операторов выбора мультимедиа (setpagedevice и т. д.), тогда он может содержать комментарии, которые дают BoundingBox.Большинство переводчиков игнорируют их (это комментарии), но некоторые могут позволить вам их обработать.Как правило, это сильно зависит от устройства.
Нет способа (в PostScript) получить ограничивающий прямоугольник страницы, если задание не определяет его, это потому, что его допустимо (и для принтеров требуется кровотечение)) чтобы выходной файл PostScript покрывал большую область, чем запрошенный / намеченный носитель.
2) Выбор определенного лотка обычно зависит от устройства, вам необходимо знать, как это делает ваше устройство.Я хотел бы думать, что производители уважают ключ MediaPosition в словаре устройства страницы, но опыт говорит, что это маловероятно.YMMV
3) PPD может (или не может) включать код переключения лотков, вам нужно будет посмотреть на PPD и выяснить его.Что касается выбора полного лотка, если существующий является пустым, это действительно выходит за рамки программы PostScript и зависит от реализации производителя.На устройствах языкового уровня 3 клавиша TraySwitch в словаре устройства страницы управляет автоматическим переключением лотков, см. Справочное руководство по языку PostScript (3-е издание) p403, так что, поскольку у вас есть устройство уровня 3, вам может повезти.
Поскольку вы уже используете CUPS, вы можете запустить оригинальный PostScript / PDF через Ghostscript, используя устройство bbox, которое даст вам ограничивающий прямоугольник с метками на странице.Пока вы достаточно уверены, что вы (или ваши пользователи) не устанавливаете отметки за пределами носителей.Тогда вы могли бы использовать эту информацию, чтобы выбрать правильный «принтер», я думаю.
Предостережение: я очень мало знаю о CUPS.