In GlyphMapping.processWordMapping the script of the text is retrieved using String script = text.getScript().
If the script returned is not listed in the Font then then gsub/gpos features will be ignored even if applicable.
The font EmojiOne is a font for Emoji and contains a Ligatures table for latn script. Thsi is what happen when FOText.getScript is called:
- 🇮🇹👨👨👦 (Only emoji) -> script = 'zyyy'
- test🇮🇹👨👨👦 (Latin + Emoji) -> script = 'auto'
- 先秦兩漢🇮🇹👨👨👦 (Chinese + Emoji) -> script = 'auto'
In all these cases ApacheFOP is not able to apply the ligature table.
Ensure ApacheFOP reads the gsub/gpos table even if the script recognized for the text differs from the one defined in the font.