跳至页脚内容
在 JAVA 中使用 IRONPDF

如何在使用 Java 在 PDF 文档中创建表格 (教程)

这篇文章将演示如何使用Java在PDF文档中创建表格。

在Java程序中,创建PDF文档表格需要一个第三方库。 有多种库存库可用于在Java程序中创建PDF内部表格。 然而,它们可能很昂贵,难以使用,或者有性能问题。 找到一个易于使用,免费开发并有效运行的库可能会很困难。

IronPDF是一个对操作PDF文件非常有用的库。 您可以通过点击IronPDF官方Java页面了解更多关于IronPDF的信息。

本文涵盖以下步骤:

  1. 创建一个新项目
  2. 安装IronPDF库
  3. 创建一个新的PDF文档
  4. 为其创建一个表格
  5. 添加动态值到PDF文档

创建一个新的Java项目

打开您首选的 IDE。本文建议使用 IntelliJ,因此使用其他 IDE 创建新项目的步骤可能有所不同。

打开IntelliJ IDE,从顶部菜单栏中点击文件 > 新项目。 命名您的项目,选择位置、语言、构建系统和JDK,如下所示。

如何使用Java在PDF文档中创建表格(教程),图1:IntelliJ IDE新项目窗口 IntelliJ IDE新项目窗口

点击创建项目按钮,一个新项目将被创建。

安装 IronPDF 库

现在,在新创建的项目中安装IronPDF库。 继续执行以下步骤。

打开pom.xml文件并添加必要的依赖和库以使用IronPDF。 本文未提供pom.xml的具体内容,但请务必通过Maven的依赖管理正确包含IronPDF库。

<!-- Add IronPDF dependencies here -->
<dependencies>
    <!-- Example dependency for IronPDF, actual group and artifact id to be retrieved from official documentation -->
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>VERSION_NUMBER</version>
    </dependency>
</dependencies>
<!-- Add IronPDF dependencies here -->
<dependencies>
    <!-- Example dependency for IronPDF, actual group and artifact id to be retrieved from official documentation -->
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>VERSION_NUMBER</version>
    </dependency>
</dependencies>
XML

在您的终端中键入以下命令并按回车键安装指定的Maven依赖。

mvn install
mvn install
SHELL

这将在此项目中安装IronPDF。

添加以下导入语句以使用IronPDF类。

import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.*;
JAVA

首先,我们将学习使用Java创建简单的PDF文档。

创建PDF文档

以下示例代码将创建一个新的PDF文档。

