BASH Programming - Введение


Обработка типов данных - часть 2


driver canon-bjc210-0.1 { option { var = "MODE" desc = "Print Mode" # default_choice "Color" # раскомментируйте для установки значения по # умолчанию choice "BW" { # Часть value назначает переменной MODE все что вы захотите. # Мы будем назначать текст, который отличается для разных наборов # ключей Ghostscript для каждого из режимов value = "bj200" help = "Fast black printing with the black cartridge." desc = "Black-only" } choice "Color" { value = "bjc600" help = "Full-color printing." desc = "Color" } }

# Первый language_driver в этом файле, который соответствует результату # выполнения file(1) сообщает, что будет использовано language_driver ps { # file(1) возвращает строку "PostScript document text conforming at..." filetype_regx = "postscript" convert_exec = { gs -sDEVICE=$MODE -r360x360 \ # gs options from the database -q -dNOPAUSE -dBATCH -dSAFER \ # the "usual" Ghostscript options -sOutputFile=$OUTPUT $INPUT # process INPUT into file OUTPUT

# Последние две строки часто одинаковы для всех поддерживаемых gs # принтеров. Однако строка gs..., будет разная для каждого из # принтеров. } }

# Мы объявили тип text после postscript, потому-что команда "file" часто # описывает файл postscript как текстовый (чем он и является). language_driver text { # Нет filetype_regx; мы ищем соответствие имени драйвера: "text" convert_exec = {#!/usr/bin/perl # Программа на Perl, просто потому-что мы можем писать на нем! my ($in, $out) = ($ENV{'INPUT'}, $ENV{'OUTPUT'}); open INPUT, "$in"; open OUTPUT, ">$out"; while(<INPUT>) { chomp; print OUTPUT, "$_\r\n"; } } } }

Если вы хотите добавит что-нибудь в начало или конец всех заданий печати, или выполнить какое-нибудь преобразование любых данных любых типов, то воспользуйтесь предложением filter_exec. Наш принтер Canon не нуждается в таком предложении, но просто для примера, мы приведем простую иллюстрацию, показывающую как сделать поддержку двухсторонней печати и выбора разрешения на принтерах Laserjet или других моделях, поддерживающих PJL:




- Начало -  - Назад -  - Вперед -