Ranges of chars in a font.

Hi all

I’m looking for a way to find what diffrent characters that excist in a
font.
I’m currently using PfQueryFontInfo() which worked fine for me for now
(I’m printing all the chars in the font for a ‘insert symbol’ dialog)
when i was using the Symbol font. It returned a decent value between
0020-00FE.

When i tried using some other font though, it wasn’t as fun, 0020- F002
when using primasans. Is it possible to get ranges of availible chars
somehow? As I’m pretty sure that font does not have all those chars.


thanks

/Johan

phearbear <phearbear@home.se> wrote:

Hi all

I’m looking for a way to find what diffrent characters that excist in a
font.
I’m currently using PfQueryFontInfo() which worked fine for me for now
(I’m printing all the chars in the font for a ‘insert symbol’ dialog)
when i was using the Symbol font. It returned a decent value between
0020-00FE.

When i tried using some other font though, it wasn’t as fun, 0020- F002
when using primasans. Is it possible to get ranges of availible chars
somehow? As I’m pretty sure that font does not have all those chars.



thanks

/Johan

No, not really. PrimaSans BT has glyphs up near 0xF000, but
it just does not have all the glyphs in between. This relatively
common with TrueType fonts. The only real method is to thrash
the font file, and find out if 0 is returned for the requested
index.

You could d/load and compile FreeType, since the only thing you
require is spinning on the index, you could compile a lot of
the options out, including the US copyright disputed bytecode
interpreter. This would allow you to attain any low-level TrueType
data you wished. Of course, this would not work with the stroke
fonts.

You can also try spinning using PfGetOutline, or PfGlyph for each
index, testing to see if it returns success or failure. This would
be CPU intensive, so you should do it when your application is loading.

BTW, if you want scalable Symbols Sets, try the font “Symbol Set BT”.
It puts the glyph in the “private” unicode range F020-F0FE.

Regards.