java.lang.NoClassDefFoundError : com/itextpdf/kernel/counter/event/IMetaInfo 错误

标签 java itext itext7 html-to-pdf

我是 Java 的新手,我正在研究从 html 生成 pdf。因此,我使用的是 iText7,我可以通过 PdfWriter 和 Document 生成一个普通的 pdf 文件,但我不能使用 html2pdf 来生成它。

这是我的 Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>springexample</groupId>
  <artifactId>PDFGenerator</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>bean</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.itextpdf/itext7-core -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext7-core</artifactId>
        <version>7.0.4</version>
        <type>pom</type>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.itextpdf/itext7-core -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>kernel</artifactId>
        <version>7.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>io</artifactId>
        <version>7.0.4</version>
    </dependency>

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>layout</artifactId>
        <version>7.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>forms</artifactId>
        <version>7.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdfa</artifactId>
        <version>7.0.4</version>
    </dependency>
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>pdftest</artifactId>
        <version>7.0.4</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.itextpdf/html2pdf -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>html2pdf</artifactId>
        <version>2.1.4</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.26</version>
    </dependency>
</project>

这是我的java代码:

import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.file.Paths;

import com.itextpdf.html2pdf.HtmlConverter;

public class HtmlToPdf {

/** The HTML-string that we are going to convert to PDF. */
public static final String HTML = "<h1>Test</h1><p>Hello World</p>";
/** The target folder for the result. */
public static final String TARGET = "target/";
/** The path to the resulting PDF file. */
public static final String DEST = String.format("%stest-01.pdf", TARGET);

        public static void main(String[] args) throws IOException { 

            HtmlConverter.convertToPdf(HTML, new FileOutputStream(DEST));

            System.out.println("Done");
        }
    }

错误在线:

HtmlConverter.convertToPdf(HTML, new FileOutputStream(DEST));

Exception in thread "main" java.lang.NoClassDefFoundError: com/itextpdf/kernel/counter/event/IMetaInfo
    at springexample.bean.HtmlToPdf.main(HtmlToPdf.java:18)
Caused by: java.lang.ClassNotFoundException: com.itextpdf.kernel.counter.event.IMetaInfo
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

我阅读了与

相关的其他问题

java.lang.NoClassDefFoundError

他们说我需要添加 io 和 slf4j 依赖项,但是错误仍然存​​在。 提前致谢。

最佳答案

com/itextpdf/kernel/counter/event/IMetaInfo 在版本 7.0.4 中不存在 尝试升级到 itext 7.1.7

关于java.lang.NoClassDefFoundError : com/itextpdf/kernel/counter/event/IMetaInfo 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57163609/

相关文章:

android - 写入存储打开时出错失败 : ENOENT (No such file or directory) in android

java - 自动型类型转换

java - Camel管道如何与jms端点一起工作

c# - itextsharp 与 xmlworker 5.5.3 对比 5.5.7 在最新版本上缺少波兰语字符

java - 编辑 iText PDF Java

pdf - iText 7 需要跳过阅读页眉元素

java - 为什么我的 Java 程序中无法导入文件?

java - 在 Ubuntu 上将 Maven 项目导入到 Eclipse Luna 时出错

java - 在 JBoss 7 Java EE 项目中使用 iText

Javascript - pdf 页面上的标记位置不正确