Fonts can be embedded in PostScript and PDF output. Embedding all fonts leads to reproducible results but large files, and, for example, PDF viewers do not require PDF files to embed the standard 14 Adobe fonts since those fonts are expected to be available to the viewer. Fontconfig is used by applications, such as GNOME Print (and PangoPDF), that produce PostScript and PDF output. Since Fontconfig provides font information to applications, it could be enhanced to also provide a hint on whether or not a font should be embedded in output file formats that support font embedding.
How would fontconfig be expected to know this? If it's just by family name, then we could just add entries in the configuration file to mark fonts of given family names with a special flag that applications could read.
I had considered that it could be part of fonts.conf. It is unlikely that users would want finer control than by family name. It's easy to imagine that different applications would have different expectations of which fonts to embed, but I'm just looking for a base embed/noembed indication from fontconfig. For PangoPDF, I am working on implementing an embedding level control parameter with values 'none', 'nonbase', and 'all'. If fontconfig implements an embed/noembed control, then I would add a 'per-font' level.
You should be able to do this with the existing library by adding match/edit rules to the configuration. The configuration can add arbitrary new elements to font patterns which will be visible to applications. Please feel free to experiment; there's an example of setting a previously undefined property in the default configuration to control access to bitmap fonts (prefer_outline). I'll switch this to 'FIXED' as there shouldn't need to be any changes in the library code itself, even if we decide to add some new entries to the default configuration when you've figured out what those should be. May I also reassign this to you?
I'll look at the prefer_outline example. Yes, reassign the bug to me.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.