Опубликован: 15.10.2008 | Уровень: специалист | Доступ: платный
Лекция 9:

Печать

< Лекция 8 || Лекция 9: 123456789
Аннотация: Данная лекция посвящена вопросам печати. Рассматриваются новые возможности печати, установка локальных принтеров, аудит доступа к принтеру, а также вопросы конфигурирования принтеров
Ключевые слова: конфигурирование, служба печати, Windows Server, Web-службы, сервер печати, сетевая ОС, печать, Windows NT, целый, windows 2000, TCP, IP, интранет, URL, print queue, system monitoring, windows xp, professional, windows 9x, printer, fax, драйвер принтера, кластер, групповая политика, операционная система, печатающее устройство, отправка, виртуальное, пользователь, программа, Windows-приложения, graphics device, interface, GDI, EMF, enhanced, metafile, инструкция, DLL, тип данных, сетевой принтер, удаленный вызов процедур, RPC, remote, procedure call, маршрутизатор, монитор, кабель, двунаправленность, программный компонент, ввод/вывод, контроллер, рабочая станция, print server, advanced, полный путь, NTFS, элемент данных, print spooler, control panel, апплет, administrative tools, serviceability, extending, restart, standardization, spooler, start-stop, SPL, Graphics, driver, API, NetWare, OS-9, алиас, PCD, postscript, postscript printer, DESCRIPTION, PPD, текстовый файл, преобразование данных, processor-specific, RAW, append, auto-id, переносимость, протокол TCP, peering, resource, kit, client, gateway, шлюз, SMB, macintosh, интерпретация, USB, AppleTalk, VAX, IIS, linking, l-port, IEEE 1394, parallelize, serial, имя файла, UNC, сетевой адаптер, intel, SNMP, network management, protocol, мониторинг, RFC, web-based, домен, транспортная, LPT1, LPT2, отправка данных, Add, Wizard, ip address, IP-адрес, идентификация, возвращаемое значение, additive, require, genericity, network card, сетевая карта, custom, configure, monitoring, finish, DLC, Data, link control, адаптер, completion, self-reference, аплет, networking, internet connectivity, network connection, area, локальная сеть, install, CD-ROM, remove, programming, component, файловая служба, detailed, local printer, локальный принтер, create, device-specific, захват, daemon, хост, исполняемый файл, addressability, DNS, digitize, digital network, DEC, equipping, corporate, disk, передача данных, job, language, провайдер, separate, редиректор, стек протоколов, управление заданиями, Windows, server, Plug-in, AND, play, права, hardware-specific, automatic, detection, копирование файлов, жесткий диск, cancellation, веб-сайт, serial bus, разъем, IEEE, troubleshooting, listing, manual, near-infrared, сетевой интерфейс, параллельный порт, подразделения, printer port, номер порта, directory, Active Directory, generality, Locate, comment, security, управление принтером, documented, administrator, owner, power user, отмена печати, аудит, tools, policy, audit policy, auditing, Object, accessing, failure, административные привилегии, системный администратор, организационные единицы, object type, тип объекта, built-up, principal, имя объекта, computation, group, find, совместность, NT-1, CD+G, support, компакт-диск, кластеризация, track, поиск, адресация, подсеть, site, activate, служба каталогов, admin, account, U-кадры, floor, lab, процесс планирования, MMC, контейнер, pre, population, searching, enabled, браузер, network printer, entire, v-model, feature, field, условия поиска, true, критерии поиска, save, 'color', потребности пользователей, офис, pooling, Copy, физическая защита, lexing, banner, баннер, letter, e-form, последовательный порт, скорость передачи, t-бит, четность, управление потоком, flow control, RESTORE, default, help, присоединение, warning, event, viewer, layout, paper, quality, gray scaling, draft, идентифицирующая, нумерация, browsing, PCL, printer control language, priority, spool, признак конца файла, printing direction, hold, mismatch, envelope, индикатор, удаление файла, explore, WMF, after-image, color management, ICME, преобразование типов, RGB, CMYK, сканер, color space, profiler, association, display, WYSIWYG, настольная издательская система, коррекция, двойной щелчок, pause, resume, print, файл, PRN, порт, путь, DOS, параметр, Дополнение

Установка и конфигурирование принтеров и служб печати в Windows Server 2003 выполняются просто по сравнению с тем, что приходится делать для установки и конфигурирования служб и серверов печати других сетевых ОС. Конечно, обеспечение такой простоты требует большой внутренней работы, основная часть которой выполняется ядром операционной системы в фоновом режиме.

