[Fontconfig] How to limit search to outline fonts

depp at moria.us depp at moria.us
Fri Oct 1 00:04:41 PDT 2010

I'd like to search the fonts on a system by family name, but prefer  
outline fonts later on the list over bitmap fonts earlier on the list.  
  For example, for the spec "Courier, DejaVu Sans Mono":

1. Courier (outline)
2. DejaVu Sans Mono (outline)
3. Courier (bitmap)
4. DejaVu Sans Mono (bitmap)
5. Fallback font

Here's what I've tried:

1. I tried figuring out how to do this with a single call to  
FcFontMatch.  It turns out the "best" match is determined by hardcoded  
weights.  If they weren't hardcoded, I could simply increase the  
weight for the "outline" attribute.
2. I tried figuring out how to do this passing each family separately  
to FcFontMatch, then picking the first that has an outline, or falling  
back to the first without an outline.  However, I can't figure out how  
to tell the difference between when FcFontMatch returns a family I  
asked for and when it returns a fallback font.
3. I tried using FcFontList to create a font list containing only  
outline fonts so I could search that first, but I can't tell the  
difference between when it can find a font and when it found a  
fallback font.
4. I tried looking at the source code to FcFontMatch, but it looks  
like it does a lot of peeking inside of structures that are opaque to  
clients.  I'd have to make a lot of API calls to access the required  

What am I missing, or is it really that hard to do this?

More information about the Fontconfig mailing list