LPD: Difference between revisions

From Moonlight Design
Jump to navigation Jump to search
(New page: PCL Page is a {{Tech:Win32}} extension of the University of Valencia student Agustin Lopez Bueno's {{Tech:Win16}} [http://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol LPD] Server pro...)
 
mNo edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
PCL Page is a {{Tech:Win32}} extension of the University of Valencia student Agustin Lopez Bueno's {{Tech:Win16}} [http://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol LPD] Server program. This extension added support for [http://en.wikipedia.org/wiki/Windows_95 Windows 95] printing by rendering Hewlett Packard [http://en.wikipedia.org/wiki/Printer_Command_Language printer command language (PCL)] input onto a printer [http://en.wikipedia.org/wiki/Graphics_Device_Interface graphics device interface (GDI)] context, permitting LPD clients to print to any arbitrary destination printer that has a {{Tech:Win32}} driver. I wrote this extension to effectively save the [http://www.gcisd-k12.org/ Grapevine-Colleyville Independent School District (GCISD)] thousands of dollars in their Windows 95 upgrade as this program eliminated the need to license [http://www.netmanage.com/products/rumba/index.asp WallData Rumba] for [http://en.wikipedia.org/wiki/AS/400 AS/400] printer support. IBM's [http://www.google.com/search?q=client+access%2F400 Client Access/400] for Windows 95 provided terminal access, but not local printer access. The GCISD widely deployed PCL Page in its administrative offices for AS/400-to-PC printing.
[[Image:LpdServerConfig.png|frame|right|The LPD Printer System's configuration dialog box, which configures printer queues for the underlying LPD server and the PCL interpreter's settings]] [[Image:Program-lpd3.png|frame|right|The data flow architecture diagram of how the LPD Printer System for Win95 gets data to the printer]] The LPD Printer System for Win95 is a {{Tech:Win32}} extension of the [http://www.uv.es/~webuv/ingles/index.htm University of Valencia] student Agustin Lopez Bueno's {{Tech:Win16}} [http://en.wikipedia.org/wiki/Line_Printer_Daemon_protocol LPD] [http://ftp.man.poznan.pl/winsock-l/printing/prsrv11.txt Server program]. This extension added support for [http://en.wikipedia.org/wiki/Windows_95 Windows 95] printing by rendering Hewlett Packard [http://en.wikipedia.org/wiki/Printer_Command_Language printer command language (PCL)] input onto a printer [http://en.wikipedia.org/wiki/Graphics_Device_Interface graphics device interface (GDI)] context, permitting LPD clients to print to any arbitrary destination printer that has a {{Tech:Win32}} driver. I wrote this extension to effectively save the [http://www.gcisd-k12.org/ Grapevine-Colleyville Independent School District (GCISD)] thousands of dollars in their Windows 95 upgrade as this program eliminated the need to license [http://www.netmanage.com/products/rumba/index.asp WallData Rumba] for [http://en.wikipedia.org/wiki/AS/400 AS/400] printer support. IBM's [http://www.google.com/search?q=client+access%2F400 Client Access/400] for Windows 95 provided terminal access, but not local printer access. The GCISD widely deployed PCL Page in its administrative offices for AS/400-to-PC printing.


The PCL interpreter, which understands the PCL
This print system extends the original Win16 program by using Windows's [http://en.wikipedia.org/wiki/Hooking hook] API to override the "Setup" button to invoke my {{Tech:Win32}}-based configuration program, which configures the LPD server to hand off incoming print jobs to pasprn32.exe. My pasprn32.exe program performed the PCL interpretation and printer GDI context printing. Interestingly, this strategy uncovered a difference between Windows 95 and [http://en.wikipedia.org/wiki/Windows_nt Windows NT]. In Windows NT and higher, the "Setup" button hook successfully launches my configuration program, but it fails to stop the LPD server from displaying its own configuration dialog box, which was properly suppressed in Windows 95.
This program can also be used for UNIX-to-PC printing just as easily as it is used for AS/400-to-PC printing. With the LPD Interpreter (compatible with the HP DeskJet 500), font variations such as bold, italics, and underline contained within reports and the like are retained and printed to any printer that has a Windows 95 printer driver. Other options such as Characters Per Inch and Lines Per Inch allow users to adjust font sizes with ease:


With logging, you can keep track of the print jobs in order to quickly diagnose any problems that might arise with LPD printing. At the user's option, word wrapping may be enabled or disabled so that if a line of text exceeds the page width in the current number of characters per inch, the line can continue in the next line. With this system, you can have up to 20 printer queues that are referenced by the LPD client's destination queue. This way, you can customize font and print settings for different programs on your host without having to manually switch between settings on the client for different print jobs. Alternatively, you can have one LPD Printer System process printer data for up to 20 different printers that are either physically attached to the server's ports or on other Win95/NT computers across the network. The possibilities are limitless!
With logging, it's possible to keep track of the print jobs to quickly diagnose any problems that might arise with LPD printing. At the user's option, word wrapping may be enabled or disabled, among other options.


If you have just upgraded to IBM's Client Access/400 for Win95 only to discover that PC Printer Sessions are no longer available, then this program is for you! This was exactly what happened to GCISD and was why this product was created. GCISD's only option before this program was to purchase the $100 WallData RUMBA Win95 product for each computer with a printer in its network, amounting to thousands of taxpayers' dollars. With the LPD Printer System for Win95, GCISD no longer needed to buy RUMBA upgrades in most cases and could continue the deployment of Win95 more quickly than before. If you have this situation and want more information on how to configure an AS/400 to use LPD, just e-mail me for more information :-).
This system supports up to twenty printer queues on one computer, permitting customization of font and print settings for different programs on a AS/400 or UNIX host without having to manually switch between settings on the client for different types of print jobs. It's also possible to have one computer running this system handle printing for up to twenty different printers that are either physically attached or on another computer across the network.


Note: Because some of the components of this program were created while I was employed at the Grapevine-Colleyville ISD, obtaining this program will require their permission. One component is under my control, so you will need my permission too. To make this less complicated, I can obtain the permission from GCISD for you if you ask. Thank you :-)!
Because some of the components of this program were created while I was employed at the Grapevine-Colleyville ISD and the [http://ftp.man.poznan.pl/winsock-l/printing/prsrv11.zip original program] is restricted for academic and educational use only, I cannot redistribute this program without permission. Fortunately, free alternatives exist in the marketplace.
 
[[Image:LpdServer.png|frame|none|The underlying {{Tech:Win16}}-based LPD server, which was written by [http://www.uv.es/~webuv/ingles/index.htm University of Valencia] student Agustin Lopez Bueno. I extended it using Windows's hook API]]

Latest revision as of 15:45, 24 October 2007

The LPD Printer System's configuration dialog box, which configures printer queues for the underlying LPD server and the PCL interpreter's settings
The data flow architecture diagram of how the LPD Printer System for Win95 gets data to the printer

The LPD Printer System for Win95 is a Win32 extension of the University of Valencia student Agustin Lopez Bueno's Win16 LPD Server program. This extension added support for Windows 95 printing by rendering Hewlett Packard printer command language (PCL) input onto a printer graphics device interface (GDI) context, permitting LPD clients to print to any arbitrary destination printer that has a Win32 driver. I wrote this extension to effectively save the Grapevine-Colleyville Independent School District (GCISD) thousands of dollars in their Windows 95 upgrade as this program eliminated the need to license WallData Rumba for AS/400 printer support. IBM's Client Access/400 for Windows 95 provided terminal access, but not local printer access. The GCISD widely deployed PCL Page in its administrative offices for AS/400-to-PC printing.

This print system extends the original Win16 program by using Windows's hook API to override the "Setup" button to invoke my Win32-based configuration program, which configures the LPD server to hand off incoming print jobs to pasprn32.exe. My pasprn32.exe program performed the PCL interpretation and printer GDI context printing. Interestingly, this strategy uncovered a difference between Windows 95 and Windows NT. In Windows NT and higher, the "Setup" button hook successfully launches my configuration program, but it fails to stop the LPD server from displaying its own configuration dialog box, which was properly suppressed in Windows 95.

With logging, it's possible to keep track of the print jobs to quickly diagnose any problems that might arise with LPD printing. At the user's option, word wrapping may be enabled or disabled, among other options.

This system supports up to twenty printer queues on one computer, permitting customization of font and print settings for different programs on a AS/400 or UNIX host without having to manually switch between settings on the client for different types of print jobs. It's also possible to have one computer running this system handle printing for up to twenty different printers that are either physically attached or on another computer across the network.

Because some of the components of this program were created while I was employed at the Grapevine-Colleyville ISD and the original program is restricted for academic and educational use only, I cannot redistribute this program without permission. Fortunately, free alternatives exist in the marketplace.

The underlying Win16-based LPD server, which was written by University of Valencia student Agustin Lopez Bueno. I extended it using Windows's hook API