В этой лекции описывается, каким образом Windows Server 2003 выполняет печать, а также рассматриваются компоненты, участвующие в процессе печати. Здесь также описываются основные варианты установки и конфигурирования, которые вы можете использовать при установке служб печати в вашей сети.

Новые возможности печати

При модернизации из Windows NT вы увидите целый ряд существенных улучшений в печати Windows Server 2003. Если вы работали с Windows 2000, то уже знакомы с большинством этих изменений, но в Windows Server 2003 появилось несколько дополнительных нововведений.

Все средства печати Windows Server 2003 будут описаны в этой лекции, но для самых любопытных ниже приводится краткая сводка наиболее важных модификаций.

  • Дистанционное администрирование портов. Дистанционное администрирование принтеров расширено и включает теперь дистанционное администрирование портов. (Введено в Windows 2000).
  • Стандартный порт для TCP/IP. Новый порт, который называют стандартным портом, можно использовать для простой установки большинства принтеров TCP/IP в вашей сети. Если вы когда-либо конфигурировали печать TCP/IP в Windows NT 4, то по достоинству оцените тот факт, что вам не нужно проходить через многочисленные шаги во всех этих диалоговых окнах. (Введено в Windows 2000).
  • Печать через интернет. Печать интегрирована с интернетом, и пользователи могут получать доступ к серверам печати в сети интранет или в интернете с помощью URL-адреса. (Введено в Windows 2000).
  • Мониторы очереди печати. Вы можете следить за показателями работы локального или удаленного принтера с помощью объекта Print Queue (Очередь печати) в System Monitor. Имеются счетчики для многочисленных показателей производительности. (Введено в Windows 2000).
  • Пользователи могут изменять настройки. Пользователи, работающие с Windows XP Professional и Windows Server 2003, могут изменять личные настройки параметров по умолчанию для документов. Это не было доступно для пользователей, работающих с Windows NT или Windows 2000 (но было доступно при работе с Windows 9x).
  • Новое диалоговое окно Print. Изменилось стандартное диалоговое окно Print, которое появляется при печати из приложений. Вы можете теперь устанавливать принтер непосредственно из диалогового окна Print.
  • Новое название для папки Printers. Папка Printers теперь называется Printers and Faxes (Принтеры и факсы).
  • Автоматическая установка драйверов принтеров во всех узлах кластера. Если вы устанавливаете драйвер принтера в одном узле кластера, этот драйвер автоматически устанавливается во всех остальных узлах.
  • Блокирование установки драйверов принтеров в режиме ядра. С помощью групповой политики администратор может запретить пользователям установку драйверов принтеров в режиме ядра.

Основы печати

Windows Server 2003 – это операционная система в защищенном режиме без прямого доступа к оборудованию. Поэтому для управления возможностями печати и взаимодействия с физическими печатающими устройствами используются виртуальные принтеры (иногда их называют логическими принтерами). Отправка задания печати на принтер означает отправку этого задания на соответствующее виртуальное устройство. При этом важно помнить о следующем.

  • Значки, которые выводятся в списках принтеров, представляют виртуальные принтеры.
  • Пользователи отправляют задания печати виртуальному принтеру, а не на физический принтер.
  • Установленные драйверы принтеров загружаются во время печати и отправляются виртуальному принтеру.
  • Изменения конфигурации в свойствах принтера выполняются для виртуального принтера, но эти параметры должны соответствовать возможностям физического принтера.

Процессы печати

Прежде чем отправить задание печати на принтер, операционная система выполняет целый ряд процессов. Ниже приводится краткое описание этих процессов, начиная с момента, когда пользователь отправляет документ на принтер. (Мы предполагаем, что соответствующая программа является Windows-приложением.) Компоненты печати, которые действуют в этих процессах, описываются ниже.

Создание выходного файла

Windows-приложение вызывает интерфейс Graphical Device Interface (GDI), который, в свою очередь, обращается к драйверу принтера, связанного с целевым принтером. Используя информацию о документе, представленную этим приложением, GDI и драйвер формируют данные в формате EMF (enhanced metafile), содержащие вызовы GDI и информацию драйвера принтера. Затем Windows-приложение обращается к клиентской стороне спулера печати (Winspool.drv).

После загрузки драйвера печати в память все коды и наборы команд конкретного принтера становятся доступны последующим процессам.

Примечание. Процессы печати других ОС и приложений (отличных от Windows) не используют GDI. Эту задачу осуществляет какой-либо компонент, аналогичный GDI Windows.

