-            // then try any family with orig weight
+ + // try the same font-family and weight with default style
+            if (f == null) {
+                key = createFontKey(family, "normal", weight);
+                f = getInternalFontKey(key);
+            }
+ + // then try any family with orig style/weight
             if (f == null) {
-                notifyFontReplacement(startKey);
                 key = createFontKey("any", style, weight);
                 f = getInternalFontKey(key);
@@ -153,6 +163,9 @@

Uhm, just looking more closely at the change you've made here. Shouldn't FOP also look for the same family but with default weight AND style before trying any family. I know Jeremias said there are much more sophiscated algorithms we could use here, but the reason I think this one extra check is important if the user specifies:

font-family="Symbol" font-weight="bold" font-style="normal"

this will fall back to Helvetica, yet it is very similar to the original problem that triggered this change.


Reply via email to