So I’ve been back in the glyph replacement/fontconfig wars again to try and shake out the remaining edge cases of the fontconfig approach to solving glyph and font replacement that we use for Fedora OOo.
So fruit of the labours is demoed with this odt testcase, where a pile of characters are used which don’t exist in the selected font. Especially nasty elements are the ZWJ in there on line three, the sinhala example. Glyphs which share the same classification and run as eachother but alternating fonts are required to satisfy the fallback for each character (line 1). And line 2 where > 8 glyphs are missing in each fallback level being rendered. Throw in some RTL scripts and various indic language content. And here’s how it’s rendered in Fedora’s OOo in rawhide, to-be FC6. Ta-Da…
patches for glyph replacement
- base fontconfig patch
- add, returning what glyphs are replaceable
- add, detect and handle gaps of glyphs in run
- icuupgrade workspace for additional fallback goodness
patches for fontconfig settings