Apache OpenOffice (AOO) Bugzilla – Issue 15377
Font Substitution under spadmin
Last modified: 2003-08-14 16:56:44 UTC
I have absolutely no idea where to put this, so I'm trying here. Under spadmin, selecting Properties and font substitutions, the list of fonts available for the printer is severely limited. It should match the fonts installed on the system instead of a tiny subset of the fonts as it does currently.
Hi Hasan, please have a look.
HI->PL: Do we have a problem here?
So which fonts does it not find ? Please not (fixed) issue 12936 which left certain type 1 fonts unfound.
Please read that "note" instead of "not"
I just sent an attachment illustrating the issue (using 1.1beta2 -- same problem in 1.0.1 and 1.0.3.1). I have 346 fonts installed, with about one-third Type 1 fonts and the rest True Type fonts. The ones showing in the previously sent .png file are the only ones to show up in any version. I want my font replacements to match those in OOo documents, not a very limited sub-set of them.
I can understand that. But where are the unfound fonts ? Are they to be found in the X font path ? Can they be found using /usr/sbin/chkfontpath ? Or are they stored somewhere else entirely ?
I don't have chkfontpath. Don't need it. All my fonts are found in /usr/X11R6/lib/X11/fonts/TrueType and (same directories)/Type1. Every program finds them. OOo finds and uses them. Only spadmin cannot use them. BTW, this has been the case in 1.0.1, 1.0.3.1 and now 1.1b2. It shows a very limited set of fonts. I have no fonts anywhere else except in the OOo font directory (where I had to put the TrueType fonts since OOo 1.1b2 could only find Type1 fonts -- which is another issue as 1.0.1 and 1.0.3.1 found both types).
Are you talking about the "To" box on the font substitution page ? If yes, then the limited choice contains what it should: the printer's builtin fonts. This is what the printer fontsubstitution was designed for: it should enable you to transparently map specific fonts to printer builtin fonts to make the PostScript file produced smaller (e.g. replace "Arial" by "Helvetica" which looks the same but is built into the printer so you don't need to download "Arial"). The printer font substitution is not a replacement for the font substitution inside OOo which you get with tools->options->OpenOffice.org->Fonts, that one enables you to replace arbitrary fonts by other fonts.
No!! It's not in OOo, itself, but in spadmin > Properties. Clicking the Font Replacement tab brings up a table with four boxes underneat. The one marked "by printer font" has a VERY limited number of fonts. It does not have all the Type1 fonts nor any of the TrueType fonts, and the Epson C80 will support one heck of a lot more fonts than are shown.
That's exactly what i said: the font substitution in spadmin is supposed to enable you to replace fonts by printer builtin fonts; that is why the "to" box only contains the fonts built into the printer. For the same reason the printer's builtin fonts are missing from the "from" box. This is simply meant as a replacement for fonts that can be simply replaced by the printer's builtin fonts. Builtin fonts are neither TrueType nor Type1 fonts, they don't need to be downloaded to the printer (which is the whole point of the font replacement in spadmin). If your printer supports more builtin fonts than are available then you should use the correct driver (actually a PPD file) that states to spadmin which fonts are built into the printer. But actually i doubt that your Epson C 80 contains any printer builtin fonts as it is an inkjet; these depend mostly on downloaded fonts. The fonts you are seeing at all come from the "Generic PostScript" driver you are using - which is actually a good approximation as the "builtin" fonts in this case actually are built into ghostscript which renders the PostScript output of OOo to the binary format your printer will understand. If you want to substitute arbitrary fonts for other fonts because of design reasons, you can (and should) do this directly in OOo on the font substitution page of the tools->options dialogue.
Okay. Where am I getting something wrong here? Ghostscript shows all my fonts. As this is the base driver for my printer, I would think that would dominate. On the other hand, I use cups for almost all my printing (rather than lpr) and that, too, has all the fonts. I may have an idea, but it's too ill-formed to express. I will check with another source and, if it's verified, than I will accept that the problem is a system one rather than a problem with OOo.
Let me rephrase: what is the feature you hope to gain from the font replacement table in spadmin ? Why do think, all your system's fonts should appear in the "to" box of the font replacement table ?
To print what I want to print, how I want it to print, I have to delete a number of "substitutions" found in spadmin. Some I want to replace with Times New Roman (Times does not look the same), and Arial instead of Helvetica. I cannot do that with the limited set of fonts. Apparently this is something very difficult.
But that you can easily do within OOo itself on the font subtitution table in tools->options ?
According to these comments, there is absolutely no need for a substitute font or font replacement in spadmin. I was under the apparently mistaken impression that setting font replacements here was for overall ease in printing documents sent by others. If I am correct and spadmin is simply an unnecessary extra tag-along in spadmin, why not get rid of it entirely?
Because the font substitution list in OOo does not know about printer builtin fonts. The idea of the font replacement table in spadmin is just that: replace arbitrary fonts by builtin fonts that look the same to save PostScript file size (like Arial -> Helvetica, Times New Roman -> Times). This depends on the individual printer and therefore must be regulated on a per printer basis - which you do with spadmin on Unix and inside your printer driver on Windows.
i hope we agree that the functionality already exists in OOo
closing
I understand now that I was correct in how I understood what spadmin did, and my original request for enhancement (or fixed bug) stands. My printer natively supports Times New Roman (which prints quite differently from Times -- the appearance is much nicer in TNR than in Times). It is also on my software, yet there is no way to use it as a substitute font in spadmin. My only option (not explained anywhere) is to remove all substitution fonts from spadmin. That is a workaround, but requires some careful thought on the part of the user. If printer fonts are not in fact included in spadmin (two of the "substitution" fonts are NOT supported by my printer), then I need a way to add supported substitute fonts. This is not possible in any current version of OOo. Either it needs fixing or send a "won't fix" reply.
OOo takes the information which fonts are built into the printer from the PPD (PostScript Print Description) file used. If Times New Roman is not present, then the reason probably is that you are using the "Generic Printer" PPD which in that case would not be appropriate - that is if your printer is a PostScript printer at all. If it is not, then you will never ever see a font really built into your printer at all since the PostScript will be rendered by ghostscript to accomodate your printer which does not use builtin printer fonts at all.
Okay, let me get this straight. spadmin only reports the correct fonts used by the printer if it is a postscript printer (a tiny fraction of those actually in use). If this is true, it should be added to the description. My guess is that this is not a true statement (at least not completely), but that there are a default set of substitutions hardcoded into spadmin and those substituted fonts are the only ones showing up as available for use as substitute fonts in OOo. If that is the case, it would be helpful if it were noted somewhere and users would be directed to use the font substitution table in the main program rather than the font substitutions in spadmin. Let me put it this way: I would rather have the option of using Helvetica or Arial rather than having spadmin assume that I always want Helvetica instead of Arial. Having it hardcoded once caused weird behavior when I had a system without Helvetica or Arial -- apparently because both were in the font subsitution table of spadmin (that's a guess as to what was happening). In other words, it seems poorly thought out, but, not understanding just what it is really intended to do (given the explanations I've gotten from this issue, I'm not sure it's clear if it is intended to do anything useful for most users), I can't make any suggestions for it. It was my understanding that it provided a way to use a font that was supported by the software but not the hardware by enabling useable fonts that the printer could use. I've got a number of these, but none of the substitutions are clearly marked where I would expect them to be -- in spadmin. I suppose this might be a enhancement request to be resolved some time in the distant future. I now have a better idea what spadmin is supposed to do, but, having said that, my conclusion is that it is useless for most users (almost all, actually) and might create problems with some where the default spadmin substitutions are not what are wanted. Given that most people have to be guided to use spadmin, I expect this is some of the reason that some users are unhappy with the printed results.
The default substitutions are not hard coded but reside in the printers.conf file in the <office>/share/psprint directory. If you don't want this replacement, simply remove it for your printer or turn of the whole replacement table in spadmin for your printer. And the font replacement is not for enabling soft fonts, it rather replaces soft fonts by printer builtin fonts. There is no reason to "enable" soft fonts as they work on any printer.
Okay. I think I've got it. I still don't see the purpose for spadmin's font substitution table and I see it as a possible irritant for some users who don't know it's there. I guess we can consider it a "Won't fix", but I find myself even more puzzled by why it exists at all. What issue is it addressing?
Just one further comment. If spadmin normally gets its fonts from the printer, wouldn't it be better for it to have no font substitutions listed where they are not applicable to the printer? As it is, I'm not the only one confused by this as some emails I have seen indicate.
I still have no idea what the "printer fonts" on spadmin are supposed to be as they do not reflect either the system or the actual printer fonts, but it looks like no one wants to make this understandable (at least to me -- I may be thick-headed), and it is certainly not an issue with anyone else I've seen, so I'll just go ahead and change it to Wontfix (I guess that's the correct setting).
closing issue