Hi Phill,
The PropertiesManager is a class of mine which basically extends 
java.util.Properties and essentially reads/writes a hash table of key/value 
pairs.  I store in the properties a list of the font names and their respective 
font files (as discovered via FOP).  For me on Ubuntu 12.04 I get:
FontList=Andale Mono,Arial,Arial Black,Bitstream Charter,Century Schoolbook 
L,Comic Sans 
MS,Courier,...FontFiles=file\:/usr/share/fonts/truetype/openoffice/opens___.ttf,file\:/usr/share/fonts/truetype/ttf-khmeros-core/KhmerOS.ttf,...
I cannot remember precisely why I had to implement this "cache" but I think it 
had to do with supporting i18n.  Originally I simply used the hard coded 
default fonts which FOP "provided" but I found on some non-English machines I'd 
get the 'square' symbol and so wanted to provide a way for a user to specify a 
font to use for the render.  To do this I got FOP to tell me what fonts were 
available and present that to the user.  I just cache that information so I 
don't have to ask FOP each time (which can take a few minutes).
When I do the render I pass the font name as one of the transformer parameters:

xslParams.put( "font-family", (String)m_fontName.getSelectedItem() );
where m_fontName is the selected font name in the JComboBox shown to the user. 

Cheers,
Bernard.

> Date: Wed, 13 Jun 2012 06:41:58 -0700
> From: phillip.old...@gmail.com
> To: fop-users@xmlgraphics.apache.org
> Subject: RE: Still having trouble loading fonts at runtime - suggestions?
> 
> 
> Hi Bernard
> 
> Thanks for that code - that's really helpful.
> 
> However, from what I can tell (java isn't one of my main languages, I'm a
> Python dev) it seems as though it doesn't actually tell FOP to reload any
> fonts, but rather gathers a list of fonts and then asks `PropertiesManager`
> to set the fonts. I can't see a reference to `PropertiesManager` in the FOP
> docs; is that a class in your app, or am I missing something?
> 
> Cheers,
> Phill
                                          

Reply via email to