Выходной файл содержит команды (инструкции), которые называются вызовами интерфейса DDI (Device Driver Interface). Эти команды передаются драйверу принтера. Соответствующий выходной файл называется файлом журнала DDI. Графический процессор ( %SystemRoot%\System32\gdi32.dll ) преобразует команды GDI в команды DDI, которые могут читать процессоры печати операционной системы и драйвер принтера.

Обработка выходного файла

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

Примечание. Независимо от физического принтера, на который отправляется выходной файл (локальный или сетевой принтер), этот файл всегда передается локальному спулеру.

Маршрутизация задания печати

Клиентский компьютер использует удаленный вызов процедур (RPCRemote Procedure Call) для отправки задания печати маршрутизатору Windows на сервере печати. Маршрутизатор принимает задание от клиентского компьютера и определяет местоположение физического принтера. Если принтер является локальным, это просто означает, что соответствующее задание отправляется назад клиентскому спулеру, и локальный компьютер считается сервером печати.

Отправка задания печати

Спулер на сервере печати передает задание печати монитору печати операционной системы. Монитор печати проверяет целевой порт и, если он свободен, происходит отправка задания печати. Если порт занят, то монитор печати задерживает задание печати в очереди спулера, пока не освободится порт. Монитор печати управляет также связью между принтером и отправившим задание пользователем, если кабель принтера поддерживает двунаправленное соединение.

Компоненты печати

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

Спулер

Спулер – это программный компонент, содержащий группу DLL, поддерживающих процедуры, которые должны выполняться при отправке документа на принтер. К этим процедурам относятся:

  • отслеживание портов принтеров, связанных с каждым принтером;
  • отслеживание конфигурации каждого принтера, включая память, лотки и т.д.;
  • назначение приоритетов заданиям печати в очереди;
  • передача задания печати через последовательность программных процессов, которые зависят от типа задания, типа данных и местоположения физического принтера;
  • отправка задания физическому принтеру.

Спулер получает задание печати, сохраняет это задание на диске, после чего передает задание через последовательность процессов печати и отправляет его на принтер. После сохранения задания печати на диске пользователь может вернуться к работе в приложении, из которого отправлено задание. Вся обработка задания печати происходит в фоновом режиме.

По умолчанию для спулинга используется папка %SystemRoot%\System32\Spool\Printers. Вы можете изменять местоположение спулера, и это обычно имеет смысл, если на данном компьютере есть другой диск (где больше объем свободного пространства). Файлы спулинга на сервере печати могут занимать существенную часть пространства на диске.

Если на сервере печати есть второй диск, подсоединенный к отдельному контроллеру, то вы можете также повысить производительность ввода-вывода на используемом по умолчанию диске спулера, переместив спулер на диск с другим (отдельным) контроллером.

Чтобы переместить спулер, откройте папку Printers and Faxes и выберите в меню File пункт Server Properties (Свойства сервера). ("Сервер" означает сервер печати, поэтому данный пункт меню представлен также на рабочих станциях, которые предоставляют разделяемые принтеры.) В диалоговом окне Print Server Properties перейдите во вкладку Advanced (Дополнительно), где показано местоположение папки спулера. Введите новое местоположение с учетом следующих особенностей.

  • Не помещайте папку спулера в корень. Windows Server 2003 не допустит такую конфигурацию и вернет папку спулера в ее исходное местоположение. (Я использую D:\Printing\Spool\Printers.)
  • Не перемещайте папку спулера, пока имеются активные задания печати, поскольку эти задания не будут напечатаны.
  • Если указанная вами папка не существует, она будет создана для вас, но если это подпапка, то ее родительская папка уже должна существовать. Иначе говоря, система может автоматически создать только нижний уровень указанного пути, поэтому лучше заранее создать полный путь, прежде чем переместить спулер.
  • Если спулер находится в разделе NTFS, то проследите, чтобы группа Everyone имела полномочия записи для папки спулера.

Новое местоположение немедленно записывается в реестр и начинает действовать сразу. Оно записывается в раздел HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows NT\CurrentVersion\Print\Printers для элемента данных DefaultSpoolDirectory (тип данных REG_SZ ).

