Can (CUPS) ppd files for Mac OS X be used for linux?

I was in the same situation. I've got a Fuji Xerox Docuprint CM305df and unfortunately Fuji Xerox do not provide linux drivers (why!?!?). But they do provide a Mac OSX PPD driver!

A simple case of just using that, right? Well, PostScript Printer Description (PPD) files are platform independent, but as you (and I) found out, it can contain operating system specific entries (e.g. Mac OSX) which renders the PPD unusable on another operating system (e.g. Linux), unless you make some changes first.

I was able sucessfully get my printer working on Linux Mint 13 (CUPS 1.5.3) by editing the Mac OSX PPD file and removing superficial Mac OSX specific entries and substituting a Linux cupsFilter in place of the MacOSX one (as mentioned by Gilles, see Step 3 below - I hope it works for you too).

As you've noted, the *OK... lines are probably vendor specific entries for your OKI printer. I'd leave those as they are because it might provide you with settings/options for managing the printer as I spotted some *FX... lines when I was editing my PPD file. I ended up having 11 pages of options when using the Fuji Xerox driver as opposed to only 4 pages when using the "Generic PCL Laser Printer (en)" driver.


Just in case anyone else wants to do the same, here's what I did.

1) Download the "Mac PPD and Plug-in Installer" from Fuji Xerox's website and extract the PPD file (I installed it on a Mac running 10.6 and I found the PPD file inside /Library/Printers/PPDs/Contents/Resources/FX DocuPrint CM305 PS.gz).


2) Delete the following lines:

*APPrinterIconPath: "/Library/Printers/FujiXerox/Icons/FX DocuPrint CM305.icns" *APDialogExtension: "/Library/Printers/FujiXerox/PDEs/FXOPSCJHAccount.plugin" *APDialogExtension: "/Library/Printers/FujiXerox/PDEs/FXOPSCJHImageOptions.plugin"


3) Replace the following line:

[OLD] *cupsFilter: "application/vnd.cups-postscript 0 /Library/Printers/FujiXerox/Filter/FXOPSCJHFilter"

with this line:

[NEW] *cupsFilter: "application/vnd.cups-postscript 0 pstops"

cupsFilter documentation


PPD files are platform-independent. However, they may reference external executables, and those are platform-dependent. In particular, cupsFilter specifies a program that converts the input from a format that CUPS understands (here, application/vnd.cups-raster, i.e. a bitmap format) into a format that the printer understands. You'll need to find a Linux version of the filter program to use this PPD file under Linux.

To see the state of Linux support for a printer, look it up in the OpenPrinting database.

Since the printer accepts PCL6, you may well be able to use that PPD file and just replace the filter by a generic raster-to-PCL filter.