James Burton commented on FOP-1614:

Adding my two cents here.  I've been trying to get my SVG files to exact 
convert to PDF for a couple of weeks now.  

Right now, I'm trying to get the Linux side working.  Batik relies on AWT to 
match fonts, and the font matching in AWT is dependent on the native classes 
loaded by the JVM. I'm testing with JDK 7u45. Here's what what I've found so 

  When going from SVG to a PDF, the font that Batik matches matters, because 
Batik controls the placement of each character.  If Batik picks a junk font, 
then even if the correct font is picked in the PDF, the "micro-alignment" will 
be off.    To see what I mean, put a break point in 

  Batik relies on AWT which, on Linux, relies on fontconfig to match fonts.

  To have fine control over what font Batik uses, you can change the fontconfig 
for the whole system, see "man fonts-conf" or you can use use the environmental 
variable FONTCONFIG_FILE to affect your one process. Create a specific 
"fonts.conf" from an existing one, like /usr/fonts/fonts.conf.  Edit it so you 
only have <dir>yourfonts</dir> lines for the fonts you want included.  Check 
the rest of the file for stuff you might not want (watch out for includes).  
You can test what fonts it brings in with "fc-list" and "fc-match" after 
exporting your FONTCONFIG_FILE pointing to your new file.  

  Set the FONTCONFIG_FILE before starting up your java application.  

  Once you got Batik picking the right fonts, you then must make sure the same 
fonts are known to FOP.  To confuse things, the <auto-detect> command in the 
fop.xconf file brings in the "system" fonts using some hard coded paths.  It 
doesn't use fontconfig.  See 
I would suggest not using <auto-detect> and mentioning the same font 
directories that you setup with fonts.conf.

  You would then drop any new fonts you have into the directory that both 
fop.xconf and FONTCONFIG_FILE point to and you should be set.

> Fonts not found for SVG texts (when not in C:\WINNT\Fonts)
> ----------------------------------------------------------
>                 Key: FOP-1614
>                 URL: https://issues.apache.org/jira/browse/FOP-1614
>             Project: Fop
>          Issue Type: Bug
>          Components: svg
>    Affects Versions: 0.95
>         Environment: Operating System: Windows 2000
> Platform: PC
>            Reporter: M.H.
> I configured FOP to use custom fonts with their TTF files being in a custom 
> directory - and not C:\WINNT\Fonts (reason: license restrictions only allows 
> usage of some fonts in the FOP application and not in any other Windows 
> applications, like e.g. Word). This works flawlessly for FOP texts.
> However, SVGs are also included (referenced/linked) in the XSLs. And for 
> texts in these SVGs, the fonts are only used/found if they are stored in 
> C:\WINNT\Fonts! It seems that FOP doesn't tell its SVG engine (Batik) where 
> to find the fonts, as FOP itself knows it from its configuration XML. Is 
> Batik using the font configuartion of FOP at all or is there some additional 
> configuration possible to tell FOP to set its font configuration also for 
> Batik?

This message was sent by Atlassian JIRA

Reply via email to