Hi Jan,
Indeed this should work since FOP 2.3 thanks to FOP-1969. I suggest you
log a new bug if you are able to share your XSL-FO and supporting Font
files.
Thanks,
Chris
On 24/02/2020 14:05, Jan Driesen wrote:
Hi,
If we set the MPH 2b Damas font
(https://fedoraproject.org/wiki/MPH_2B_Damase_fonts), we get the
exception from my initial email. Using fontforge, I could verify that
this font has a glyph for the character.
If we set Segoe UI Historic
(https://docs.microsoft.com/en-us/typography/font-list/segoe_ui_historic)
as a font (it also has a glyph for this), we get a different exception.
Both fonts are referred to in fop.xconf
A version of the FO for each font is attached to this mail.
INFO: Default page-height set to: 297mm
feb 24, 2020 2:59:28 PM org.apache.fop.apps.FopConfParser configure
INFO: Default page-width set to: 210mm
feb 24, 2020 2:59:29 PM org.apache.fop.cli.Main startFOP
SEVERE: Exception
org.apache.fop.apps.FOPException: ill-formed UTF-16 sequence, contains
isolated high surrogate at end of sequence
java.lang.IllegalArgumentException: ill-formed UTF-16 sequence,
contains isolated high surrogate at end of sequence
at
org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:296)
at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:116)
at org.apache.fop.cli.Main.startFOP(Main.java:183)
at org.apache.fop.cli.Main.main(Main.java:214)
Caused by: java.lang.IllegalArgumentException: ill-formed UTF-16
sequence, contains isolated high surrogate at end of sequence
at
org.apache.fop.fonts.MultiByteFont.mapCharsToGlyphs(MultiByteFont.java:666)
at
org.apache.fop.fonts.MultiByteFont.charSequenceToGlyphSequence(MultiByteFont.java:570)
at
org.apache.fop.fonts.MultiByteFont.performSubstitution(MultiByteFont.java:551)
at
org.apache.fop.fonts.LazyFont.performSubstitution(LazyFont.java:424)
at org.apache.fop.fonts.Font.performSubstitution(Font.java:471)
at
org.apache.fop.fonts.GlyphMapping.processWordMapping(GlyphMapping.java:141)
at
org.apache.fop.fonts.GlyphMapping.doGlyphMapping(GlyphMapping.java:92)
at
org.apache.fop.layoutmgr.inline.TextLayoutManager.processWord(TextLayoutManager.java:960)
at
org.apache.fop.layoutmgr.inline.TextLayoutManager.getNextKnuthElements(TextLayoutManager.java:819)
at
org.apache.fop.layoutmgr.inline.LineLayoutManager.collectInlineKnuthElements(LineLayoutManager.java:698)
at
org.apache.fop.layoutmgr.inline.LineLayoutManager.getNextKnuthElements(LineLayoutManager.java:627)
at
org.apache.fop.layoutmgr.BlockLayoutManager.getNextChildElements(BlockLayoutManager.java:141)
at
org.apache.fop.layoutmgr.BlockStackingLayoutManager.getNextKnuthElements(BlockStackingLayoutManager.java:290)
at
org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:113)
at
org.apache.fop.layoutmgr.BlockLayoutManager.getNextKnuthElements(BlockLayoutManager.java:105)
at
org.apache.fop.layoutmgr.FlowLayoutManager.getNextChildElements(FlowLayoutManager.java:223)
at
org.apache.fop.layoutmgr.FlowLayoutManager.addChildElements(FlowLayoutManager.java:147)
at
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:116)
at
org.apache.fop.layoutmgr.FlowLayoutManager.getNextKnuthElements(FlowLayoutManager.java:69)
at
org.apache.fop.layoutmgr.PageBreaker.getNextKnuthElements(PageBreaker.java:251)
at
org.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBreaker.java:770)
at
org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:178)
at
org.apache.fop.layoutmgr.PageBreaker.getNextBlockList(PageBreaker.java:158)
at
org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:389)
at
org.apache.fop.layoutmgr.PageBreaker.doLayout(PageBreaker.java:112)
at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:143)
at
org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
at
org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:139)
at
org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:362)
at
org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190)
at
org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1102)
at
org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at
org.apache.xerces.xinclude.XIncludeHandler.endElement(Unknown Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
at