[reportlab-users] registering fonts
Carl Karsten
carl at personnelware.com
Thu Jan 1 20:47:48 EST 2009
Roberto Alsina wrote:
> Carl Karsten writes:
>
>> I am finding myself trying to write generic code to register fonts.
>>
>> Looking at reportlab/pdfbase/pdfmetrics.py I see much the same code,
>> but it depends on external stuff (system wide config files, editing
>> /usr/lib/python2.5/site-packages/reportlab/rl_config.py, and maybe
>> setting an environment var, but I couldn't get that to work.)
>>
>> Or maybe I am missing something.
>>
>> Here is what I am hoping for: my app that uses reportlab these 2 fonts:
>>
>> /usr/share/fonts/type1/gsfonts/n019004l.afm which is part of
>> http://packages.ubuntu.com/intrepid/all/gsfonts/filelist
>>
>> /usr/share/fonts/truetype/freefont/FreeSans.ttf from
>> http://packages.ubuntu.com/intrepid/ttf-freefont
>>
>> My app has a local config file that holds things like database/user/pw
>> - great place to store path's to fonts
>> either the font's and dirs and fonts used:
>>
>> fonts=['NimbusSanL-Bold','FreeSans']
>> fontdirs=['/usr/share/fonts/type1/gsfonts/',
>> '/usr/share/fonts/truetype/freefont/']
>>
>> or the full pathnames:
>>
>> fontfiles=['/usr/share/fonts/type1/gsfonts/n019004l.afm',
>> '/usr/share/fonts/truetype/freefont/FreeSans.ttf']
>>
>> Then my app can have some generic code that registers those fonts. I
>> am guessing most apps that use reportlab need this, so it would be
>> great if I could just pass those lists into some reporlab code.
>>
>> So, does anything like this exist? If not, I'll be happy to code it
>> up and submit a patch - anything I should know?
>
> There is generic font embedding stuff in rst2pdf
> (http://rst2pdf.googlecode.com), where it will try to find a font by
> name using a variety of mechanisms.
>
> Can't give you more details right now because I'm at the beach but look
> for font stuff it should be easy to find :-)
http://code.google.com/p/rst2pdf/source/browse/trunk/rst2pdf/findfonts.py
flist=["/usr/share/fonts","/usr/share/texmf-dist/fonts"]
f=findFont(sys.argv[1])
if not f:
f=findTTFont(sys.argv[1])
if f:
print f
else:
fn,pos=guessFont(sys.argv[1])
f=findFont(fn)
if not f:
f=findTTFont(fn)
awesome.
Any objections to this code being rolled into Reportlab?
Reportlab, any objections to this code being used in
reportlab/pdfbase/pdfmetrics.py? (guessing the MIT thing may require
something... no clue.)
Carl K
More information about the reportlab-users
mailing list