You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Flying Saucer将URL的HTML转PDF遇依赖缺失,求正确Maven依赖

Flying Saucer HTML转PDF依赖问题解决

我尝试用Flying Saucer把指定URL的HTML生成PDF,已经在Maven的pom.xml里引入了flying-saucer-pdf-itext5 9.0.1依赖,手动添加外部Jar到IntelliJ IDE也没用,出现如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/xhtmlrenderer/extend/UserAgentCallback
at PDFGen.main(PDFGen.java:14)
Caused by: java.lang.ClassNotFoundException: org.xhtmlrenderer.extend.UserAgentCallback
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more

使用的代码如下:

import org.xhtmlrenderer.pdf.ITextRenderer;

import java.io.FileOutputStream;

public class PDFGen {
    public static void main(String[] args) {
        try {
            String url = "https://en.wikipedia.org/wiki/IPhone";
            String pdfFilePath = "output.pdf";

            ITextRenderer renderer = new ITextRenderer();

            renderer.setDocument(url);

            // Render the HTML to PDF
            renderer.layout();
            renderer.createPDF(new FileOutputStream(pdfFilePath));

            System.out.println("PDF generated successfully.");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

当前Maven依赖配置:

<dependency>
    <groupId>org.xhtmlrenderer</groupId>
    <artifactId>flying-saucer-pdf-itext5</artifactId>
    <version>9.0.1</version>
</dependency>

正确的依赖配置

你需要补充引入Flying Saucer的核心库,因为flying-saucer-pdf-itext5是基于核心包的扩展,默认不会自动引入核心依赖。以下是完整的Maven依赖:

<!-- Flying Saucer核心渲染库,包含缺失的UserAgentCallback类 -->
<dependency>
    <groupId>org.xhtmlrenderer</groupId>
    <artifactId>flying-saucer-core</artifactId>
    <version>9.0.1</version>
</dependency>

<!-- Flying Saucer PDF生成扩展(基于iText5) -->
<dependency>
    <groupId>org.xhtmlrenderer</groupId>
    <artifactId>flying-saucer-pdf-itext5</artifactId>
    <version>9.0.1</version>
</dependency>

<!-- 显式引入iText5依赖,避免版本冲突 -->
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.3</version>
</dependency>

配置说明

  • flying-saucer-core是核心依赖,缺失的org.xhtmlrenderer.extend.UserAgentCallback类就来自这个包,这是导致错误的直接原因。
  • flying-saucer-pdf-itext5负责将HTML渲染结果转换为PDF格式,依赖iText5处理PDF生成逻辑。
  • 显式指定itextpdf版本可以避免Maven依赖传递带来的版本不一致问题,确保依赖稳定。

配置完成后,执行mvn clean install刷新项目依赖,重新运行代码即可正常生成PDF。

内容的提问来源于stack exchange,提问作者ezhil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 21:35:34