LPD: Difference between revisions
(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...) |
No edit summary |
||
Line 1: | Line 1: | ||
PCL | [[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. | ||
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. | |||
With logging, | 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 other 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 [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]] |
Revision as of 00:22, 15 October 2007
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 other 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.