Mikael Andersen created FOP-2858:
------------------------------------

             Summary: FontUtil.guessStyle/guessWeight is passed 
java.awt.Font.getName() which can return localized name
                 Key: FOP-2858
                 URL: https://issues.apache.org/jira/browse/FOP-2858
             Project: FOP
          Issue Type: Bug
          Components: font/unqualified, renderer/awt
    Affects Versions: 2.3, 2.2
         Environment: Windows 10 Pro
            Reporter: Mikael Andersen
         Attachments: font.png, guess_from_en_locale.patch

When InstalledFontCollection enumerates OS provided Fonts, the style/weight is 
guessed from java.awt.Font.getName();

Originally it was Font.getFontName() method, which FOP-1452 fixed to getName(). 
As written in description of FOP-1452:

_Attaching patch which uses_
_Font.getName(), tested on Windows XP. Another possibility would be to use_
_Font.getFontName(Locale.ENGLISH)._

 The latter option is exactly what I think it should be changed to, as I now 
experience on my Windows 10 box (all in house experiences same), that 
Font.getName() will return localized texts for style/weight, for most fonts, 
when user.language=da.

The attached patch only targets passing proper name to FontUtil.guessXXX 
methods, which are vital for proper rendering of preview and printing (ps) for 
these fonts.

However Java2DGraphicsState.updateFont(...) is also subject to bug, as 
Font.getFontName() is used,

{{ boolean updateName = (!mapper.getFontName().equals(}}
{{ getGraph().getFont().getFontName()));}}

 

effectively comparing Font.getName() with Font.getFontName() which will not 
always match.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to