Windows 2000 Printing
Windows uses one driver to support printing for all applications. Operating systems of the past required each application to support printing independently which required a print driver for each application or print functionality built into each application.
- Printer - In Windows, it refers to the printer driver software which interacts with the print device to be sure the print job is formatted for that print device. Provides the interface to view and modify print jobs. This is also known as the print queue.
- Print device - The device that physically prints on paper.
- Print job - The print job is the request to print.
- EMF - Ehanced metafile format is a journal file print job. It is smaller than a RAW print file and can be produced faster.
When a shared print device made available as a remote printer, the printer is actually shared, not the print device. Therefore, one print device may have several printers associated with it. This allows various priorities and characteristics to be set up for different users on the same print device.
Windows NT Print Model
- GDI - Graphics Device Interface provides a single system for presenting graphic information to the user through the monitor and it translates print requests into driver requests that match the printing characteristics of the print device called device driver interface (DDI) calls. The printer is considered to be a graphic device with higher resolution and less color than the monitor. One of the following outputs is produced when the print request is made:
- Raw print job - Instructions the printer can use to produce the printed document.
- Journal file print job - A list of DDI calls that can produce a raw print job. Produced when the printing device is local.
- Print driver - Translates DDI calls into commands for the specific print device and consists of:
- Printer Graphics driver - Does the DDI which applications use to print device language conversion. NT includes PLOTTER.DLL, PSCRIPT.DLL, and RASDD.DLL for HPGL/2, PostScript, and raster printers respectively.
- Printer interface driver - Provides the interface used to configure the printer and manage print jobs. NT includes PLOTUI.DLL, PSCRIPTUI.DLL, and RASDDUI.DLL for HPGL/2, PostScript, and raster printers respectively.
- Minidriver or Characterization Data file - Contains information about printer device for the printer graphics driver. It includes internal cartridge information, Available paper trays and amount of print device memory.
- Print router - Directs the print job to the correct print spooler providing the print service. The router can download the print driver from the remote computer.
- Print spooler or provider - Accepts print jobs from the router for a local or remote printer, uses the print processor to make required modifications to the print job, and sends print jobs one at a time to the print monitor. Separator pages are added here. It assigns priority to the jobs. Print job files are spooled to the WINNT40\SYSTEM32\ SPOol\PRINTERS directory by default. It is a service and can be controlled by the services applet in the control panel.
- Print processor - Processes DDI calls into printer instructions. It modifies the print job before it is sent to the print monitor and may append form feeds. The default processor is WINPRINT.DLL. Also a Macintosh print processor is provided. The print processor recognizes simple text, postscript, raw printer data, and enhanced metafile (EMF) data which can be used with any print device. The two types of processed RAW jobs are "Raw FF auto" and "Raw FF Appended" The "Raw FF auto" job always appends a form feed, even if one is already present, and the "Raw FF appended" type only appends a form feed if one is not already present..
- Print monitor - Transmits the print job to the print device and reports the condition of the print device. Print monitors include:
- LOCALMON.DLL can store the print job in a file and communicates to the print device over serial or parallel ports, named pipes or remote shares.
- HPMON.DLL for print jobs on an HP printer on the network.
- LPRMON.DLL for UNIX line printer daemon print servers.
- LEXMON.DLL for Lexmark Mark Vision print devices which use DLC, TCP/IP, or IPX for their transport protocol to communicate.
- PJLMON.DLL for bi-directional print devices using the Printer Job Language (PJL) standard. The HP LaserJet 5Si uses this standard.
- Network printing device
Two additional utilities called LPR.EXE and LPQ.EXE are provided on Windows NT for managing print jobs destined for Unix hosted printers. LPR is used to print files and LPQ is used to manage the print queue.
NT remote print drivers
Clients that are attempting to print on remote computers do not need a local print driver installed. When the print request is made to the print server computer, the client will check to see if a print driver exists. If not or its print driver is older than the print driver on the server, the print server sends a copy of its print driver to the client computer which keeps it until the session ends.
When print requests are made to a print device that is available through a print server the following happens:
- If the requesting computer does not have a print driver for the print device or it's print driver is older than the print driver on the print server, it will receive a copy of the print driver from the print server.
- Tthe Graphics Device Interface (GDI) of the client computer receives the print request and sends the print request to the print device driver.
- The print request driver will produce a EMF file or RAW print file and send it to the GDI.
- The GDI sends the print job to the print spooler component on the local computer.
- The local print spooler component connects to the print spooler on the print server (or locally spools the file if the printer is on the local computer) and sends the print file.
- The spooler stores the file in temporary storage and sends a request to the print processor.
- If the file is in EMF format it is converted to a RAW print file by the print processor for the specific print device the print job is being sent to. The RAW file is a file converted from DDI commands to commands specific for the print device the job is being sent to. A separator page is attached if it was requested.
- The print job is sent to a specific print monitor for the given print device. It will complete the process of sending the job to the print device and monitor the progress of the job.
- The print device will print the print job.
The "Add Printer Wizard" in the "Printers" folder is used to add printers. Users who do this must be an Administrator or Power User. Windows 2000 will detect USB plug and play printers, but a parallel printer must be added manually. To add TCP/IP printers, use the "Add Printer Wizard" to add the printer, select "Create a new port" and select "Standard TCP/IP Port". You'll enter the printer name or its IP address.
To add UNIX printers, the "Add/Remove Programs" applet in the Control Panel can be used to install "Print Services for Unix". Use the "Add Printer Wizard" to add the printer, select "Create a new port" and select "LPR Port". You'll enter the printer name or its IP address and the name of the print queue for the print device.
Old HP print devices may use the DCL protocol rather than TCP/IP. If you connect to one of these printers, use the "Control Panel", "Network and Dial-up Connections" applet to add the DLC protocol, then use the "Add Printer Wizard" to add the printer. You must "Create a new port" and select "Hewlett-Packard Network Port" and enter the MAC address of the printer card that the printer uses. Choose "Job Based" connection if more than one computer is using this printer. Choose "Continuous" connection if this is the only computer to use the printer.
To add an AppleTalk printer, use the "Control Panel", "Network and Dial-up Connections" applet to add the AppleTalk protocol. Use the "Add Printer Wizard" to add the printer, select "Create a new port" and select "AppleTalk Printing Devices". Select the divice from the list. If you capture the print device, this will be the only computer that can use the print device.
Internet Printing Protocol (IPP) is used to communicate with internet printers. Id does not need installed since it is a part of Internet Explorer and IIS. Internet Explorer is used to connect to these printers and you must know the URL of the printer since you cannot browse for it.
To share a printer, right click on the printer, select "Properties", click the "Sharing" tab, click the "Shared as:" radio button and enter the name you want to call the printer. To list it in Active Directory, click the "List in the Directory" checkbox.
The Add Printer Wizard is used to create or add new printers (print drivers). The Add Printer Wizard may be started by selecting, "Start", "Settings", and "Printers" or by selecting "Printers" in "My Computer". Printer drivers that support other operating systems such as Windows 95 may be installed on the computer that is hosting the printer. This way if a client computer with that operating system tries to use the print device and does not have a print driver, it can still print since the print driver will be available from the print server.
Printer Properties window tabs:
- General - A printer comment (textbox) can be added, printer location may be described (textbox), the print driver selection may be made (dropdown box/NewDriver button), placement of separator pages (button) is selected, the print processor is selected (button), and a test page (button)may be printed. Available separator pages are in the WINNT40\SYSTEM32 directory and are:
Separator pages are text files and may be created with any editor. Some separator page control characters are:
- SYSPRINT.SEP - This page is compatible with PostScript print devices and will print a page at the start of each document.
- PCL.SEP - Sets PCL mode for HP print devices and prints a page at the start of each document.
- PSCRIPT.SEP - Makes HP print devices switch to PostScript mode. A page is not printed before the print document.
- \D - Date
- \H - Followed by a specific control sequence for the print device will perform a specific control on the printer.
- \N - User name that sent the print job.
- \T - Time
- Sharing - Allows other stations to use the printer. The print server can be configured here to download print drivers to other computers that access your printer. Windows NT 4.0 printer permissions:
- No Access - The group or user with no access will not be able to use the printer.
- Print Permission - Users may send print jobs to the printer and manage their print jobs by using the delete, pause, resume, and restart functions on their own print jobs.
- Manage Documents - Allows the user or group with this permission to manage jobs sent by other users or groups.
- Manage Printers - The user or group with this permission may change printer permissions, delete or add printers, enable and disable sharing, and change other print settings.
- Ports - Multiple print devices that are in the same print pool may be added (Print pooling is enabled here). A print job may be redirected to a file. Also a printer may be redirected to another print device so long as the other device is of the same type.
- Advanced - Controls print priority (1-99), when printing starts relative to spooling or whether to spool at all, hours of availability for the print device. Spooling Options include the default selection of "Spool Print Documents so program finishes printing faster", causes the job spool to the hard drive allowing the application to return faster. The two sub options to "Spool Print Documents" are "Start Printing Immediately" and "Start Printing After Last Page Is Spooled". Another option is "Print Directly to the Printer" that does not allow spooling of the print job. Checkboxes include whether the spooler should hold mismatched jobs, whether to print spooled jobs first, whether to "Keep documents after they have printed" and "Enable advanced printing features". Scheduling priority can be set from 1 to 99 with 99 being the highest priority. To make scheduling priority effective, more than one printer driver with different priorities may be associated with one print device. This tab also controls hours of operation for the printer. A new print driver may be added here. Buttons at the bottom include "Printing Defaults", "Print Processor", and "Separator Page".
- Security - Permissions are set here. There is a box that contains a list of users or groups that can have permissions. Users and groups may be added or deleted. Permissions each have an allow or deny check box for each user or groupas follows:
- Manage Printers
- Manage Documents
- Device Settings - Sets up device specific settings such as printer fonts, default tray, available printer memory, and font substitution table.
Multiple print devices may support one printer (driver) with a print pool. Print jobs are sent to the next available print device. All print devices must be of the same type, however, since the printer (driver) must be able to interface to all print devices in the print pool. Windows for workgroups (WFW) cannot spool to an NT printer pool, but Windows 95 through NT4.0 can.
Managing Print Jobs
Print jobs are managed by double clicking on the desired printer in the printers folder. Menus include:
- Document - Print jobs may be paused (pause), resumed (resume), restarted(restart), or canceled (cancel).
- Printer - Selections are Paues, Resume, Restart, Cancel, and "Properties". Capabilities include:
- The printer may be paused (Pause Printing)
- Sharing and permissions may be changed
- The default printer may be changed
- Defaults for all print jobs may be set
- Printer properties may be set
- Spooler documents may be deleted
- Document List
- All Printers
Printer registry entries
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers - To change the location of the spool folder for all printers, change the value of DefaultSpoolDirectory to reflect the new spool location. This affects all printers installed on the computer. You can also change the spool location of each of the printers installed on the computer individually by modifying the SpoolDirectory value of their key entry.
Two troubleshooting tips
- Remember that the computer spooling the print job must have sufficient space to queue the print job.
- To test, you can print to a file. If you copy the file to the printer port and it prints, either the print spooler is not working or the data is not being transmitted to the printer.
Managing Print Servers
In the "Printers" folder, select "File", and "Server Properties". Four tabs are:
- Forms - Can set the size of the print page and use it as a form.
- Ports - Used to Add, Delete, or Configure ports.
- Drivers - Used to Add, Remove, Update or configure print driver properties.
- Advanced - Used to set the location of the spool folder and set the followint options:
- Log spooler error events
- Log spooler warning events
- Log spooler information events
- Beep on errors of remote documents
- Notify when remote documents are printed
- Notify computer, not user, when remote documents are printed
The Windows 2000 Server system that shares a printer as an Internet printer must have the following installed:
- Internet Information Services (IIS)
Internet Printing Protocol (IPP) is used to support printing from Internet Explorer(IE) across the internet. This provides the ability for clients using IE to print to Universal Resource Locations (URLs), view printer information, and download printer drivers.
Internet Explorer or the Printers folder can be used to manage these printers. Internet Explorer or the Add Printer Wizard can be used to connect to Internet printers.