|Enhancing Printer Emulation Performance|
Q. Why does it take so long to print a Host Document?
What happens when a Host Document is printed
When a host document is generated for printing, it is first queued in the assigned host printer output queue. From there, additional formatting commands are applied by the host system as it is being spooled to the attached printer device. The data is then sent in blocks over the connection media to the receiving terminal (in our case a PC running Windows and the Printer Emulation program). There the Printer Emulation program must convert the printable data from EBCDIC to ANSI, interpret the formatting commands and generate corresponding Windows formatting commands for the selected PC printer driver. Once the Windows Printer driver has a page of data, it is then converted and interpreted from Windows formatting commands into native commands for the target PC printer. This data is then spooled on the PC's Hard Drive and a corresponding entry is added to the Print Manager. The Print Manager then waits for completion of the entire document before sending it to the target PC printer. Note that if the target PC printer is not directly attached to the host PC, but rather on a PC network, then usually this document is spooled once again on the Network Server and accumulated in its entirety before being sent to the target PC printer.
Making this mess run faster and more efficiently
The Host System
The speed at which the host system sends the block of print data depends on raw power of the host computer, the number of jobs running, the number of terminals connected, the number of concurrent users currently attached, and the host configuration of the Print spooling subsystem.. The one other factor is the speed of the connection. EtherNet is usually faster than Token Ring which is usually faster than Twinax which, in turn, is usually faster than ASYNC. And with most of these, that speed depends on the amount of "other" traffic on that line.
The Personal Computer
A faster PC is always nice here, but not always fiscally feasible. More memory can make a big difference, especially if you only have 4MB. A bi-tronics high speed parallel card can make a night and day difference here too. If you don't have one, you could be missing out.
There are many things that can be done within Windows to expedite the printing process.
The Print Manager
First, if your Target PC printer is connected via a network, then turn off Print Manager. If you are directly connected to the Target PC printer, you can still try turning off the Print Manager, but be forewarned that this can make other Windows application appallingly slow! The "Use Print Manager" checkbox is located in the Printers Icon of the Windows Control Panel.
The Printers Control Panel Icon
Second, try turning on the "Fast Printing Direct to Port" checkbox in the Connect dialog of the Printers Icon in the Windows Control Panel for that printer. Note that on some systems, this makes things even worse! So if it is on, try turning it off!
The Printer Driver
Third, get the newest Printer Driver for your Target PC Printer. The ones that came with Windows are mostly just re-hashed Windows 3.0 or 2.0 printer drivers and have not been optimized for Windows 3.1. These can normally be found on the Manufacture's BBS, CompuServe or other nationwide BBS services.
Now, for the Printer Emulation program, there are quite a few adjustments that can be made with the latest version of the Printer Emulation Program for the sake of speed. Note that all of them have drawbacks.
From the Main Window of Printer Emulation
On the main Printer Emulation Window is a scrollbar labeled "Printing Priority". This little widget controls how much time the Printer Emulation program has at a crack to process the host printing commands. Moving the thumbar to the left gives the program more time to work (to the detriment of other Windows programs) and moving it right slows it down (allowing other programs to run better). Note that if you move the thumbar all the way to the left, you'll be giving Printer Emulation essentially everything Windows and you PC has to do the work and nothing else will be able to run! Not always a good idea.
On the Advanced Options Dialog
On the Options Menu there is an item called "Advanced". If the documents are printing quickly once they get to the printer, and the print head (if it has one) just whips along, but it just takes forever to begin printing, then this is the place to look.
Seconds to Wait...
The first option "seconds to wait..." controls how long the Printer Emulation program will wait for more print data from the host before releasing it to the Windows Printer Driver. Most of the time, the Printer Emulation program can sense when a document is finished from the host, but occasionally it can't. So the program must wait a predetermined time just to be sure there is no more data. You can adjust this value, putting in smaller and smaller times to see if it helps any. Note that if the value is too small, you will get incomplete pages printed. This is because the Emulation Printer closed the document before it was really done. On a taxed host system it can take upwards of 20 seconds to send another block of print data. So be careful!
Pages Per Block
The other option, "pages per block..." is only of use if the Windows Print Manager is being used. Since the Print Manager will not print a document until it has spooled on disk in its entirety, it can take a very long time to start printing (especially if the host document is 100+ pages)! This option allows us to "fake out" the Print Manager into thinking a document is done by chopping that document into smaller sub-documents. A value of one will make each page a new document, a value of 2 groups every two pages, and so on. A value of 0 means no chopping is done. Be careful here too! The Print Manager has a fixed maximum number of documents it can spool at a time. If it reaches this limit, because the printer can't print them fast enough, then the Print Manager will start throwing the excess documents away. It will warn you but there is nothing you can do about it (nice, huh?). So, chopping a 100 page report into 1 page blocks would probably not be a good idea.
On the Page Setup Options Dialog
Now if the data gets to the printer fast enough, but the printer is slow in printing it, its probably due to all the adjustments the Printer Emulation program has to make in order for the document to as closely match what the host system wanted in the first place. Let's bring up the Page Setup dialog from the Options Menu of the Printer Emulation program and take a look at it.
First thing to do is set your Resolution to the highest DPI (Dots Per Inch) available. I know this sounds wrong, but setting it this way gives you, the user, more options and control over margins, font mapping and many other functions. If there is nothing available, just leave it as "Windows...". This means that the Windows Printer Driver won't tell the Printer Emulation Program if there are any other available resolutions, or that the Windows Printer Drivers does not support any other DPI.
Font mapping can make some of the most dramatic differences yet when concerned with printing speed. The Printer Emulation program has been written to make the document look as nice as possible and to match the original host Document setup as closely as possible. But because the host system has no idea whatsoever as to the capabilities of the ultimately targeted PC printer, it can and will select formatting options and font selections that don't match at all what your PC printer can do. When you produce a report in say Microsoft Write, you can see and select the available fonts and sizes from the list presented by the program. The host system can't and won't do that. If what the host wants doesn't have a perfect match on the target PC Printer, the Printer Emulation program can't say "Sorry, try again": it has to make do with what's available and print with it. The Printer Emulation program goes to great lengths to ensure you get the best possible looking printout. Speed can suffer because of this. There is no substitute for the human brain - this is where you come in:
Whew! I had no Idea!
This pretty much covers all that is involved in printing a host document. As you can see, because features between the host system and the PC printer rarely match, decisions must be made and sacrifices taken in order to produce the best correspondence between what the host system asked for and what the PC printer can print. A major decision affecting the design of the Printer Emulation program was to produce, as acuratly as possible, the printed document as defined by the host system - even at the expense of speed - but to allow users to override this feature if they wish. We feel we made the right decisions, and we hope you will agree.