The importing fonts to CUPS saga continues. Please bear with me -
this has turned into quite an essay.
There must be somebody here who understands how CUPS references Type1 fonts. I have a problem which has resisted solution for well over two years now. No help from the CUPS documentation, which comes in eleven volumes, nor from www.linuxprinting.org, or from any other source. Linux Format Magazine has refused to respond to two enquiries about this, nor has anybody on this list responded to previous pleas for help. I post this in the hope that some expert might be browsing the list and willing to shine a little light on this shadowy corner of the UNIX world. Any answer needs to be useful in the context of Mandrake and portable from 8.2 to 9.* - I gather that there has been a recent change in the way that CUPS and Ghostscript interact.
My specific problem is adding more typefaces to PostScript files generated from one of my home grown applications; i.e. the file might reference Andale Mono, Verdana, Tahoma, Densmore or whatever. Yes, I do have a Window$ licence, OS not installed. These are all available to X and to OpenOffice.org but not apparently to CUPS, and CUPS does not appear to have a regular mechanism for importing fonts. Presumably everything has to be done by hand. I have converted the TrueType fonts to Type1 .pfb files and placed these in the /usr/share/cups/fonts directory under the names, for example Verdana, AndaleMono, Verdana-Bold, etc, in imitation of the existing font names (and restarted CUPS) but they still print as the default Courier typeface. The default set of fonts are listed in the PPD file in /etc/cups/ppd but it is not clear how font information should be added to this file. The meaning of the various fields is not documented.
This may all be nonsense. Maybe the font files should go somewhere in the Ghostscript font path together with fonts.dir, fonts.scale and fonts.alias files. I really don't have a clue.
Before I sign off, this is my impression of how CUPS works:
lpr -> CUPS -> GS filter PPD
| |
| |
pstoraster -> driver
|
|
spooler? -> printer
This again may be wrong. Please correct me somebody.
In words; a postscript file, for instance, is given to lpr aka lpr-cups which passes it on to Ghostscript for filtering (if it were raw text it would be converted to PostScript format). If the printer is not PostScript capable, the file is fed to the rasterization section which generates a bitmap of the printed page. This then goes to a printer specific driver which converts it into a series of graphics commands native to the printer. The driver may consult the PPD file for defined or allowed options as well and the result is delivered to the spooler which stores it on disk for a while before it, or some other daemon, dumps it to the printer.
Somewhere in there the system must try to locate the font resource specified in the PostScript file, but where exactly, and what form does the resource take?
All this has taken up far more than the 3.5 minutes I have to spare each day (and I am not kidding) so help would be appreciated and would surely be of interest to other members of the list.
Understanding linux printer setup is not easy, and so here is my best try,
The natural output of Linux print commands is in Printer Control Language 5 (PCL5) , while most dos inkjet printers rastorize the image files in Printer Control Language 3 (PCL3) to accomodate this problem Ghostscript converts PCL5 to PCL3. To speak of ghostscript as drivers is something of a misnomer, as it's a conversion programme.
Your dos inkjet printer has a rastor image processor chip in PCL3 and a certain amount of buffer as well but as I understand it the control of the page setup is what PPD does.
LPD is the local printer daemon and generates the PCL5 image file , I think? and the image file is processed through to ghostscript where the conversion to PCL3 is accomplished, using so called backend filters.
Somewhere in all this is Foomatic , which I have never yet come across an explanation of.
John
--
John Richard Smith
[EMAIL PROTECTED]
Want to buy your Pack or Services from MandrakeSoft? Go to http://www.mandrakestore.com