http://www.linuxprinting.org, but in order to use most of them you need ghostscript and the device (printer) you want to use compiled into the gs binary.
Some problems: Can't print from applications. Can print from lpr or by dropping files into the Print Center. I'm sure someone could shed some light on the reason why. So far I've printed a .rtf, .txt and .pdf using lpr or dropping the file to the printer in the Print Center to a Canon LBP8 using LPD on a UNIX server with success.
[Editor's note: I have not tested this one...]
You need the cupsomatic perl script. The cupsomatic script is available from here on the linuxprinting.org site. Once you have it, you need to set the Postscript to text converter command in the script but luckily OSX has "enscrpt" included. So you can set the enscript command to this or create a file /etc/foomatic/filter.conf with a line "textfilter: enscript" then copy the cupsomatic script file to /usr -> libexec -> cups -> filter and chmod 755. In your terminal type:
% sudo cp cupsomatic /usr/libexec/cups/filter/Here's what you need to build ghostscript:
% sudo chmod 755 /usr/libexec/cups/filter/cupsomatic
- libpng source
- zlib source
- jpeg source
- GNU ghostscript source
- OS X Developer Tools
Ghostscript has support for loads of devices but only a small few are compiled in by default. A list of all the devices included with ghostscript can be found in the files contrib.mak and dev.mak in the src/ directory in the ghostscript source distrbution or here on gnu.org.
It's way easy to include other devices. Just find the printer you're after in either dev.mak or contrib.mak then open Makefile.in which is located in the ghostscript root source tree and add that device to one of the DEVICE_DEVS lines. For example, if you were add support for a Canon LBP8 (not complied by default), just add "$(DD)lbp8.dev" without the quotes to DEVICE_DEVS6. This is what it looked like by default:
DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev
This is what its looks like after the addition of the LBP8 device:
DEVICE_DEVS6=$(DD)lbp8.dev $(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev
Note that there are just spaces between the different devices. You can add as many as you like. The only problem will be increased compile time. On an iBook 500Mhz with 384M RAM, it took about 15 minutes to compile all the default devices plus one. Check out the README in ghostscript source for more information.
Now you're ready to compile it. Open a terminal if you haven't done so yet, change directory into the ghostscript folder and type:
% ./configureIf all goes well, you should have a gs command installed into /usr -> local -> bin. Test if your device was compiled in by typing "gs --help" (if the command isn't found, it's because /usr/local/bin/ isn't in your PATH). It should also show up in the available devices.
% make
% sudo make install
Now you can go over to the driver list on linuxprinting.org and choose a printer and "Generate PPD file" for your printer. Save that file to your desktop as PrinterName.ppd. You now need to gzip the PPD file and mv it to /Library -> Printers -> PPDs -> Contents -> Resources -> en.lproj. So in a terminal type:
% gzip PrinterName.ppd[The last command is shown on two rows; enter as one.]
% sudo cp PrinterName.ppd.gz
/Library/Printers/PPDs/Contents/Resources/en.lproj/
You should now be able to open up Print Center and add your new printer. While holding down the Option key, click on "Add" then choose "Advanced" from the top drop down menu and set up your new printer.
Happy printing!

