在 Java 中生成 PDF 文件有多种实现方式,其中一种常见的方法是使用第三方库将 HTML 内容转换为 PDF。以下是两种常用的实现方式,包括步骤流程和示例代码。
Flying Saucer(也称为 XHTMLRenderer)是一个用于将 XHTML 和 CSS 渲染为 PDF 的 Java 库。它可以将 HTML 内容转换为 PDF 文件。
步骤流程:
Maven 依赖:
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>flying-saucer-core</artifactId>
<version>9.1.22</version>
</dependency>
Gradle 依赖:
implementation 'org.xhtmlrenderer:flying-saucer-core:9.1.22'
示例代码:
import org.xhtmlrenderer.pdf.ITextRenderer;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class HtmlToPdfConverter {
public static void main(String[] args) throws Exception {
String htmlContent = "<html><body><h1>Hello, PDF!</h1></body></html>";
try (OutputStream os = new FileOutputStream("output.pdf")) {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocumentFromString(htmlContent);
renderer.layout();
renderer.createPDF(os);
renderer.finishPDF();
}
}
}
iText 是一个用于创建和处理 PDF 文档的广泛使用的 Java 库。你可以使用 iText 7 将 HTML 内容转换为 PDF。
步骤流程:
Maven 依赖:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.1.16</version>
</dependency>
Gradle 依赖:
implementation 'com.itextpdf:itext7-core:7.1.16'
示例代码:
import com.itextpdf.html2pdf.HtmlConverter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class HtmlToPdfConverter {
public static void main(String[] args) throws Exception {
String htmlContent = "<html><body><h1>Hello, PDF!</h1></body></html>";
try (OutputStream os = new FileOutputStream(new File("output.pdf"))) {
HtmlConverter.convertToPdf(htmlContent, os);
}
}
}
这些示例代码演示了如何使用 Flying Saucer 和 iText 7 将 HTML 内容转换为 PDF 文件。根据你的需求和项目配置,你可以选择其中一种方法来实现 HTML 到 PDF 的转换。记得根据实际情况进行适当的错误处理和资源释放。