Printer fonts

Duane Clark dclark at akamail.com
Wed Jul 12 12:26:09 CDT 2006


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.




More information about the wine-devel mailing list