[
https://issues.apache.org/jira/browse/FOP-2468?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14550866#comment-14550866
]
Andreas L. Delmelle edited comment on FOP-2468 at 5/19/15 6:11 PM:
-------------------------------------------------------------------
D'oooh... Metrics files. I completely missed that! I am so used to relying on
auto-detection that I almost forgot FOP still supports those.
I will look into it closer and keep you posted. Apologies again for misreading
your initial post.
UPDATE - Checking the website, I noticed that in current trunk <quote>Font
registration via XML font metrics has been deprecated and is not recommended
although it is still supported by the current code.</quote>
See: http://xmlgraphics.apache.org/fop/trunk/fonts.html)
Seems like the latter is not entirely true anymore, at least not for all
cases... This obviously makes me somewhat reluctant to spend time on fixing
this.
Can you let us know more about your use case, and why exactly you cannot rely
on auto-detection or the other mechanisms? Do you intend to package the
metrics.xml with your own application, perhaps?
was (Author: adelmelle):
D'oooh... Metrics files. I completely missed that! I am so used to relying on
auto-detection that I almost forgot FOP still supports those.
I will look into it closer and keep you posted. Apologies again for misreading
your initial post.
> Render svg throw NPE if use local fonts with metrics xml.
> ---------------------------------------------------------
>
> Key: FOP-2468
> URL: https://issues.apache.org/jira/browse/FOP-2468
> Project: Fop
> Issue Type: Bug
> Components: foreign/svg
> Affects Versions: trunk
> Reporter: chunlinyao
> Attachments: bug.zip, test.fo
>
>
> I got a error when use svg with local fonts. It seems boundingboxes is null.
> SVG graphic could not be rendered. Reason: java.lang.NullPointerException
> java.lang.NullPointerException
> at
> org.apache.fop.fonts.MultiByteFont.getBoundingBox(MultiByteFont.java:210)
> at org.apache.fop.fonts.LazyFont.getBoundingBox(LazyFont.java:301)
> at
> org.apache.fop.svg.font.FOPGVTGlyphVector.buildBoundingBoxes(FOPGVTGlyphVector.java:428)
> at
> org.apache.fop.svg.font.FOPGVTGlyphVector.getBoundingBoxes(FOPGVTGlyphVector.java:420)
> at
> org.apache.fop.svg.font.FOPGVTGlyphVector.getGlyphMetrics(FOPGVTGlyphVector.java:290)
> at org.apache.batik.bridge.GlyphLayout.doExplicitGlyphLayout(Unknown
> Source)
> at org.apache.batik.bridge.GlyphLayout.adjustTextSpacing(Unknown Source)
> at org.apache.batik.bridge.GlyphLayout.getAdvance2D(Unknown Source)
> at org.apache.batik.bridge.StrokingTextPainter.getTextChunk(Unknown
> Source)
> at org.apache.batik.bridge.StrokingTextPainter.computeTextRuns(Unknown
> Source)
> at
> org.apache.fop.svg.NativeTextPainter.computeTextRuns(NativeTextPainter.java:223)
> at org.apache.batik.bridge.StrokingTextPainter.getTextRuns(Unknown
> Source)
> at org.apache.batik.bridge.StrokingTextPainter.getBounds2D(Unknown
> Source)
> at org.apache.batik.bridge.TextNode.getPrimitiveBounds(Unknown Source)
> at
> org.apache.batik.gvt.AbstractGraphicsNode.getTransformedPrimitiveBounds(Unknown
> Source)
> at
> org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
> at
> org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(Unknown Source)
> at
> org.apache.batik.gvt.CompositeGraphicsNode.getTransformedPrimitiveBounds(Unknown
> Source)
> at
> org.apache.batik.gvt.AbstractGraphicsNode.getTransformedBounds(Unknown Source)
> at
> org.apache.batik.gvt.CompositeGraphicsNode.getPrimitiveBounds(Unknown Source)
> at org.apache.batik.gvt.AbstractGraphicsNode.getBounds(Unknown Source)
> at org.apache.batik.gvt.AbstractGraphicsNode.paint(Unknown Source)
> at
> org.apache.fop.render.pdf.PDFImageHandlerSVG.handleImage(PDFImageHandlerSVG.java:207)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImage(AbstractIFPainter.java:249)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImage(AbstractIFPainter.java:205)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingImageHandler(AbstractIFPainter.java:170)
> at
> org.apache.fop.render.intermediate.AbstractIFPainter.drawImageUsingDocument(AbstractIFPainter.java:319)
> at org.apache.fop.render.pdf.PDFPainter.drawImage(PDFPainter.java:232)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderForeignObject(IFRenderer.java:1308)
> at
> org.apache.fop.render.AbstractRenderer.renderInlineViewport(AbstractRenderer.java:861)
> at
> org.apache.fop.render.AbstractPathOrientedRenderer.renderInlineViewport(AbstractPathOrientedRenderer.java:832)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderInlineViewport(IFRenderer.java:862)
> at
> org.apache.fop.render.AbstractRenderer.renderInlineArea(AbstractRenderer.java:714)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderInlineArea(IFRenderer.java:926)
> at
> org.apache.fop.render.AbstractRenderer.renderLineArea(AbstractRenderer.java:689)
> at
> org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:571)
> at
> org.apache.fop.render.AbstractRenderer.renderBlock(AbstractRenderer.java:612)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderBlock(IFRenderer.java:998)
> at
> org.apache.fop.render.AbstractRenderer.renderBlocks(AbstractRenderer.java:556)
> at
> org.apache.fop.render.AbstractRenderer.renderFlow(AbstractRenderer.java:456)
> at
> org.apache.fop.render.AbstractPathOrientedRenderer.renderFlow(AbstractPathOrientedRenderer.java:785)
> at
> org.apache.fop.render.AbstractRenderer.renderMainReference(AbstractRenderer.java:433)
> at
> org.apache.fop.render.AbstractRenderer.renderBodyRegion(AbstractRenderer.java:357)
> at
> org.apache.fop.render.AbstractRenderer.renderRegionViewport(AbstractRenderer.java:304)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderRegionViewport(IFRenderer.java:737)
> at
> org.apache.fop.render.AbstractRenderer.renderPageAreas(AbstractRenderer.java:278)
> at
> org.apache.fop.render.AbstractRenderer.renderPage(AbstractRenderer.java:243)
> at
> org.apache.fop.render.intermediate.IFRenderer.renderPage(IFRenderer.java:585)
> at
> org.apache.fop.area.RenderPagesModel.addPage(RenderPagesModel.java:123)
> at
> org.apache.fop.layoutmgr.AbstractPageSequenceLayoutManager.finishPage(AbstractPageSequenceLayoutManager.java:315)
> at
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.finishPage(PageSequenceLayoutManager.java:213)
> at
> org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequenceLayoutManager.java:137)
> at
> org.apache.fop.area.AreaTreeHandler.endPageSequence(AreaTreeHandler.java:267)
> at
> org.apache.fop.fo.pagination.PageSequence.endOfNode(PageSequence.java:130)
> at
> org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:360)
> at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.endElement(TransformerIdentityImpl.java:1101)
> 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.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown
> Source)
> at
> org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:484)
> at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:285)
> at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:115)
> at org.apache.fop.cli.Main.startFOP(Main.java:186)
> at org.apache.fop.cli.Main.main(Main.java:217)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)