It looks like, when printing via CUPS, if the PPD file for an installed printer does not contain entries (usually at the end of the file) like:

*DefaultFont: Courier
*Font AvantGarde-Book: Standard "(001.006S)" Standard ROM
*Font AvantGarde-BookOblique: Standard "(001.006S)" Standard ROM
... (lots more)

Then when Wine goes to create the registry entries for the printers, it prints out messages like:

To use WINEPS you need to install some AFM files.
fixme:winspool:AddPrinterW DocumentPropertiesW on printer 'L"i560"' fails
To use WINEPS you need to install some AFM files.

And printing with Wine won't work to that printer.

It looks like the PPD files supplied with CUPS contain those entries, so this is not normally a problem. However, some manufacturers supply PPD files that do not have them. In particular, Canon supplies a nice package of files designed for installation into CUPS under Linux:

ftp://download.canon.jp/pub/driver/bj/linux

The package bjcups-2.4.0 contains this, including PPD files. But the supplied PPD files do not contain the above mentioned entries. Simply copying those entries from, for example, the Wine supplied generic.ppd into the Canon supplied PPD file allows the printer to be installed correctly in Wine and print:

http://www.winehq.org/pipermail/wine-users/2006-July/022856.html

Looking at the PPD spec version 4.3, the "*Font" entries are not part of the required entries (listed at the beginning of section 5, page 41). The same section does say that "Every feature of the device that can be described by a PPD keyword should be included in the PPD file". So it would appear that Canon perhaps should supply them. On the other hand, the CUPS supplied cupstestppd flags the file as "PASS".

It seems to me that Wine probably should work in this case. Would it be acceptable to supply the defaults used in Wine's generic PPD file if they are not in the one being used? I could take a shot at trying to code that if it would be acceptable. Otherwise, I could change the error message to perhaps better explain what the problem is.



Reply via email to