public static void main(String[] args) throws IOException {
    // Create a PDF document from an HTML string
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("This is a sample PDF file");

    try {
        // Save the created PDF document to a file
        myPdf.saveAs(Paths.get("html_saved.pdf"));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
public static void main(String[] args) throws IOException {
    // Create a PDF document from an HTML string
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("This is a sample PDF file");

    try {
        // Save the created PDF document to a file
        myPdf.saveAs(Paths.get("html_saved.pdf"));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
JAVA

renderHtmlAsPdf方法以字符串作为参数并将该字符串转换为PDF文档的实例。

saveAs函数以文件路径作为参数并将新创建的PDF文档保存到指定的文件路径。

上面的代码创建了一个PDF,如下图所示。

如何使用Java在PDF文档中创建表格(教程),图2:新PDF文档 新PDF文档

为PDF文件创建表格

以下代码将在PDF中创建一个表格。

public static void main(String[] args) throws IOException {
    // HTML content for creating a table
    String tableContent = "<table>\n" +
        "  <tr>\n" +
        "    <th>Company</th>\n" +
        "    <th>Contact</th>\n" +
        "    <th>Country</th>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Alfreds Futterkiste</td>\n" +
        "    <td>Maria Anders</td>\n" +
        "    <td>Germany</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Centro comercial Moctezuma</td>\n" +
        "    <td>Francisco Chang</td>\n" +
        "    <td>Mexico</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Ernst Handel</td>\n" +
        "    <td>Roland Mendel</td>\n" +
        "    <td>Austria</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Island Trading</td>\n" +
        "    <td>Helen Bennett</td>\n" +
        "    <td>UK</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Laughing Bacchus Winecellars</td>\n" +
        "    <td>Yoshi Tannamuri</td>\n" +
        "    <td>Canada</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Magazzini Alimentari Riuniti</td>\n" +
        "    <td>Giovanni Rovelli</td>\n" +
        "    <td>Italy</td>\n" +
        "  </tr>\n" +
        "</table>";

    // Create a PDF document with table content
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1>Example of adding table in a PDF</h1>" + tableContent);

    try {
        // Save the created PDF document to a file
        myPdf.saveAs(Paths.get("html_saved.pdf"));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
public static void main(String[] args) throws IOException {
    // HTML content for creating a table
    String tableContent = "<table>\n" +
        "  <tr>\n" +
        "    <th>Company</th>\n" +
        "    <th>Contact</th>\n" +
        "    <th>Country</th>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Alfreds Futterkiste</td>\n" +
        "    <td>Maria Anders</td>\n" +
        "    <td>Germany</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Centro comercial Moctezuma</td>\n" +
        "    <td>Francisco Chang</td>\n" +
        "    <td>Mexico</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Ernst Handel</td>\n" +
        "    <td>Roland Mendel</td>\n" +
        "    <td>Austria</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Island Trading</td>\n" +
        "    <td>Helen Bennett</td>\n" +
        "    <td>UK</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Laughing Bacchus Winecellars</td>\n" +
        "    <td>Yoshi Tannamuri</td>\n" +
        "    <td>Canada</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Magazzini Alimentari Riuniti</td>\n" +
        "    <td>Giovanni Rovelli</td>\n" +
        "    <td>Italy</td>\n" +
        "  </tr>\n" +
        "</table>";

    // Create a PDF document with table content
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1>Example of adding table in a PDF</h1>" + tableContent);

    try {
        // Save the created PDF document to a file
        myPdf.saveAs(Paths.get("html_saved.pdf"));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
JAVA

上面的代码使用简单的HTML标签使用Java在PDF中创建一个表格。 所以,要创建一个表格,您必须具备使用HTML标签的基础知识。 几乎每个Java程序员都具备HTML知识,所以使用HTML标签创建新表格和表格单元非常容易。

此程序生成的PDF文件如下图所示:

如何使用Java在PDF文档中创建表格(教程),图3:包含HTML表格的PDF文档 包含HTML表格的PDF文档

这是一个没有样式的简单表格。

现在,让我们为此表格添加一些样式,例如设置表格宽度、边距、布局、字体、背景颜色等。

为表格添加样式

以下示例代码将格式化我们的表格并为我们的单元格添加样式。

public static void main(String[] args) throws IOException {
    // HTML and CSS content for styling the table
    String htmlStyle = "<!DOCTYPE html>\n" +
        "<html>\n" +
            "<head>\n" +
                "<style>\n" +
                    "table {\n" +
                    "  font-family: arial, sans-serif;\n" +
                    "  border-collapse: collapse;\n" +
                    "  width: 100%;\n" +
                    "}\n" +
                    "\n" +
                    "td, th {\n" +
                    "  border: 1px solid #dddddd;\n" +
                    "  text-align: left;\n" +
                    "  padding: 8px;\n" +
                    "}\n" +
                    "\n" +
                    "tr:nth-child(even) {\n" +
                    "  background-color: #dddddd;\n" +
                    "}\n" +
                "</style>\n" +
            "</head>\n" +
        "<body>";

    String tableContent = "<table>\n" +
        "  <tr>\n" +
        "    <th>Company</th>\n" +
        "    <th>Contact</th>\n" +
        "    <th>Country</th>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Alfreds Futterkiste</td>\n" +
        "    <td>Maria Anders</td>\n" +
        "    <td>Germany</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Centro comercial Moctezuma</td>\n" +
        "    <td>Francisco Chang</td>\n" +
        "    <td>Mexico</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Ernst Handel</td>\n" +
        "    <td>Roland Mendel</td>\n" +
        "    <td>Austria</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Island Trading</td>\n" +
        "    <td>Helen Bennett</td>\n" +
        "    <td>UK</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Laughing Bacchus Winecellars</td>\n" +
        "    <td>Yoshi Tannamuri</td>\n" +
        "    <td>Canada</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Magazzini Alimentari Riuniti</td>\n" +
        "    <td>Giovanni Rovelli</td>\n" +
        "    <td>Italy</td>\n" +
        "  </tr>\n" +
        "</table>\n</body>\n" +
        "</html>";

    // Create a PDF document with styled table content
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf(htmlStyle + "Sample PDF" + tableContent);

    try {
        // Save the created PDF document to a file
        myPdf.saveAs(Paths.get("html_saved.pdf"));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
public static void main(String[] args) throws IOException {
    // HTML and CSS content for styling the table
    String htmlStyle = "<!DOCTYPE html>\n" +
        "<html>\n" +
            "<head>\n" +
                "<style>\n" +
                    "table {\n" +
                    "  font-family: arial, sans-serif;\n" +
                    "  border-collapse: collapse;\n" +
                    "  width: 100%;\n" +
                    "}\n" +
                    "\n" +
                    "td, th {\n" +
                    "  border: 1px solid #dddddd;\n" +
                    "  text-align: left;\n" +
                    "  padding: 8px;\n" +
                    "}\n" +
                    "\n" +
                    "tr:nth-child(even) {\n" +
                    "  background-color: #dddddd;\n" +
                    "}\n" +
                "</style>\n" +
            "</head>\n" +
        "<body>";

    String tableContent = "<table>\n" +
        "  <tr>\n" +
        "    <th>Company</th>\n" +
        "    <th>Contact</th>\n" +
        "    <th>Country</th>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Alfreds Futterkiste</td>\n" +
        "    <td>Maria Anders</td>\n" +
        "    <td>Germany</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Centro comercial Moctezuma</td>\n" +
        "    <td>Francisco Chang</td>\n" +
        "    <td>Mexico</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Ernst Handel</td>\n" +
        "    <td>Roland Mendel</td>\n" +
        "    <td>Austria</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Island Trading</td>\n" +
        "    <td>Helen Bennett</td>\n" +
        "    <td>UK</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Laughing Bacchus Winecellars</td>\n" +
        "    <td>Yoshi Tannamuri</td>\n" +
        "    <td>Canada</td>\n" +
        "  </tr>\n" +
        "  <tr>\n" +
        "    <td>Magazzini Alimentari Riuniti</td>\n" +
        "    <td>Giovanni Rovelli</td>\n" +
        "    <td>Italy</td>\n" +
        "  </tr>\n" +
        "</table>\n</body>\n" +
        "</html>";

    // Create a PDF document with styled table content
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf(htmlStyle + "Sample PDF" + tableContent);

    try {
        // Save the created PDF document to a file
        myPdf.saveAs(Paths.get("html_saved.pdf"));
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
}
JAVA

添加的CSS用于在PDF中为表格添加样式。 因此,使用CSS根据需要添加样式非常高效。

以下是此程序生成的PDF。

如何使用Java在PDF文档中创建表格(教程),图4:包含HTML和CSS样式的PDF文档 包含HTML和CSS样式的PDF文档

以上的代码看起来很杂乱。 但可以通过将所有HTML内容移入HTML文件,然后从该文件生成PDF来清理它。

使用HTML文件在PDF中创建表格使用Java

创建一个新的HTML文件并将所有HTML内容添加到该文件中,如下所示:

如何使用Java在PDF文档中创建表格(教程),图5:HTML移入自己的HTML文件中 HTML移入自己的HTML文件中

将以下代码添加到Java程序中。

// Create a PDF document from an HTML file
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("Create_Table.html");

try {
    // Save the created PDF document to a file
    myPdf.saveAs(Paths.get("html_saved.pdf"));
} catch (IOException e) {
    throw new RuntimeException(e);
}
// Create a PDF document from an HTML file
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("Create_Table.html");

try {
    // Save the created PDF document to a file
    myPdf.saveAs(Paths.get("html_saved.pdf"));
} catch (IOException e) {
    throw new RuntimeException(e);
}
JAVA

我们可以看到生成一个PDF使用HTML文档是多么的简单。 如果您需要在Java中创建PDF文件,最简单的方法是创建一个包含内容和样式的单独HTML文档,然后只需一行代码将您的HTML文档转换为PDF。

如何使用Java在PDF文档中创建表格(教程),图6:带有样式的最终PDF文档 带有样式的最终PDF文档

摘要

本教程演示了如何使用Java在PDF文件中创建样式化表格,并学习了将HTML文件转换为PDF文件。 IronPDF for Java also offers functionality to add images to the PDF file, split PDF files, add headers and footers, apply digital signatures, and much more. 探索IronPDF文档了解更多关于这些功能及额外功能的信息。

Remove the IronPDF watermark from your generated PDF documents by purchasing a license key or by registering for a free trial.

常见问题解答

如何开始一个新的 Java 项目以创建 PDF?

要开始一个新的创建 PDF 的 Java 项目,您可以使用像 IntelliJ 这样的 IDE。首先设置项目,并通过 Maven 安装 IronPDF 库以处理 PDF 创建和操作。

在 Java 中将 HTML 内容转换为 PDF 涉及哪些步骤?

要在 Java 中将 HTML 内容转换为 PDF,您可以使用 IronPDF 的 PdfDocument.renderHtmlAsPdf 方法。这涉及编写您的 HTML 内容,选择性地使用 CSS 对其样式化,然后将其渲染为 PDF。

我可以使用 CSS 对用 Java 生成的 PDF 中的表格进行样式化吗?

是的,您可以通过在 HTML 内容中包含 CSS 来对 PDF 中的表格进行样式化,然后使用 IronPDF 将其渲染为 PDF。这允许您定义字体、边框、颜色等。

如何使用 Java 从外部 HTML 文件创建 PDF?

要从 Java 中的外部 HTML 文件创建 PDF,您可以使用 IronPDF 的 PdfDocument.renderHtmlFileAsPdf 方法,该方法将整个 HTML 文件转换为 PDF 文档。

在 Java 中使用第三方库创建 PDF 的好处是什么?

使用像 IronPDF 这样的第三方库可以简化 Java 中的 PDF 创建过程,提供 HTML 转 PDF 转换、表格样式设置等功能,以及图像和数字签名支持等附加功能。

如何使用 Java 库在 PDF 文档中包含图像?

您可以通过在您渲染为 PDF 的 HTML 内容中嵌入图像来在 PDF 中包含图像。这种方法可以无缝地合并视觉元素。

在 Java 中有哪些选项可用于拆分 PDF?

IronPDF 提供拆分 PDF 的选项,允许您将单个 PDF 分成多个文档。此功能对于管理大型文档或提取特定部分特别有用。

如何使用 Java 将数字签名应用于 PDF?

您可以使用 IronPDF 的内置功能将数字签名应用于 PDF,以增强文档的安全性和真实性。

如果我的 PDF 文档上有水印,我应该怎么做?

如果使用 IronPDF 创建的 PDF 文档上有水印,您可以通过购买许可证密钥或注册免费试用许可证来将其移除。

Darrius Serrant
全栈软件工程师(WebOps)

Darrius Serrant 拥有迈阿密大学的计算机科学学士学位,目前在 Iron Software 担任全栈 WebOps 市场工程师。从小就被编码吸引,他认为计算机既神秘又易于接触,使其成为创意和问题解决的理想媒介。

在 Iron Software,Darrius 喜欢创造新事物,并简化复杂概念以使其更易理解。作为我们常驻的开发者之一,他还自愿教授学生,与下一代分享他的专业知识。

对于 Darrius 来说,他的工作令人满意,因为它被重视并产生真正的影响。