Если новое местоположение не действует, нужно завершить и снова запустить службу Print Spooler (Диспетчер очерди печати), используя следующие шаги.

  1. В панели управления (Control Panel) откройте апплет Administrative Tools (Администрирование).
  2. Откройте консоль Services (Службы).
  3. Выберите Print Spooler.
  4. Если вы используете представление Extended (Расширенное), то щелкните в панели этой консоли на кнопке Stop и затем щелкните на кнопке Restart.
  5. Если вы используете в панели консоли представление Standard (Стандартное), то щелкните правой кнопкой на Print Spooler и выберите в контекстном меню пункт Stop. Затем еще раз щелкните правой кнопкой и выберите пункт Restart.

Вы можете также завершать работу службы Print Spooler и запускать ее из командной строки с помощью команд net stop spooler и start spooler.

Файлы спулинга

Папка спулера содержит файлы спулинга (список файлов спулинга называется очередью). Для каждого включаемого в спулинг задания печати в папку спулера записываются два файла.

  • Файл спулинга. Этот файл непосредственно содержит задание печати. Он имеет расширение .spl.
  • "Теневой" файл. Этот файл содержит административную информацию, необходимую для печати данного задания (целевой принтер, приоритет задания, имя отправившего задание пользователя и т.д.). Этот файл имеет расширение .shd.

Если происходит отключение сервера печати, но напечатаны не все задания, включенные в спулинг, то после перезагрузки сервера печать возобновляется в силу того, что имеются файлы спулинга и теневые файлы этих заданий.

Драйверы принтеров

Драйверы принтеров преобразуют данные и коды документа задания печати в форму, которая требуется принтеру. Операционная система использует драйвер принтера для трех конкретных задач и разбивает функции драйвера принтера на соответствующие конкретные части. Каждая из этих частей представлена следующими наборами файлов.

  • Графические драйверы.
  • Драйверы интерфейса принтера.
  • Файлы характеристик принтера.

Каждая из этих частей играет свою роль в обработке информации печати.

Графические драйверы

Функции вывода изображений (воспроизведение графики) реализуются Windows Server 2003 с помощью DLL. DLL Print Graphics Driver предоставляет вызовы API, которые используются как интерфейс графического устройства при формировании файла журнала DDI. Кроме того, графический драйвер преобразует команды DDI в команды, которые воспринимаются принтером. Эти файлы хранятся в подпапках внутри %SystemRoot%\System32\Spool\Drivers\w32x86.

Драйверы интерфейса принтера

Файлы интерфейса принтера (это .dll-файлы) предоставляют опции, которые может выбирать пользователь при конфигурировании принтера. В частности, они выводят диалоговые окна Properties и Printing Preferences.

Файлы характеристик принтера

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

Очередь печати

Последовательность заданий печати, ожидающих отправки на физический принтер в папке спулера, называется очередью.

Если вы работали когда-либо с Novell NetWare или с OS/2, то вам придется пересмотреть свое понимание слова "очередь". Очередь, используемая этими операционными системами, – это основной программный интерфейс между приложениями и физическим принтером. Имеется взаимнооднозначное соответствие между очередью и принтером.

Например, если в OS/2 пользователь отправляет задание печати на принтер, это задание перехватывается спулером OS/2, содержащим задание в очереди, которая реально является виртуальным алиасом для конкретного физического принтера. Задание печати представляется очереди для обработки, то есть очередь не является набором файлов печати, которые уже "обработаны" операционной системой. Спулер и очередь представляют объединенное понятие. Драйвер принтера, спулер и очередь не обрабатывают задание печати по отдельности: задание захватывается, содержится и передается на физический принтер одним объектом – очередью.

NetWare 3.x (и NetWare 4.x, если вы используете очередь вместо виртуального принтера) действует почти так же, как и OS/2, за исключением того, что для настройки очереди и сервера принтера требуется намного больше работы.

Для растровых принтеров эти файлы называются минидрайверами и обычно реализуются в форме DLL (хотя вы можете видеть и другие расширения, такие как .gdp или .pcd). Они совместимы по исходным кодам между различными платформами и процессорами.

Для PostScript-принтеров это файлы PostScript Printer Description (PPD), то есть текстовые файлы, поставляемые изготовителем принтера. Они совместимы как двоичные файлы между различными платформами и процессорами.

Процессор печати Windows Server 2003

Процессор печати выполняет рендеринг задания печати после того, как он получает этот файл от спулера. Рендеринг означает преобразование данных задания печати в данные, которые "понятны" и допустимы для принтера.

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

Windows NT/2000/XP/2003 Server использует по умолчанию тип данных EMF, поэтому процессор печати может передавать задание принтеру "с полной уверенностью", что принтер сможет интерпретировать и обработать задание печати.

