Фильтром называется программа, используемая для следующих целей:
Не все фильтры выполняют все три задачи. В связи с тем, что эти задачи связаны с принтером, служба печати была создана таким образом, что эти задачи могут выполняться по очереди. Вследствие этого как вы, так и производитель принтеров может создавать фильтры не внося изменений в службу печати.
По умолчанию со службой печати поставляется фильтр по умолчанию, обнаруживающий простые неполадки принтера. Этот фильтр не выполняет операции преобразования файлов и не работает с особыми режимами. Несмотря на это стандартного фильтра может быть достаточно для выполнения ваших задач.
Служба печати выполняет следующие операции с фильтрами:
Примечание: Добавление, изменение и удаление фильтров может привести к отмене запросов на печать, находящихся в очереди. Это происходит из-за того, что служба печати проверяет все запросы печати; в процессе проверки могут быть обнаружены запросы, на которые повлияло изменение фильтра. Выполнение запросов, которые не могут быть напечатаны вследствие удаления или изменения фильтра, отменяются; пользователям, создавшим запросы, отправляется уведомление об отмене запроса. В связи с необходимостью проверки всех находящихся в очереди запросов, при изменении фильтров могут возникнуть задержки обработки новых или измененных запросов на печать. Эти задержки могут существенно повлиять на производительность системы при большом количестве фильтруемых запросов.В связи с этим рекомендуется производить изменения фильтров во время простоя службы печати.
Задача 1: Преобразование файлов
Для каждого локального или удаленного фильтра можно указать типы печатаемых файлов. При создании запроса на печать файла, пользователь указывает тип файла, а служба печати находит принтер, печатающий файлы этого типа. Так как приложения создают множество файлов для разных принтеров, такого определения типов файлов может быть достаточно. Однако, некоторые приложения создают файлы, которые не могут быть напечатаны с помощью ваших принтеров.
Эту проблему можно решить с помощью фильтра, преобразующего такие файлы в файлы поддерживаемого принтером типа. (Служба печати содержит несколько фильтров, осуществляющих преобразование нескольких типов файлов в PostScript.) Для каждого фильтра, добавляемого в систему, необходимо указать тип входных данных (один или несколько) и тип выходных данных (обычно один).
Если пользователь указывает (с помощью команды lp -T) тип файла, не обрабатываемый ни одним из принтеров, служба печати производит поиск фильтра, преобразовывающего этот файл в поддерживаемый принтерами тип. Если файл обрабатывается с помощью фильтра, служба печати сравнивает тип выходных данных этого фильтра с типами принтеров или с типами входных данных других фильтров. Это происходит до тех пор, пока тип файла не совпадает с типом хотя бы одного из принтеров.
В этом примере пользователь Крис запусти программу работы с электронными таблицами и создал файл, содержащий копию электронной таблицы. Крис хочет распечатать этот файл с помощью службы печати. В системе есть только принтеры HP DeskJet 500. К счастью, приложение, в котором работает пользователь, может создавать вывод для различных принтеров и Крис знает, что необходимо создавать вывод, отрабатываемый принтером HP DeskJet 500. Когда Крис отправляет файл на печать, служба печати заносит его в очередь для одного из принтеров; фильтр не требуется.
В этом примере пользователь Марти создал рисунок, отображаемый на терминале Tektronix 4014. Марти хочет распечатать этот рисунок, но к системе подключены только принтеры PostScript. К счастью в системе есть фильтр posttek, преобразовывающий файлы типа Tektronix в PostScript. Так как установлен тип принтеров PostScript, служба печати использует фильтр posttek для преобразования данных Марти перед их печатью.
Задача 2: Обработка специальных режимов
С помощью фильтров можно обрабатывать особые режимы печати. Для каждого фильтра, добавляемого в таблицу фильтров, регистрируется обрабатываемый им особый режим и другие свойства печати, такие как:
Фильтр необходим для обработки особых режимов и печати определенных страниц; для обоих задач служба печати предоставляет обработчики по умолчанию. Однако, более эффективным будет наличие специального фильтра, выполняющего эти задачи, так как очень часто для выполнения задач фильтру необходимо знать значения различных параметров. Фильтру, например, в случае необходимости разбиения на страницы, может быть необходима информация о длине страницы и интервале. Некоторые принтеры обрабатывают печать нескольких копий быстрее, чем служба печати; так что если фильтр, управляющий принтером имеет информацию о количестве к опий, он отменяет обработку копий службой печати и передает ее принтеру.
Задача 3: Определение неполадок принтера
Так же как преобразование файлов и обработка особых режимов, определение неполадок является задачей, связанной с принтером. Служба печати пытается найти общие неполадки, и, в большинстве случаев, обнаруживает неполадки правильно. Однако, служба печати может обнаруживать лишь некоторое, ограниченное количество различных ошибок. Она может определять разрыв связи (потерю несущей частоты, сигнала, указывающего, что принтер подключен) и задержки печати (получение символа управления потоком XOFF, отключающего поток данных, без получения соответствующего ему символа XON, включающего поток данных). Однако, служба печати не обнаруживает причину неполадки и не может предложить вам способ ее разрешения.
С помощью фильтров вы можете обеспечить лучшую обработку ошибок. Некоторые принтеры отправляют программе сообщение, описывающее причину неполадки. Некоторые принтеры сигнализируют о потере несущей частоты или об отключении потока данных. С помощью фильтров вы сможете получать больше информации о неполадках и методах их решения, чем любым другим способом.
При обнаружении ошибки фильтр может остановить печать до ее исправления, а затем продолжить печать. Таким образом повышается эффективность печати, так как не приходится полностью перепечатывать прерванный запрос. Только фильтр, имеющий доступ к информации об используемых принтером управляющих последовательностях, может знать о разбиении файла на страницы. Следовательно только такой фильтр может продолжить печать файла после исправления ошибки с той точки, где печать была приостановлена.
Служба печати содержит простой интерфейс, позволяющий фильтру отправлять информацию о неполадке и продолжать печать после ее исправления. Механизм предупреждения, Настройка предупреждений о сбоях принтера, обрабатывается службой печати; интерфейсная программа, управляющая фильтром, получает все сообщения об ошибках, отправляемые фильтром, и помещает их в предупреждающее сообщение, отправляемое вам. Если принтер настроен таким образом, что печать автоматически продолжается после исправления неполадки, интерфейсная программа оставляет фильтр активным, так чтобы печать была продолжена с той точки, в которой она была остановлена.
В качестве фильтров можно использовать такие программы, как troff, nroff или схожие с ними программы текстовой обработки. Однако, программы troff and nroff создают в исходном файле ссылки на другие файлы, называемые включаемыми файлами. Служба печати не работает со включаемыми файлами; следовательно, все файлы, ссылки на которые существуют в исходном файле, не будут включены в очередь печати. Таким образом может произойти сбой программ troff or nroff. Большинство программ работают таким же образом, что ограничивает их использование в качестве фильтров.
Ниже приведено несколько рекомендаций по использованию программ в качестве фильтров:
Определите, ожидает ли программа передачи каких-нибудь файлов кроме тех, которые будут отправляться пользователями. Если да, то рекомендуется скопировать эти файлы в каталог пользователя, применяющего эти фильтры, или же предоставить всем пользователям фильтра права доступа к этим файлам. Эти требования возникают из-за того, что фильтры запускаются с ИД пользователя и ИД группы пользователя, создавшего запрос на печать.
Файлы, на которые существуют ссылки, для которых указано полное имя могут быть доступны для программы, но только в том случае, если фильтр используется для локальных запросов на печать. При выполнении удаленных запросов все еще может произойти сбой программы, так как файлы могут существовать только на удаленной машине.
При добавлении нового фильтра необходимо описать некоторые его характеристики. Для этого необходимо выполнить команду lpfilter, указав значения следующих характеристик:
Дополнительная информация приведена в разделе Добавление фильтра в службу печати.
Описания фильтров, которые могут как храниться в файле, так и вводиться с командной строки, имеют следующий формат:
Команда: команда-полное_имя [опции] Типы входных данных: список-входных-типов Типы выходных данных: список-выходных-типов Типы принтеров: список-типов-принтеров Принтеры: список-принтеров Тип фильтра: fast или slow Опции: список-шаблонов
Информация может быть показана в любом порядке. Необязательно предоставлять всю информацию. Если для указанных ниже элементов значения не заданы, применяются значения по умолчанию.
Элемент | Значение по умолчанию |
---|---|
Команда: | (нет значения по умолчанию) |
Типы входных данных: | any |
Типы выходных данных: | any |
Типы принтеров: | any |
Принтеры: | any |
Тип фильтра: | slow |
Опции: | (нет значения по умолчанию) |
Значения по умолчанию определяют очень гибкий фильтр, так что для конкретизации рекомендуется задавать хотя бы значения типов входных и выходных данных. При вводе списка, элементы необходимо разделять пробелами либо запятыми, если это не список-шаблонов. Элементы списка-шаблонов обязательно должны разделяться запятыми.
Ниже приведено краткое описание каждой характеристики:
Если существуют опции, которые всегда будут использоваться программой, их необходимо включить в этот пункт.
Служба печати не накладывает ограничения на число типов входных данных, обрабатываемых фильтром; однако большинство фильтров обрабатывают только один тип. Для того, чтобы фильтр обрабатывал несколько типов данных, необходимо, чтобы типы данных были схожи между собой. В качестве типа можно указывать любое имя состоящее не более чем из 14 цифр, букв и дефисов (но не символов подчеркивания). Так как по данному вами описанию служба печати будет определять типы файлов, рекомендуется придерживаться соглашения о присвоении имен. Например, если несколько фильтров обрабатывают файлы одного типа, в обоих фильтров тип файлов необходимо задавать одним и тем же именем. Рекомендуется во избежание разногласий сообщить пользователям об используемых именах.
Для каждого типа входных данных существует один тип выходных данных. Тип выходных данных, однако, может изменяться в зависимости от задания. Типы выходных данных также должны состоять не более чем из 14 символов, цифр и дефисов.
Эти имена должны совпадать либо с типами принтеров системы, либо с типами входных данных других фильтров. Если для печати файла необходимо несколько файлов, служба печати объединяет несколько фильтров в конвейер. Рекомендуется создать такой набор фильтров, в котором каждый из типов файлов, создаваемых пользователями, был был типом входных данных хотя бы для одного из фильтров.
В большинстве случаев список совпадает со списком типов выходных данных.
Например, в системе может существовать принтер, которому в целях успешности инициализации присваивается только один тип данных, см. Типы принтеров, но принтер при этом умеет обрабатывать и другие типы данных. В таком случае в принтере существует внутренний фильтр, преобразовывающий данные нескольких типов в один тип, обрабатываемый принтером. Таким образом фильтр должен выдавать данные одного из типов файлов, обрабатываемых принтером. Отметьте фильтр, как работающий с принтером этого типа.
В другом случае в системе могут быть две модели принтеров, которые обрабатывают файлы одинаковых типов. Однако, в связи с небольшими различиями в конструкции принтеров, результаты работы одного из принтеров слегка отличаются. Вы отмечаете принтеры разными типами, например A и B, где B - принтер, результаты которого отличны. Вы создаете фильтр, обрабатывающий файлы с учетом отклонения в результатах работы принтера B. Так как этот фильтр необходим только при работе с принтерами типа B, вы вносите его в рабочий список только для принтеров этого типа.
В большинстве случаев эту часть описания фильтра можно не заполнять.
Например, один из принтеров предназначен для быстрого реверсирования. На этот принтер будут отправляться только файлы, не проходящие через фильтр. Все остальные принтеры этого типа работают с файлами, прошедшими через фильтр. В таком случае необходимо указать в описании фильтра только вторую группу принтеров.
В большинстве случаев фильтр работает с принтерами, обрабатывающими выдаваемые им данные, поэтому этот пункт описания обычно можно пропускать.
Быстрые фильтры практически не накладывают на принтер дополнительной нагрузки и при запуске должны иметь доступ к принтеру. Неполадки принтера определяются с помощью быстрых фильтров. Фильтр, в котором ключевое слово PRINTER используется в качестве опции фильтра также должен быть быстрым фильтром.
Медленные фильтры накладывают дополнительную нагрузку на принтер, но не требуют доступа к принтеру. Служба печати выполняет медленные фильтры в фоновом режиме. Таким образом файлы, не использующие медленные фильтры, продолжают выполнение. Если при обработке файла медленным фильтром существует файл, который может быть напечатан, он будет печататься параллельно с работой фильтра.
Медленные фильтры, используемые в определенном режиме (опция -y), должны быть запущены при запуске запросе на печать. Служба печати не передает значения режимов на сервер. Она, однако, может сравнить тип файла (указанный после опции -T команды lp) с типом данных на сервере. Для активации особых режимов на сервере необходимо указать тип данных, с помощью которого служба печати сравнит входные и выходные типы.
Информация может состоять из указаний пользователя (с запросом на печать), описания принтера и спецификации, применяемые всеми фильтрами при обработке запросов.
Существуют 13 источников информации, каждый из которых задается ключевым словом. Каждая опция описана в шаблоне, являющемся оператором следующего формата:
ключевое_слово шаблон =замена
Такой оператор интерпретируется следующим образом: "Когда информация, обозначенная с помощью ключевого_слова имеет значение, равное шаблон, следует взять строку замена, заменить все символы "звездочка" значением шаблон или развернуть все регулярные выражения, содержащиеся в ней, и добавить результат к командной строке."
В опциях описания фильтра могут быть указаны все, ни одного или любое из этих 13 ключевых слов. Если для полного описания фильтра необходимо наличие нескольких описаний, ключевое слово может быть упомянуто несколько раз. См. Указание опций с помощью шаблонов.
После того, как все необходимые для создания фильтра данные определены, необходимо запустить команду lpfilter, указав собранные данные в качестве аргументов. Из-за большого числа аргументов рекомендуется сначала занести всю информацию в отдельных файл и, при необходимости, отредактировать ее. Затем этот файл можно использовать в качестве входного для команды lpfilter.
Шаблоном называется оператор в описании фильтра, в котором указаны опции, передаваемые команде фильтра в зависимости от его характеристик. Описание фильтра может содержать несколько шаблонов. Существует два способа задания шаблонов: несколько шаблонов на одной строке (шаблоны разделяются запятыми) или каждый шаблон на отдельной строке (строка должна начинаться с префикса Options:).
Шаблон указывается в следующем формате:
ключевое_слово шаблон =замена
Такой оператор интерпретируется следующим образом: "Когда информация, обозначенная с помощью ключевого_слова имеет значение, равное шаблон, следует взять строку замена, заменить все символы "звездочка" значением шаблон или развернуть все регулярные выражения, содержащиеся в ней, и добавить результат к командной строке."
Например, предположим, что необходимо, чтобы планировщик службы печати распределял запросы на печать по фильтрам по следующему критерию:
Для того, чтобы выполнить эту задачу, необходимо задать команде lpfilter следующие шаблоны:
Options: OUTPUT impress=-I, OUTPUT postscript=-P
Если строка Options: становится слишком длинной, перенесите каждый шаблон на отдельную строку:
"Options: OUTPUT impress=-I" "Options: OUTPUT postscript=-P"
В обоих шаблонах ключевое_слово - OUTPUT. В первом шаблоне значение шаблон - impress, а значение замена - -I. Во втором шаблоне значение шаблон - postscript, а значение замена - -P.
Для задания опций (Options) в описании фильтра существуют следующие 13
ключевых_слов:
Описание | ключевое слово | Возможные шаблоны | Пример |
---|---|---|---|
Тип входных данных | INPUT | тип-данных | troff |
Тип выходных данных | OUTPUT | тип-данных | postscript |
Тип принтера | TERM | тип-принтера | att495 |
Имя принтера | PRINTER | имя-принтера | lp1 |
Ширина шрифта | CPI | целое-число | 10 |
Интервал | LPI | целое-число | 6 |
Длина страницы | LENGTH | целое-число | 66 |
Ширина страницы | WIDTH | целое-число | 80 |
Число печатаемых страниц | PAGES | список-страниц | 1-5,13-20 |
Набор символов | CHARSET | набор-символов | finnish |
Имя формы | FORM | имя-формы | invoice2 |
Число копий | COPIES | целое | 3 |
Особые режимы | MODES | режим | landscape |
Значения, задаваемые во всех типах шаблонов (аргументы шаблон и замена для каждого ключевого слова), описаны ниже:
Часть шаблона, называющаяся замена, содержит значение, передаваемое программе фильтра. Обычно это литеральная опция, иногда * (звездочка), определяющая назначение значения. При необходимости более сложного преобразования опций пользователя в опции фильтра в полях шаблон и замена можно использовать конструкции команды ed. При этом поддерживаются все конструкции команды ed, включая конструкцию \(. . . \) и \n, используемые для извлечения частей шаблона, для копирования в поле замена, и &, используемой для копирования всего шаблона в поле замена.
Примечание: Если в поля шаблон или замена включены символы запятая или знак равенства (=), их следует предварять обратной косой чертой (\). Некоторые регулярные выражения содержат запятые, которые также следует предварять обратной косой чертой. Эта косая черта удаляется из полей шаблон изамена при их использовании.
Общие принципы использования этих свойств показаны в следующих примерах.
Предположим, что вами добавлен фильтр с именем col описанный следующим образом:
Input types: N37, Nlp, simple Output types: simple Command: /usr/bin/col Options: TERM 450 = -b, MODES expand = -x Options: INPUT simple = -p -f
Примечание: Если для какой-либо из характеристик фильтра помимо Options существует несколько описаний (то есть несколько строк описания), служба печати использует последнее из них.
После регистрации этого описания в службе печати с помощью команды lpfilter, пользовательские запросы на печать будут обрабатываться следующим образом:
lp -y expand report.dec10
команда фильтра будет запущена со следующими аргументами:
/usr/bin/col -x -p -f
lp -T N37 -y expand report.dec10
команда фильтра будет запущена со следующими аргументами:
/usr/bin/col -x
Спецификатор: Принтер по умолчанию не принадлежит к типу 450.
lp -y expand -T 450 report.dec10
команда фильтра будет запущена со следующими аргументами:
/usr/bin/col -b -x
Программа фильтра называется /usr/lib/lp/postscript/dpost. Фильтр работает с одним типом входных данных, troff, выдает данные типа postscript и работает со всеми принтерами типа PS (PostScript). Предположим, что вам необходимо, чтобы пользователи задавали типы ориентации бумаги "книжная" и "альбомная" ключевыми словами port и land соответственно. Так как эти опции не являются встроенными опциями службы печати, пользователи задают их с помощью опции -y команды lp.
Описание фильтра будет следующим:
Input types: troff Output types: postscript Printer types: PS Filter type: slow Command: /usr/lib/lp/postscript/dpost Options: LENGTH * = -l* Options: MODES portrait = -op, MODES land = -ol
Пользователь, создающий запрос на печать файла типа troff на принтере PostScript (тип PS), с альбомной ориентацией бумаги и длиной страницы в 60 строк, должен ввести следующую команду:
lp -T troff -o length=60 -y land -d any
Команда вызова фильтра из службы печати будет выглядеть следующим образом:
/usr/lib/lp/postscript/dpost -l60 -ol -pl
Добавим в предыдущий пример следующий шаблон опций:
Options: MODES group\=\([1-9]\) = -n\l
Этот шаблон используется для преобразования опции MODES формы -y group=число в опции фильтра -nчисло.
Таким образом, при вводе пользователем команды lp -y group=4, команда dpost будет содержать опцию -n4.
Для получения дополнительных примеров запустите команду
/usr/sbin/lpfilter -f фильтр -l
где фильтр - имя предустановленного фильтра PostScript. (Список фильтров PostScript приведен в разделе Принтеры PostScript.)
Для добавления описанного фильтра в систему используются следующие команды:
/usr/sbin/lpfilter -f имя-фильтра -F имя_файла /usr/sbin/lpfilter -f имя-фильтра -
Первая команда получает описание фильтра из файла, а вторая получает его из стандартного ввода. имя-фильтра - это любая строка, содержащая не более 14 букв, цифр и символов подчеркивания.
При необходимости изменения фильтра команду необходимо ввести повторно. Вам необходимо предоставить информацию об изменяемых элементах. Элементы, информация о которых не предоставлена, не изменяются.
Служба печати не накладывает ограничений на количество определенных фильтров. Однако, рекомендуется для повышения производительности службы печати удалять не используемые более фильтры.
Фильтр удаляется с помощью следующей команды:
/usr/sbin/lpfilter -f имя-фильтра -x
Описание любого фильтра можно просмотреть с помощью команды lpfilter. Эта команда выводит описание фильтра в удобном для последующего ввода формате. Рекомендуется сохранить это описание для последующего восстановления фильтра в случае его удаления из службы печати.
Для того, чтобы вывести описание фильтра на экран необходимо ввести следующую команду:
/usr/sbin/lpfilter -f имя-фильтра -l
Для того, чтобы сохранить описание фильтра в файле, необходимо ввести следующую команду:
/usr/sbin/lpfilter -f имя-фильтра -l > имя-файла
Поставляемое программное обеспечение содержит набор фильтров по умолчанию. В процессе добавления, изменения и удаления фильтров вы можете заменить или удалить один из предустановленных фильтров.
Для восстановления некоторых или всех фильтров из первоначального набора необходимо ввести следующую команду:
/usr/sbin/lpfilter -f имя-фильтра -i
В поле имя-фильтра необходимо указать имя восстанавливаемого фильтра или ключевое слово all для восстановления всех первоначальных фильтров.
Атрибут тип-принтера задается с помощью опции -T тип-принтера команды lpadmin. Тип принтера - это шаблон имени принтера. Обычно он зависит от имени производителя. Например, принтер ACME\ Computer 356 Dot Matrix Printer может иметь тип 356. Присвоение каждому принтеру типа очень важно, так как программы получают информацию о принтере из базы данных terminfo, основываясь на типе принтера. Информация в базе данных состоит из списка возможностей (функций) принтера, по которому проверяется заданная вами информации о конфигурации принтера в службе печати. (С помощью этой проверки служба печати находит в заданной вами конфигурации информацию, не соответствующую действительности.) База данных terminfo также содержит данные, необходимые для инициализации принтера перед печатью файла.
Несмотря на то, что указание типа принтера не является обязательным, очень рекомендуется его указывать. С помощью типов служба печати классифицирует принтеры, доступные в данный момент, что существенно облегчает работу пользователей.
При задании списка типов принтеров их имена необходимо разделять запятыми. Если тип принтера не задан, то по умолчанию используется тип unknown.
Если принтер может эмулировать несколько различных принтеров, вы можете задать для него несколько типов. Предположим, что принтер может эмулировать принтеры IBM Proprinter XL, Epson FX86e и HP LaserJet II; их типы записаны в базе данных terminfo как 593ibm, 593eps и 593hp соответственно. При указании нескольких типов принтеров служба печати для каждого конкретного запроса использует самый подходящий из них.
В следующей примере показано использование команды lpadmin для присвоения принтеру с именем laser типа 593ibm.
/usr/sbin/lpadmin -p laser -T 593ibm
Примечание: При указании нескольких типов принтеров, в качестве типа данных необходимо указывать simple.
Атрибут тип-данных задается с помощью опции -I список-типов-данных команды lpadmin. Большинство принтеров могут печатать файлы двух типов: совпадающих с типом принтера (если он задан) и типа simple (обозначающего файлы ASCII), который является типом по умолчанию для всех принтеров.
Предполагается, что файлы типа simple содержат два типа
символов: печатаемые символы ASCII и следующие управляющие
символы:
забой | Перемещает каретку на один символ назад, если не находится в начале строки |
табуляция | Перемещает каретку к следующей позиции табуляции; на большинстве принтеров позиции табуляции расположены через каждые восемь символов |
перевод строки | Перевод каретки к началу следующей строки (для некоторых принтеров необходимы дополнительные настройки порта --см. Настройка параметров порта принтера |
перевод страницы | Перевод каретки к началу следующей страницы |
возврат каретки | Перевод каретки к началу текущей строки (на некоторых принтерах эта функция не работает) |
Слово каретка применительно к лазерным принтерам считается устаревшим, однако действия, производимые принтером при этих командах, аналогичны действиям каретки в принтерах других типов. Если принтер обрабатывает файлы нескольких типов, включая и simple, тип simple необходимо вручную добавить в список типов данных. Если вы хотите, чтобы ваш принтер не работал с файлами типа simple, оставьте поле список-типов-данных (-I "") команды lpadmin пустым. Некоторые принтеры работают с файлами нескольких типов. При добавлении такого принтера необходимо добавить в список типов имена обрабатываемых им типов данных. (По умолчанию в списке содержится только тип simple.) При добавлении удаленного принтера необходимо добавить в список типов данных типы, предоставленные администратором удаленной системы.
список-типов-данных - это список имен, разделенных запятыми или пробелами. Если для разделения используются пробелы, то весь список, за исключением -I необходимо заключить в кавычки.
Имена типов данных схожи с именами типов принтеров, однако вы сами можете назначать удобные вам имена, состоящие не более чем из 14 букв, цифр и символов подчеркивания. Ниже приведен список некоторых часто используемых типов данных.
Примечание: Слова simple и any являются ключевыми словами службы печати. Название terminfo также является зарезервированным для справки по всем типам принтеров.
Типы | Описание |
---|---|
cif | Вывод BSD cifpbt |
daisy | Файлы печати для принтера Diablo 630 (лепестковый принтер) |
dmd | Печать содержимого растрового дисплея терминала |
fortran | Управляющий формат каретки ASA |
otroff | Инструкции CAT, созданные BSD или pre-System V troff (старый troff) |
pcl | Исходный формат вывода HP LaserJet |
plot | Дисплеи и устройства Tektronix |
postscript | Язык PostScript |
raster | Формат растровых bitmap растровых устройств Varian |
simple | Файл ASCII |
tek4014 | Файлы печати, форматированные для устройства Tektronix 4014 |
tex | Файлы формата DVI |
troff | Независимый от устройства вывод troff |
Если служба печати получает запрос на печать файла на принтере, заданном опцией -d any команды lp, служба печати производит поиск принтера, способного обработать это задание. Идентификация необходимого принтера происходит с помощью типа данных и типа принтера. При этом, при отправке запроса вы можете указать тип данных. Если этот тип данных обрабатывается несколькими типами принтеров, при добавлении этих принтеров надо также е указать этот тип данных. Это существенно упрощает использование принтеров, так как вне зависимости от принтера, на котором будет напечатан файл, для указания типа файла можно использовать одно и то же имя.
Большинство производителей выпускают принтеры, печатающие файлы ASCII. Несмотря на то что все эти принтеры принадлежат к различным типам, (и, следовательно, имеют различные управляющие последовательности при инициализации), все они могут обрабатывать один тип файлов, называемый нами simple. Некоторые производители производят принтеры, работающие с esc-последовательностями ANSI X3.64. Однако, не все они поддерживают один и тот же набор возможностей ANSI. Для упрощения работы с такими принтерами, можно присвоить им различные типы данных.
Перечисление типов данных для принтера хотя и желательно, но не обязательно. Если типы данных не указаны, в качестве типа данных используется тип принтера. Если же не указан и тип принтера, предполагается, что этот принтер работает только с файлами типа simple. Если пользователи при выполнении запроса на печать вручную указывают тип принтера, и если файлы подготовлены для печати на принтере надлежащим образом, очень важно помнить об этих свойствах назначения типа данных.