首页 > 解决方案 > Itext 和 lowagie 停止工作 - NoSuchMethod getCharBBox(char)

问题描述

我的项目正在使用较旧的(lgpl 许可)iText,它停止工作。我已经恢复了最后的提交,但它没有帮助。错误是:

java.lang.NoSuchMethodError: 'int[] com.lowagie.text.pdf.BaseFont.getCharBBox(char)'

我浏览了反编译的文件,发现了那些(丢失的)方法……我真的不知道发生了什么。

这是我的 pom.xml:

       </dependency>
        <dependency>
            <groupId>com.lowagie</groupId>  
            <artifactId>itext</artifactId>
            <version>2.1.7</version>
        </dependency>        
        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13.2</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>core</artifactId>
            <version>3.4.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.zxing</groupId>
            <artifactId>javase</artifactId>
            <version>3.4.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.0</version>
        </dependency>

是的,有两个 itext 依赖项。但我不得不说,两天前这是有效的......

旧的 iText 是否发生了变化而破坏了它?

标签: javamavenitext

解决方案


你几乎自己回答了这个问题:

是的,有两个 itext 依赖项。

休战是您添加了三次iText !

三次将 iText 作为依赖项是没有意义的。如果您使用的是com.lowagieiText,则删除其他内容,您的 pom.xml 应如下所示:

    <dependency>
        <groupId>com.lowagie</groupId>  
        <artifactId>itext</artifactId>
        <version>2.1.7</version>
    </dependency>        
    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>3.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>javase</artifactId>
        <version>3.4.0</version>
    </dependency>

如果您想使用更新的 iText,请使用openPDF


推荐阅读