Процессор печати и конфигурацию для типа данных можно найти в диалоговом окне Properties (Свойства) принтера: щелкните на кнопке Print Processor (Процессор печати) во вкладке Advanced.

Используются следующие типы данных.

  • RAW. Этот тип данных указывает, что рендеринг задания уже был выполнен и оно готово для данного принтера. В этом случае процессор печати ничего не делает. Тип RAW применяется клиентами, не использующими Windows NT4/2000/XP/2003, и это тип данных по умолчанию для всех PostScript-принтеров.
  • RAW [FF appended]. Этот тип данных указывает, что клиент отправил документ без символа конца страницы в конце задания (что требуется для вывода из принтера последней страницы). Процессор печати добавляет символ конца страницы и больше ничего не делает.
  • RAW [FF auto]. Этот тип данных действует так же, как и RAW [FF appended], но процесс печати проверяет наличие символа конца страницы в конце задания и при необходимости добавляет его.
  • TEXT. Этот тип данных указывает, что задание содержит простой текст, и он обычно используется для заданий печати, отправляемых на PostScript-принтеры или плоттеры (которые не воспринимают текст как допустимый тип данных). Процессор печати использует драйвер принтера для рендеринга такого задания в команды принтера, которые допускаются адресуемым принтером.
  • EMF. Тип данных EMF (Enhanced Metafile) используется по умолчанию большинством приложений, написанных для Windows NT4, Windows 2000, Windows XP и Windows Server 2003. Информация EMF генерируется интерфейсом GDI перед спулингом; затем спулер пересылает задание печати в очередь в фоновом режиме. EMF-файлы обычно меньше, чем файлы с типом данных RAW. Еще важнее то, что они обеспечивают переносимость и могут преобразовываться в соответствии с требованиями почти любого принтера.

Другие процессоры печати

В дополнение к процессору печати, встроенному в Windows Server 2003, вы можете включать в вашу систему и другие процессоры печати. Некоторые процессоры печати доступны в Windows Server 2003 как дополнительные компоненты, см. табл. 9.1.

Таблица 9.1. Дополнительные процессоры печати для Windows Server 2003
Компонент Назначение Источник
Print Services for UNIX Печать, при которой используется протокол TCP/IP Дополнительный компонент в Windows Server 2003.
Peer Web Services Печать, направляемая в интернет из Windows XP Professional Windows XP Professional Resource Kit.
File and Print Services for NetWare Печать, направляемая в Windows Server 2003 с компьютеров, работающих под управлением NetWare Microsoft Services for NetWare (продается отдельно).
Client Service for NetWare Печать, направляемая на серверы NetWare из Windows XP Professional Дополнительный компонент в Windows XP Professional.
Gateway Service for NetWare Печать, направляемая в очереди и из очередей печати NetWare с помощью Windows Server 2003 (является также шлюзом для клиентов SMB при печати, направляемой в очереди печати NetWare) Дополнительный компонент в Windows Server 2003.
Print Services for Macintosh Печать, направляемая в Windows Server 2003 с компьютеров Macintosh Дополнительный компонент в Windows Server 2003.

Имеются также процессоры печати от сторонних поставщиков. Например, программные приложения, которые генерируют данные, требующие специальной обработки для их интерпретации принтером, обычно содержат свой процессор печати.

Маршрутизатор печати

Маршрутизатор печати принимает запрос на печать от клиента и определяет компонент спулера, который следует использовать для выполнения данного запроса. Он действует между клиентским компьютером и сервером печати (который может, конечно, оказаться, тем же компьютером). Маршрутизатор печати реализуется с помощью Winspool.drv, находящегося в папке %SystemRoot%\System32, а связь между клиентом и маршрутизатором печати осуществляется с помощью вызовов RPC.

Первая задача маршрутизатора печати – это поиск физического принтера, на который должно быть доставлено задание печати. Когда принтер найден, маршрутизатор сравнивает драйвер этого принтера с драйвером принтера на клиентском компьютере (если он имеется). Если на клиентском компьютере нет драйвера этого принтера или он имеет более раннюю дату, чем драйвер на сервере печати, то для клиента загружается драйвер с сервера печати.

Если клиент не получает от маршрутизатора печати никакого сообщения об ошибке ("Printer not found – принтер не найден), то задание обрабатывается клиентским компьютером (без гарантии, что он имеет подходящий драйвер), и это означает, что задание помещается в локальный спулер. Если сервер печати не является клиентским компьютером, то маршрутизатор печати копирует задание из клиентского спулера в спулер сервера печати.

< Лекция 8 || Лекция 9: 123456789
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989