我正在尝试在PDF文档中使用超链接。我想创建从甘特图表栏到表格中的行的超链接。 我使用Japser Report Designer 6.3.1创建我的报告。我添加了指向Gantt Data表格行的超链接。
但是,如果我编译报告,我会得到一个模式验证错误
net.sf.jasperreports.engine.JRException:org.xml.sax.SAXParseException; lineNumber:265; columnNumber:68; cvc-complex-type.2.4.a:从元素'itemHyperlink'开始发现无效内容。其中一个是{{http://jasperreports.sourceforge.net/jasperreports“:percentExpression}'。
这是我的甘特数据集:
<ganttDataset>
<dataset>
<datasetRun subDataset="dgGanttEvents" uuid="cc974cc8-20f5-4a4c-88cd-9c5e0c46bada">
<dataSourceExpression><![CDATA[$P{dgGanttSeries}]]></dataSourceExpression>
</datasetRun>
</dataset>
<ganttSeries>
<seriesExpression><![CDATA[$F{series}]]></seriesExpression>
<taskExpression><![CDATA[$F{task}]]></taskExpression>
<subtaskExpression><![CDATA[$F{subtask}]]></subtaskExpression>
<startDateExpression><![CDATA[$F{start}]]></startDateExpression>
<endDateExpression><![CDATA[$F{end}]]></endDateExpression>
<itemHyperlink hyperlinkType="LocalAnchor">
<hyperlinkAnchorExpression><![CDATA[$F{time}-$F{series}]]></hyperlinkAnchorExpression>
</itemHyperlink>
</ganttSeries>
第265行位于 itemHyperlink 标记。
我很困惑,我可以在编辑器中使用该字段但似乎不支持它们。此外,我调查了来源 JRDesignGanttSeries.java @ Github我也可以发现
String PROPERTY_ITEM_HYPERLINK = "itemHyperlink";似乎得到了支持
我试图根据
的文档关闭验证net.sf.jasperreports.compiler.xml.validation=false
取自:JasperCompileManager Java Doc
但后来我
net.sf.jasperreports.engine.JRRuntimeException: Error creating SAX parser.
....
Caused by: org.xml.sax.SAXNotSupportedException: Property 'http://java.sun.com/xml/jaxp/properties/schemaLanguage' must be set before setting property 'http://java.sun.com/xml/jaxp/properties/schemaSource'.
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.setProperty(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.setProperty(Unknown Source)