I get asked to help out users every now and then and I've had this
one for more than one user.
It seems daft to me (and to the people who have asked I guess) that I should have to submit a print job to a server which then spools it back to the printer sitting right next to me. Twice the network traffic and I also have to wait for the network adminstrators to set up the queue and give me permissions.
All the network printer adapters I have come across are capable of being LPR servers. Also, most laser printers seem to be capable of PCL and Postscript printing (at a minimum) so I'd like to be the one choosing which I submit please. Not the person who sets up the queue.
So, what do you need to do?
The very first thing you need to do is get some fixes from IBM as none of this has ever worked for me without them. They are known as LPRFILES.EXE - I have a copy of them here, but it may be wiser to go to the IBM web site as there may be a later bunch of fixes. The symptom of the problem is as follows:-
IC15541 - When starting LPRPORTD from the command line on a pristine installed system, the error message "LPR 32.DLL failed to initialize, RC=-20021" is displayed. (lpd.exe, lpq.exe,lpr.exe, lprm.exe, lprmon.exe, lprportd.exe, lpr32.dll)
What this means is that if you do not install these fixes, when you restart your system after configuring the lprportd demon to start, it will fail.
Next, you need to modify your TCP/IP settings so that the lprportd demon is running. This must be running in order to print to an LPD port icon.
After this, restart your system and you should have lprportd.exe in your Window list.
To configure a printer, grab the Printer template (not the Network
Printer template) and create a new printer. Call it what you will,
select the Output Port tab from the Properties of the printer and select
\PIPE\LPD0 (or the appropriate output port - I'm assuming this is your
first try here).
Next, double click on the \PIPE\LPD0 icon and the following will appear.
Only two fields need to be filled - the LPD server field and the LPD printer field. In the LPD server field, enter the ip address or the name of the printer. The tricky bit is filling in the LPD printer field. Each manufacturer's network adapter seems to have a different standard.
For HP JetDirect adapters, use raw or text - lower case is important
(according to their web page - I find lp works fine). If you have
an HP EX +3 Jetdirect device, use raw or text plus the port number - eg
raw1 or text3
For Lexmark Marknet adapters, use optra1 (again, lp may well work)
For Tektronix adapters, use PS for Postscript, HPGL for, uh, HPGL,
PCL for PCL or AUTO for automatic detection
If you know of any more, let me know and I'll add them.
The easiest way to find this information out is to go to the web site of the manufacturer and check out their tech. support pages. The best place to look seems to be their technical information on Unix/Linux printing.
If you get this wrong, it's my experience that you'll get an error message asking for an LPR.INI file. This seems to be a bit of a red herring. Get the fields filled in correctly, and you'll not have to worry about LPR.INI.
All this should give you the ability to print from PM applications (try EPM or suchlike), printscreen (set the LPD printer as the default printer and hit print screen) and also print from the command line using the LPR command. I haven't needed to print from WIN-OS/2 apps yet, but LPRMON leads me to believe that I can 'map' LPT1 to \PIPE\LPDx if I need to.
A good link for further information is on the IBM Redbooks page - http://www.redbooks.ibm.com/abstracts/sg244730.html
My only additions are that CPU utilisation goes sky high as your PC creates the spool file, and also that printer drivers are important here. I cannot get good prints from my HP 4000 using the PCL driver (great big black splodges all over it), but I have no problems with the Postscript driver.
Good luck.
Email me if you want some more information.
Beta 0.3
Date 22/09/1999