Сноска вне границ в xslt - PullRequest
       60

Сноска вне границ в xslt

0 голосов
/ 16 января 2020

Когда я пытаюсь сделать сноски в моем PDF-файле с помощью Apache FOP, я получаю "java .lang.IndexOutOfBoundsException: Index: 3, Size: 3"

Мой код:

<fo:footnote>
    <fo:inline baseline-shift="30%" font-size="10pt">
        *<xsl:number count="note" level="any" />
    </fo:inline>
    <fo:footnote-body>
        <fo:list-block font-size="8pt" provisional-distance-between-starts="0.4cm">
            <fo:list-item>
                <fo:list-item-label>
                    <fo:block>
                        <fo:inline baseline-shift="super" font-size="70%">
                            *<xsl:number count="note" level="any"/>
                        </fo:inline>
                    </fo:block>
                </fo:list-item-label>
                <fo:list-item-body>
                    <fo:block margin-left="3mm" background-color="yellow">
                        <xsl:value-of select="text" />
                    </fo:block>
                </fo:list-item-body>
            </fo:list-item>
        </fo:list-block>
    </fo:footnote-body>
</fo:footnote>          

«Текст» довольно длинный, поэтому я думаю, он не помещается в пространство. Я понял, что если я изменю размер шрифта с 10pt на 8pt, ошибка исчезнет. Так что я думаю, что это должно что-то делать с переполнением страницы, но я не знаю, что мне делать с этим, например, просто дать сноске больше места на странице?

Stacktrace:

java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
    at java.util.ArrayList.rangeCheck(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at org.apache.fop.layoutmgr.PageBreakingAlgorithm.getFootnoteList(PageBreakingAlgorithm.java:1166)
    at org.apache.fop.layoutmgr.PageBreakingAlgorithm.getFootnoteSplit(PageBreakingAlgorithm.java:788)
    at org.apache.fop.layoutmgr.PageBreakingAlgorithm.getFootnoteSplit(PageBreakingAlgorithm.java:727)
    at org.apache.fop.layoutmgr.PageBreakingAlgorithm.computeDifference(PageBreakingAlgorithm.java:577)
    at org.apache.fop.layoutmgr.BreakingAlgorithm.considerLegalBreak(BreakingAlgorithm.java:936)
    at org.apache.fop.layoutmgr.PageBreakingAlgorithm.considerLegalBreak(PageBreakingAlgorithm.java:510)
    at org.apache.fop.layoutmgr.PageBreakingAlgorithm.handlePenaltyAt(PageBreakingAlgorithm.java:405)
    at org.apache.fop.layoutmgr.BreakingAlgorithm.handleElementAt(BreakingAlgorithm.java:760)
    at org.apache.fop.layoutmgr.BreakingAlgorithm.findBreakingPoints(BreakingAlgorithm.java:557)
    at org.apache.fop.layoutmgr.BreakingAlgorithm.findBreakingPoints(BreakingAlgorithm.java:506)
    at org.apache.fop.layoutmgr.AbstractBreaker.doLayout(AbstractBreaker.java:414)
    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:130)
    at org.apache.fop.fo.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:360)
    at org.apache.fop.fo.FOTreeBuilder.endElement(FOTreeBuilder.java:190)
    at net.sf.saxon.event.ContentHandlerProxy.endElement(ContentHandlerProxy.java:412)
    at net.sf.saxon.event.ProxyReceiver.endElement(ProxyReceiver.java:185)
    at net.sf.saxon.event.SequenceNormalizer.endElement(SequenceNormalizer.java:229)
    at net.sf.saxon.event.NamespaceReducer.endElement(NamespaceReducer.java:235)
    at net.sf.saxon.event.ComplexContentOutputter.endElement(ComplexContentOutputter.java:559)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:355)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:299)
    at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:735)
    at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:352)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:519)
    at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:557)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:438)
    at net.sf.saxon.expr.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(ApplyTemplates.java:557)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:438)
    at net.sf.saxon.expr.instruct.ApplyTemplates.apply(ApplyTemplates.java:300)
    at net.sf.saxon.expr.instruct.ApplyTemplates.processLeavingTail(ApplyTemplates.java:255)
    at net.sf.saxon.expr.instruct.Block.processLeavingTail(Block.java:735)
    at net.sf.saxon.expr.instruct.Instruction.process(Instruction.java:132)
    at net.sf.saxon.expr.instruct.ElementCreator.processLeavingTail(ElementCreator.java:352)
    at net.sf.saxon.expr.instruct.Copy.processLeavingTail(Copy.java:422)
    at net.sf.saxon.expr.instruct.TemplateRule.applyLeavingTail(TemplateRule.java:352)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:519)
    at net.sf.saxon.trans.rules.TextOnlyCopyRuleSet.process(TextOnlyCopyRuleSet.java:71)
    at net.sf.saxon.trans.Mode.applyTemplates(Mode.java:482)
    at net.sf.saxon.trans.XsltController.applyTemplates(XsltController.java:733)
    at net.sf.saxon.s9api.AbstractXsltTransformer.applyTemplatesToSource(AbstractXsltTransformer.java:347)
    at net.sf.saxon.s9api.XsltTransformer.transform(XsltTransformer.java:338)
    at net.sf.saxon.jaxp.TransformerImpl.transform(TransformerImpl.java:71)
    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:186)
    at org.apache.fop.cli.Main.main(Main.java:217)
...