[ 
https://issues.apache.org/jira/browse/FOP-3087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18011718#comment-18011718
 ] 

Julian Müller commented on FOP-3087:
------------------------------------

I can still easily replicate this with FOP 2.11 and JDK 8 or 21: I set the font 
to "Arial" for some text and Adobe Reader ends up substituting it with "Times 
New Roman" (because the font is missing).

I also searched your issue tracker now and there at least two other tickets 
reporting the same problem: FOP-2983, FOP-2896. (I don't know why I missed 
these other reports when I opened the ticket, I usually check for existing 
reports before opening a new one.) And the analysis in all of these issues is 
that the logic in PDFAbstractTranscoder.getEffectiveConfiguration() is just 
broken, which becomes very obvious simply by stepping through this method with 
a debugger because the "auto-detect" key in the generated configuration ends up 
missing.

> PDFTranscoder fails to auto-detect system fonts by default
> ----------------------------------------------------------
>
>                 Key: FOP-3087
>                 URL: https://issues.apache.org/jira/browse/FOP-3087
>             Project: FOP
>          Issue Type: Bug
>    Affects Versions: 2.5, 2.4, 2.6, 2.7
>            Reporter: Julian Müller
>            Priority: Minor
>
> Contrary to the documentation, the PDFTranscoder fails to auto-detect system 
> fonts by default, and also does not honor transcoding hint KEY_AUTO_FONTS = 
> true.
> This is because the implicitly built configuration is not set up correctly. 
> Line 163
> {code:java}
>                 c.addChild(fonts); {code}
> in AbstractFOPTranscoder needs to be moved after line 165, which is
> {code:java}
>                 fonts.addChild(autodetect); {code}
>  
> A simple workaround to this problem is to explicitly pass a correctly set up 
> configuration to PDFTranscoder, however, it would be preferable if 
> PDFTranscoder would just honor its contract.
> I think this bug was introduced by FOP-2733, due to a subtle difference in 
> Avalon's configuration package and its replacement. Avalon's configuration 
> package allowed the addition of children in any order, but the new FOP 
> configuration package adds copies instead of the original children, so the 
> configuration tree needs to be built from the leaves to the root node. 
> Currently, the code in AbstractFOPTranscoder does not follow this new 
> requirement and instead builds the configuration tree from the root to the 
> leaf.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to