Weblog Navigation

First Previous Index Next Last

Old-School Mac Hacking

Sunday, 19th March 2006

I just acquired an Apple Personal LaserWriter 300. This is an obsolete (but still working), completely proprietary laser printer. It connects to a serial port, and does not understand PostScript. The printer itself does not communicate over AppleTalk, but you can configure the driver to share the printer over an AppleTalk network; each client machine must have the driver installed. The driver, of course, is only available for Mac OS (not Mac OS X). It apparently uses QuickDraw, which if I remember correctly is the API to display graphics on the screen (analogous to Quartz in Mac OS X).

So I wanted to be able to print to this thing through CUPS across the network. I already have a CUPS server running, sharing my USB inkjet printer (and Samba uses CUPS, so Windows clients can print too). The trouble is, there is no CUPS driver for this printer, and it's quite likely that there never will be.

I started by installing System 7.6 on a Performa 6116CD (it had previously been running an unofficial PowerPC port of Slackware Linux using a hacked-up kernel). I then installed Adobe Acrobat Reader (version 3.0!). I created a shared folder on my file server, and set the Performa to automatically mount the folder over the network.

I then installed a plug-in for CUPS called CUPS-PDF, which lets you create a virtual printer in CUPS that actually generates a PDF file and places it in the folder you choose. I set it to create the PDFs in that shared folder I had created.

The next step was to write an AppleScript which continually checks to see if any files are in the shared folder, and if so, launch Acrobat Reader and print them. Just one catch: the print confirmation dialog box that lets you enter the number of copies you'd like to print, etc. I couldn't figure out how to bypass that dialog - at least not anything that worked in the version of AppleScript that ships with System 7.6.

Finally I remembered an old shareware control panel called Okey Dokey Pro, which will automatically click the OK button for you after a time delay. I set it to only work in Acrobat Reader, and to dismiss any dialog box after a one-second timeout. That did the trick!

So now the CUPS test page works. Unfortunately, when I try to actually print a document from my iBook, I wind up with a 321-byte PDF file that Acrobat Reader won't open (of course, Okey Dokey Pro happily dismisses the error message, and my AppleScript deletes the file). I have no idea what's going on here. The crazy Mac hacking part works perfectly, but something involving Ghostscript seems to be monkeying up the works. Well, I'll mess with it later. It's time for bed.


Weblog Navigation

First Previous Index Next Last