[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по принтерам и печати


Начальные и конечные страницы программы буферизации

Конвейеры для формирования начальных и конечных страниц определяются с помощью системных атрибутов (Атрибуты системного администрирования) sh (начальные страницы) и st (конечные страницы). Печать начальных и конечных страниц выполняется отдельно от соответствующего задания печати программы буферизации, несмотря на то, что они не упоминаются в выводе запроса о состоянии очереди.

Конвейеры для создания начальных и конечных страниц

Ниже приведена схема определения конвейера с помощью атрибута sh для создания и печати начальной страницы. Конвейер будет создан для очереди расширенного набора символов ASCII и принтера IBM 4029 LaserPrinter. Формат вывода атрибута задается командой lsvirprt. Дополнительная информация приведена в разделе Просмотр, форматирование и изменение определений виртуальных принтеров.

Конвейер для создания начальной страницы
sh = %Ide/pioburst %F[H] %Idb/H.ascii | %Ide/pioformat 
-@%Idd/%Imm -!%Idf/piof52
02 -L! -J! %IsH -u%IuH

 %Ide          INCLUDE: (Каталог, содержащий различные 
модули)
 '/pioburst '
 %F[H]         Если в командной строке указано "-H] Аргумент", то "-# Аргумент" 
-> OUTPUT
 ' '
 %Idb          INCLUDE: (Каталог, содержащий файлы с текстом начальной и конечной страниц)
 '/H.ascii | '
 %Ide          INCLUDE: (Каталог, содержащий различные 
модули)
 '/pioformat -@'
 %Idd          INCLUDE: (Каталог, содержащий обработанные файлы базы 
данных)
 '/'
 %Imm     INCLUDE: (Имя (обработанного) файла базы данных; запускается
               "piodigest" (mt.md.mn.mq:mv))
 ' -!'
 %Idf         INCLUDE: (Каталог, содержащий загружаемые процедуры 
форматирования)
 '/piof5202 -L! -J! '
 %IsH          INCLUDE: (ФЛАГИ ФОРМАТИРОВАНИЯ для начальной страницы)
 ' -u'
 %IuH          INCLUDE: (ЛОТОК подачи бумаги для начальной страницы)

Во время выполнения задания программой буферизации значение атрибута sh равно:

/usr/lib/lpd/pio/etc/pioburst /usr/lib/lpd/pio/burst/H.ascii | 
/usr/lib/lpd/pio/etc/pioformat 
-@/var/spool/lpd/pio/@local/ddi/ibm4029.asc.lp1.asc:lp1 
-!/usr/lib/lpd/pio/fmtrs/piof5202 -L! -J! -u1

Команда pioburst обрабатывает шаблон начальной страницы и передает его независимой от устройства программе форматирования pioformat, которая, в свою очередь, загружает обработанный файл описания для данного виртуального принтера (аргумент флага -@) и зависящей от устройства программы форматирования piof5202 (аргумент флага -!) Для программы piof5202 допустимы три следующих флага:

  1. -L! - Не переносить длинные строки.
  2. -J! - Восстановление состояния, в котором принтер находился перед печатью начальной страницы.
  3. -u1 - Бумага для начальной страницы находится в лотке 1.

Определение st аналогично определению sh.

Пользовательские начальные страницы

Пользователь root может создавать начальные страницы для пользователей, изменяя определение атрибута sh. Так как среда пользователя, передавшего задание на выполнение программе буферизации, доступна для процессов буферизации, пользователь root может изменять ту часть атрибута sh, в которой задается шаблон начальной страницы, подлежащий обработке.

Например, в приведенном выше определении файл H.ascii задает шаблон начальной страницы, который должен быть обработан и напечатан. Здесь можно указать пользовательскую переменную среды, например, $MYHEADER, как показано ниже.

 %Ide          INCLUDE: (Каталог, содержащий различные 
модули)
 '/pioburst '
 %F[H]         Если в командной строке указано "-H] Аргумент", то "-# Аргумент" 
-> OUTPUT
 ' '
 %Idb          INCLUDE: (Каталог, содержащий файлы с текстом начальной и конечной страниц)
 '/$MYHEADER | '
 %Ide          INCLUDE: (Каталог, содержащий различные 
модули)
 '/pioformat -@'
 %Idd          INCLUDE: (Каталог, содержащий обработанные файлы базы 
данных)
 '/'
 %Imm     INCLUDE: (Имя (обработанного) файла базы данных; запускается
               "piodigest" (mt.md.mn.mq:mv))
 ' -!'
 %Idf         INCLUDE: (Каталог, содержащий загружаемые процедуры 
форматирования)
 '/piof5202 -L! -J! '
 %IsH          INCLUDE: (ФЛАГИ ФОРМАТИРОВАНИЯ для начальной страницы)
 ' -u'
 %IuH          INCLUDE: (ЛОТОК подачи бумаги для начальной страницы)

Для того чтобы разрешить пользователю susan получить с помощью этой очереди пользовательские начальные страницы, пользователь root должен выполнить следующие действия:

Когда пользователь susan отправляет задание в эту очередь, ссылка на начальную страницу в атрибуте sh будет соответствовать имени /usr/lib/lpd/pio/burst/H.susan, и пользователь susan получит пользовательскую начальную страницу. Недостатком этого сценария является то, что переменная среды MYHEADER должна быть определена для каждого пользователя очереди, связанной с данным виртуальным принтером, иначе виртуальному принтеру не удастся обработать ссылку на /usr/lib/lpd/pio/burst/$MYHEADER. Если переменная $MYHEADER не будет определена, произойдет ошибка; возможно, задание печати и будет обработано, но начальная страница будет в лучшем случае лишь пригодна для повторного использования.

Во избежание проблем, связанных с определением переменной MYHEADER, можно поместить в определение атрибута sh программу на языке оболочки, которая будет анализировать среду пользователя, прежде чем формировать конвейер для создания начальной страницы. Ниже приведен один из вариантов такой программы.

Конвейер для создания начальной страницы
sh = { if test X"$MYHEADER" = X ; then %Ide/pioburst %F[H] 
%Idb/H.ascii | %Ide/pioformat -@%Idd/%Imm -!%Idf/piof5202 -L! -J!
%IsH -u%IuH; else %Ide/pioburst %F[H] %Idb/$MYHEADER |
%Ide/pioformat -@%Idd/%Imm -!%Idf/piof5202 -L! -J! %IsH -u%IuH;
fi; } 

 '{ if test X"$MYHEADER" = X ; then ' 
 %Ide          INCLUDE: (Каталог, содержащий различные
модули)
 '/pioburst '  
 %F[H]         Если в командной строке указано "-H] Аргумент", то "-# Аргумент"
-> OUTPUT
 ' '           
 %Idb          INCLUDE: (Каталог, содержащий файлы с текстом начальной и конечной страниц)
 '/H.ascii | ' 
 %Ide          INCLUDE: (Каталог, содержащий различные
модули)
 '/pioformat -@' 
 %Idd          INCLUDE: (Каталог, содержащий обработанные файлы базы
данных)
 '/'           
 %Imm     INCLUDE: (Имя (обработанного) файла базы данных; запускается
               "piodigest" (mt.md.mn.mq:mv))
 ' -!'         
 %Idf         INCLUDE: (Каталог, содержащий загружаемые процедуры
форматирования)
 '/piof5202 -L! -J! ' 
 %IsH          INCLUDE: (ФЛАГИ ФОРМАТИРОВАНИЯ для начальной страницы)
 ' -u'         
 %IuH          INCLUDE: (ЛОТОК подачи бумаги для начальной страницы)
 '; else '     
 %Ide          INCLUDE: (Каталог, содержащий различные
модули)
 '/pioburst '  
 %F[H]         Если в командной строке указано "-H] Аргумент", то "-# Аргумент"
-> OUTPUT
 ' '           
 %Idb          INCLUDE: (Каталог, содержащий файлы с текстом начальной и конечной страниц)
 '/$MYHEADER | ' 
 %Ide          INCLUDE: (Каталог, содержащий различные
модули)
 '/pioformat -@' 
 %Idd          INCLUDE: (Каталог, содержащий обработанные файлы базы
данных)
 '/'           
 %Imm     INCLUDE: (Имя (обработанного) файла базы данных; запускается
               "piodigest" (mt.md.mn.mq:mv))
 ' -!'         
 %Idf         INCLUDE: (Каталог, содержащий загружаемые процедуры
форматирования)
 '/piof5202 -L! -J! ' 
 %IsH          INCLUDE: (ФЛАГИ ФОРМАТИРОВАНИЯ для начальной страницы)
 ' -u'         
 %IuH          INCLUDE: (ЛОТОК подачи бумаги для начальной страницы)
 '; fi; } '    

Исходное определение st повторяется дважды в новом определении st. Программа на языке оболочки проверяет, определена ли переменная MYHEADER; если нет, то применяется шаблон начальной страницы H.ascii, иначе - шаблон начальной страницы $MYHEADER.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]