当前位置: 首页 > 知识库问答 >
问题:

Java语言lang.NoClassDefFoundError:com/itextpdf/kernel/counter/event/IMetaInfo

许学真
2023-03-14

我是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依赖项,但是错误仍然存在。提前谢谢。

共有1个答案

陶博涉
2023-03-14

com/itextpdf/内核/计数器/事件/IMetaInfo版本7.0.4中不存在尝试升级到itext7.1.7

 类似资料:
  • 我正在使用Gradle设置一个使用itext7生成pdf文件的测试项目。 如果我在Netbean IDE中运行我的主类,一切正常;创建了一个“结果”文件夹,我可以在其中找到生成的pdf。 但是如果我清理并构建项目,进入project_folder/build/libs并尝试执行java-jarmypdfproject.jar文件,我得到这个错误= 这是我的主课(MyPdfMain.class) 这

  • 我正在尝试编写一个Word-to-PDF转换器,并将Java代码以Java小程序的形式构建到HTML网站中。 我使用了http://java.worldbestlearningcenter.com/2013/07/word-to-pdf-converter.html.的Java代码。代码本身似乎工作得很好,当我在Eclipse中运行程序时,我确实可以将word文档转换为PDF。现在我想将该代码添加

  • Attribute Name Type Required Default Description name string No default The name of the counter start number No 1 The initial number to start counting from skip number No 1 The interval to count by di

  • 问题内容: 我正在尝试更好地理解它们之间的区别。我在网上找到了很多解释,但它们倾向于抽象的差异,而不是实际的含义。 我的大部分编程经验都来自CPython(动态的,解释的)和Java(静态的,编译的)。但是,我知道还有其他种类的解释和编译语言。除了可以从以编译语言编写的程序中分发可执行文件这一事实之外,每种类型是否有优点/缺点?通常,我听到人们争辩说解释语言可以交互使用,但是我相信编译语言也可以具

  • 目标 认识 Java 语言中的保留字 理解 Java 类与 Java 对象之间的关系。 了解 Java 类中的每种结构的功能和语法 OOP 与对象密切相关。本单元介绍两个与 Java 语言如何处理对象紧密相关的主题:保留字和 Java 类的结构。 保留字 跟任何编程语言一样,Java 语言指定了一些编译器认为具有特殊含义的关键字。出于该原因,不允许您使用它们来命名您的 Java 结构。保留字(也称