Oi, now I have entered the execution data of all printer drivers listed on www.linuxprinting.org (except the Seiko label printer driver "slap" which does not support PostScript or graphics input), which means that when you update to the newest packages of GhostScript and CUPS-Drivers from the Cooker (backport for 7.2 comes later) all printers listed on www.linuxprinting.org will work as described there. But many printers (especially laser printers) do not simply print the document as generated by the printer driver, they accept also some extra commands (so-called PJL commands), sent before the job is sent, to access special printing modes as toner saving mode, smoothing of edges (REt), input tray selection, usage of finishers, ... This works for both PostSctipt and non-PostScript printers. Unfortunately, the database of www.linuxprinting.org does not contain many PJL commands, and I have found out how to read the available ones out of the printer. So I ask you to read out the PJL options of your printer and send them to me (to me, not onto the lists, to prevent them from being flooded). Read the attached file or surf to http://www.linuxtag.org/2001/deutsch/showitem.php3?item=194&lang=en to see a call written by Kurt Pfeifle who is the author of many printing articles in the german "Linux Magazin". It contains all info which you need to do the check. Thank you in advance for your PJL option files. TillTitle: Call for Support: Collection of valid PJL commands for all printers by "Linuxprinting.org"
Call For Support:
Collection Of Valid PJL Commands For All Printers By "Linuxprinting.org"
Every user with a printer can help to achieve a better Linux print support. Wanna help out?
PJL And The Linuxprinting Database
You are asked to help fill the Linuxprinting.org Database with valid pieces of info concerning the PJL commands understood by your printer. Every user with a printer connected to a parallel or USB port can help to achieve a better Linux support for his printer (if not working perfectly already).
The Database has been built and accumulated by Grant Taylor, the well-known author of the Linux Printing HOWTO for quite some time. It is a key for the achievement of one (or some?) hi class Free printing system(s) for Linux. For quite a few printers the data about working PJL commands are still very incomplete. The quicker and the more precise this gap is filled the more profound and rapid the Linux support for modern printers in a Linux environment (and, in fact, amongst other Free Unix-like operating systems as well as non-Free ones) will develop in the months ahead. The database is not just of a huge advantage for CUPS -- other printing and spooling systems will also benefit a lot, like BSD-LPD, LPRng or PDQ.
On the backgrounds and workings of this database you might want to read a bit in my (so far German-only) "CUPS-FAQ". If there is comcern, I could do a translation of a more detailed explanation of this action also comprehensible for newbies. (Hello, you editors of printed magazines: isn't this a good story for you as well? The author's fee I'll donate to a free software project... ;-)
This here is just a short shot.
A Shell Script To Read The PJL Capabilities Off The Printer
Keying in the PJL info for thousands of printers off the vendor's documentation is very tiring and error-prone. Is this docu available at all? Is it complete? Is it correct? -- There's a better way to find out, with your help: ask you printer directly, what it supports... Till Kamppeter, architect and maintainer of the new Mandrake 7.2 printing system which chose CUPS to be the premium install (Till is also author of the free GUI Tool for CUPS, XPP), has presented a small shell script to help you do the job. Every Linux (and maybe, BSD) supporter can use it to ask his printer(s) about their level of PJL support. The results will go into the database which is designed to become the repository of automatic driver and printer configuration files for the major spooling systems CUPS, LPD, LPRng and PDQ.
Just copy the 6 line shell script beneath, save it with an easy to remember name of your joice and mak it executable:
#!/bin/sh echo "Writing PJL options into opts.txt" echo -en "\0330 ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! @PJL\r\n@PJL INFO VARIABLES\r\n" > /dev/lp0 sleep 1 echo "Press Ctrl+C" cat < /dev/lp0 > opts.txtI'll outline in a minute, how the script works. Before that, here's what I did: hopefully usefull for any newbie volunteers wanting to help collect the data...
- The script on my box is called get_pjl_info.sh and I've located it in my home directory.
- Using chmod a+x get_pjl_info.sh I made it an executable.
- Typing ./get_pjl_info.sh I can launch it from my home direcory.
What The Shell Script Needs
To be sucessful, a few preconditions must be met:
- Connect a printer to a parallel port of your PC.
- Use a not too ancient cable supporting bi-directional communication.
- Make sure in Bios the bi-di communication isn't disabled.
- You nust be root to run the script.
- Your Kernel needs parallel port support activated.
So -- reload modules if needed:
root@espprintpro:/home/kurt > modprobe parport_pc root@espprintpro:/home/kurt > modprobe printerCheck the results:
root@espprintpro:/home/kurt > lsmodDoes it show up entries like parport_pc, parport, printer, und lp ? OK, you're nearly done...
If you use an USB-connected printer the script needs a slight modification. Instead of /dev/lp0 insert /dev/usb/lp0 at two places. And of course your Kernel needs to support USB. You might need to load the USB module:
root@espprintpro:/home/kurt > modprobe usbcore
How The Shell Script Works
The script uses a PJL command to ask the printer about further PJL commands it understands and supports. If there is communication at all, the script writes every retransmission of the printer into the file opts.txt. If the script doesn't stop after the printer finished responding, just use STRG + C to abort it. Now have a look into the harvested file: you may have some readable output in there. If it is empty, there was no answer from the printer. If additionally the printer prints something, it does understand ASCII.
Before you test your next printer please re-name the file opts.txt to some name you can easily associate with your first printer; that way you avoid it to become overwritten .
root@espprintpro:/home/kurt > mv opts.txt HP_LaserJet_5L_opts.txt.Till collects all renamed and non-empty opts.txt-files:
[EMAIL PROTECTED]Please take care to give an exact modell name of the printer. Till will translate the results of your investigations as soon as possible into new or updaed database entries. Every additional entry will advance printing support of free software a little step (not just CUPS, but also LPD, LPRng and PDQ!)
Till asked to run the script even if an old entry in the linuxprinting datenbase says the printer in question doesn't support PJL; this info could be wrong. Also, existing entries in the database could be incomplete.
Most existing entries concerning PJL have been typed in from official vendor manuals. However, Till discovered using his script about an undocumented, but supported and welcome behaviour of the HP LaserJet 4050: this one changes its default language at the User Display through a PJL command. This even dispite the fact, that there is neither a possibility in one of the front panel menues for this nor a hint in the Manual. But his script brought it to the light and let him find out which command to use... Now watch out: You soon might have even more options at your finger tips than your colleague still enchained to a Windows box! And once there was a time, that you was suffering from jealousy when you watched him running the large office printer from his desktop using all the printers bells and whistles? Never again.
Written by:
Kurt Pfeifle, author of the CUPS-FAQ
e-mail: [EMAIL PROTECTED]
More Infos:
http://www.linuxprinting.org/newsportal/
http://www.linuxprinting.org/newsportal/article.php3?id=78&group=linuxprinting.foomatic.devel
http://www.danka.de/printpro/faq.html
Licensing of this document:
Copyright 2001 Kurt Pfeifle, author of
CUPS-FAQ
e-mail: [EMAIL PROTECTED].