Jasper reports jasper使用样式条形码报告条形码

Jasper reports jasper使用样式条形码报告条形码,jasper-reports,Jasper Reports,我试图在JasperReports中使用条形码,我使用的是barcode4j jar。 我使用的罐子是: 条形码4J-2.0.jar commons-beanutils.jar commons-codec-1.6.jar commons-collections.jar commons-digester-2.0.jar commons-lang-2.0.jar commons-logging.jar commons-net-1.2.2.jar commons-validator.jar db2j

我试图在JasperReports中使用条形码,我使用的是barcode4j jar。 我使用的罐子是:

  • 条形码4J-2.0.jar
  • commons-beanutils.jar
  • commons-codec-1.6.jar
  • commons-collections.jar
  • commons-digester-2.0.jar
  • commons-lang-2.0.jar
  • commons-logging.jar
  • commons-net-1.2.2.jar
  • commons-validator.jar
  • db2jcc.jar
  • db2jcc_license_cu.jar
  • itext-2.1.7.jar
  • jasperreports-4.5.0.jar
  • log4j-1.2.8.jar
  • poi-3.8-20120326.jar
我使用条形码的jrxml文件内容如下所示:


$F{OPA_ACK_NO_PK}
但我得到了以下错误:

net.sf.jasperreports.engine.JRRuntimeException: Could not resolve style(s): Barcode4j
at net.sf.jasperreports.engine.fill.JRFillObjectFactory.checkUnresolvedReferences(JRFillObjectFactory.java:1577)
at net.sf.jasperreports.engine.fill.JRFillObjectFactory.setStyles(JRFillObjectFactory.java:1504)
at net.sf.jasperreports.engine.fill.JRBaseFiller.loadStyles(JRBaseFiller.java:912)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:804)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at Report.Test.main(Test.java:162)
Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.apache.batik.bridge.ViewBox.getPreserveAspectRatioTransform([FSZFF)Ljava/awt/geom/AffineTransform; from class net.sf.jasperreports.renderers.BatikRenderer
    at net.sf.jasperreports.renderers.BatikRenderer.render(BatikRenderer.java:123)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1405)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:757)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:2554)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:765)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:721)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:635)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:383)
    at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:122)
    at Report.Test.main(Test.java:172)
请告诉我我做错了什么

删除条形码样式标记的注释后,我消除了该错误,并得到另一个异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/batik/bridge/UserAgent
    at net.sf.jasperreports.components.barcode4j.BarcodeSVGImageProducer.createImage(BarcodeSVGImageProducer.java:69)
    at net.sf.jasperreports.components.barcode4j.BarcodeFillComponent.setBarcodeImage(BarcodeFillComponent.java:149)
    at net.sf.jasperreports.components.barcode4j.BarcodeFillComponent.fill(BarcodeFillComponent.java:113)
    at net.sf.jasperreports.engine.fill.JRFillComponentElement.fill(JRFillComponentElement.java:148)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.fillElements(JRFillElementContainer.java:570)
    at net.sf.jasperreports.engine.fill.JRFillFrame.fill(JRFillFrame.java:276)
    at net.sf.jasperreports.engine.fill.JRFillElementContainer.fillElements(JRFillElementContainer.java:570)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:406)
    at net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:352)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillTitle(JRVerticalFiller.java:323)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:257)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
    at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
    at Report.Test.main(Test.java:169)
我添加了所需的蜡染、深红色、xerces和xercesImpl罐。但我得到了以下错误:

net.sf.jasperreports.engine.JRRuntimeException: Could not resolve style(s): Barcode4j
at net.sf.jasperreports.engine.fill.JRFillObjectFactory.checkUnresolvedReferences(JRFillObjectFactory.java:1577)
at net.sf.jasperreports.engine.fill.JRFillObjectFactory.setStyles(JRFillObjectFactory.java:1504)
at net.sf.jasperreports.engine.fill.JRBaseFiller.loadStyles(JRBaseFiller.java:912)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:804)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:746)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:58)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
at Report.Test.main(Test.java:162)
Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.apache.batik.bridge.ViewBox.getPreserveAspectRatioTransform([FSZFF)Ljava/awt/geom/AffineTransform; from class net.sf.jasperreports.renderers.BatikRenderer
    at net.sf.jasperreports.renderers.BatikRenderer.render(BatikRenderer.java:123)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1405)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:757)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:2554)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:765)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:721)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:635)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:383)
    at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:122)
    at Report.Test.main(Test.java:172)

昨天我遇到了完全相同的问题,我成功地通过以下方法解决了它:

        <componentElement>
            <reportElement x="311" y="166" width="180" height="10"/>
            <jr:barbecue xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" type="Code39 (Extended)" drawText="false" checksumRequired="false">
                <jr:codeExpression><![CDATA[$P{barcode}]]></jr:codeExpression>
            </jr:barbecue>
        </componentElement>

您应该添加库蜡染桥:

<dependency>
    <groupId>batik</groupId>
    <artifactId>batik-bridge</artifactId>
    <version>1.6-1</version>
</dependency>

蜡染
蜡染桥
1.6-1

对于我来说,在项目
pom.xml
中添加
蜡染桥
,具有以下依赖关系:

<dependency>
    <groupId>org.apache.xmlgraphics</groupId>
    <artifactId>batik-bridge</artifactId>
    <version>1.9.1</version>
</dependency>

org.apache.xmlgraphics
蜡染桥
1.9.1

您是否检查了报告中的条形码4J样式声明?您可以尝试删除条形码组件的样式参考谢谢您的提示帮助。。我实际上已经在jrxml中对条形码样式进行了注释。Alex,我现在无法回答这个问题。。所以我编辑了这个问题。。请看一看相同的。这可能是因为调用了一些不推荐的方法吗?您应该将库的版本与JR的pom.xml中的版本进行比较谢谢Shessuky。我通过用1.7版本更新蜡染罐解决了这个问题。在这种情况下,您仅仅使用另一个lib给了我一个问题:GRAVE:null org.xml.sax.SAXNotRecognizedException:library给了您一个问题?您正在使用Geotk 4.x快照吗?