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
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
at
org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
... 3 more
Jan Driesen
IT Office
Brepols Publishers NV
*From:*Simon Steiner <simonsteiner1...@gmail.com>
*Sent:* maandag 24 februari 2020 12:39
*To:* fop-users@xmlgraphics.apache.org
*Subject:* RE: Surrogate pair error
HI,
Can you set the font-family in the fo file and add a font to the
fop.xconf?
Thanks
*From:*Jan Driesen <jan.drie...@brepols.net
<mailto:jan.drie...@brepols.net>>
*Sent:* 24 February 2020 11:34
*To:* fop-users@xmlgraphics.apache.org
<mailto:fop-users@xmlgraphics.apache.org>
*Subject:* Surrogate pair error
Hi everybody,
We have a document containing the following character: Unicode
Character 'CYPRIOT SYLLABLE RO' (U+10826)
When running fop (2.4) to render a pdf, it fails with the exception
pasted below. Attached you can find a sample fo file that contains the
character and produces the error.
I understand that fop 2.3 introduced support for surrogate pairs.
feb 24, 2020 12:24:00 PM org.apache.fop.apps.FopConfParser configure
INFO: Default page-height set to: 11.00in
feb 24, 2020 12:24:00 PM org.apache.fop.apps.FopConfParser configure
INFO: Default page-width set to: 8.50in
feb 24, 2020 12:24:02 PM org.apache.fop.events.LoggingEventListener
processEvent
WARNING: Glyph "?" (0xd802) not available in font "Helvetica".
feb 24, 2020 12:24:02 PM org.apache.fop.events.LoggingEventListener
processEvent
WARNING: Glyph "?" (0xdc26) not available in font "Helvetica".
feb 24, 2020 12:24:02 PM org.apache.fop.area.RenderPagesModel addPage
SEVERE: Error while rendering page 1
java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:658)
at
org.apache.fop.util.CharUtilities.containsSurrogatePairAt(CharUtilities.java:417)
at
org.apache.fop.render.pdf.PDFPainter.drawTextWithDX(PDFPainter.java:494)
at
org.apache.fop.render.pdf.PDFPainter.drawText(PDFPainter.java:436)
at
org.apache.fop.render.pdf.PDFPainter.drawText(PDFPainter.java:449)
at
org.apache.fop.render.intermediate.IFRenderer$TextUtil.flush(IFRenderer.java:1237)
at
org.apache.fop.render.intermediate.IFRenderer.renderText(IFRenderer.java:1063)
at
org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:861)
at
org.apache.fop.render.intermediate.IFRenderer.renderInlineArea(IFRenderer.java:926)
at
org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:845)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:704)
at
org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:758)
at
org.apache.fop.render.intermediate.IFRenderer.renderBlock(IFRenderer.java:998)
at
org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:689)
at
org.apache.fop.render.AbstractRenderer.renderFlow(AbstractRenderer.java:591)
at
org.apache.fop.render.AbstractPathOrientedRenderer.renderFlow(AbstractPathOrientedRenderer.java:789)
at
org.apache.fop.render.AbstractRenderer.renderMainReference(AbstractRenderer.java:568)
at
org.apache.fop.render.AbstractRenderer.renderBodyRegion(AbstractRenderer.java:433)
at
org.apache.fop.render.AbstractRenderer.renderRegionViewport(AbstractRenderer.java:380)
at
org.apache.fop.render.intermediate.IFRenderer.renderRegionViewport(IFRenderer.java:737)
at
org.apache.fop.render.AbstractRenderer.renderPageAreas(AbstractRenderer.java:345)
at
org.apache.fop.render.AbstractRenderer.renderPage(AbstractRenderer.java:318)
at
org.apache.fop.render.intermediate.IFRenderer.renderPage(IFRenderer.java:587)
at
org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:123)
at
org.apache.fop.layoutmgr.AbstractPageSequenceLayoutManager.finishPage(AbstractPageSequenceLayoutManager.java:316)
at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:243)
at
org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:147)
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
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown
Source)
at
org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:485)
at
org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:293)
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)
Is this a bug, or are we missing something?
Thanks,
Jan Driesen
IT Office
Brepols Publishers NV
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-users-unsubscr...@xmlgraphics.apache.org
For additional commands, e-mail: fop-users-h...@xmlgraphics.apache.org