[Fontconfig] Getting FC_FILE Using Fontconfig

Jeremy Moles jeremy at emperorlinux.com
Thu Mar 3 12:09:25 PST 2011


On Wed, 2011-03-02 at 16:29 -0500, Behdad Esfahbod wrote:
> Hi Jeremy,
> 
> On 03/02/11 14:34, Jeremy Moles wrote:
> > 
> > My question is: using the Fontconfig API, is it possible to--in a
> > generic way--find out what font file (or more likely "files", the
> > Fontconfig API will probably want to work with sets of
> > data)--corresponds to a particular Fontconfig string?
> 
> That's what FcFontMatch() does.
> 
> 
> > For example, we love the expressively Pango provides when it allows us
> > to use fonts in the form of:
> > 
> > 	"Arial Bold 20px"
> > 
> > However, a separate API requires the exact font "file" on disk instead,
> > and so we'd like to continue using this expressive Pango/Fontconfig
> > syntax in order to provide the REAL file to the older software.
> 
> Unfortunately Pango currently does not provide the function
> pango_fc_font_description_to_pattern().  It will in some future version.
> You can build a PangoFontDescription, but you need to convert that to a
> Fontconfig pattern yourself (or copy the code from pango).

==============================================

FcPattern* pat = FcNameParse("arial");
FcFontSet* fs  = FcFontList(0, pat, 0);

for(i = 0; i < fs->nfont; i++) {
	if(FcPatternGetString(fs->fonts[i], FC_FILE, 0, &path)
	== FcResultMatch)
}

==============================================

The code above is essentially what I'm using to get the font file paths.
It works for sure on Linux, haven't tested it (yet) in Windows.

Without a pango_fc_font_description_to_pattern() function, I'd like to
go the route (temporarily) of copying this code from Pango. Can you give
me any hints as to whereabouts this process is performed?

You mentioned also a kind of "hackish" way of getting the information
out of Pango (loading the font into the PangoFontMap in the context
isn't a problem), but I wasn't able to piece together the series of
calls in order to achieve this... (we can use whatever version of Pango
is necessary)

Thanks!

> Hope that helps,
> 
> behdad
> 
> 
> > I'll continue browsing through the source for now, but if anyone has any
> > advice to get me started, I'd really appreciate it!
> > 
> > _______________________________________________
> > Fontconfig mailing list
> > Fontconfig at lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/fontconfig
> > 
> 




More information about the Fontconfig mailing list