跳過到頁腳內容
使用 IRONPDF FOR JAVA

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

本文將示範如何使用 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 Library

現在,在新建立的專案中安裝 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 文檔 PDF 文件包含一個由 HTML 產生的表格,並使用 CSS 設定了樣式。

上面的程式碼看起來很混亂。 但是,可以透過將所有 HTML 內容移到一個 HTML 檔案中,然後從該檔案產生 PDF 來清理它。

使用 Java 在 PDF 中使用 HTML 檔案建立表格。

建立一個新的 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

我們可以看到,使用 HTML 文件產生 PDF 是多麼容易。 如果您需要在 Java 中建立 PDF 文件,最簡單的方法是建立一個包含內容和樣式的單獨 HTML 文檔,然後只需一行程式碼即可將該 HTML 文件轉換為 PDF。

如何使用 Java 在 PDF 文件中建立表格(教學),圖 6:帶有樣式的最終 PDF 文檔 最終的帶樣式 PDF 文檔

摘要

本教學課程示範如何使用 Java 在 PDF 檔案中建立樣式表格,並學習如何將 HTML 檔案轉換為 PDF 檔案。 IronPDF for Java 也提供新增影像、分割 PDF 檔案新增頁首和頁尾套用數位簽章等功能。 請查閱 IronPDF 文檔,以了解有關這些特性和其他功能的更多資訊。

購買許可證金鑰註冊免費試用版,即可從產生的 PDF 文件中移除 IronPDF 浮水印。

常見問題解答

如何開始一個新的 Java 專案來建立 PDF?

要開始一個新的 Java 專案來建立 PDF,您可以使用 IntelliJ 之類的 IDE。首先設定專案,並透過 Maven 安裝 IronPDF 函式庫,以處理 PDF 的建立與操作。

在 Java 中將 HTML 內容轉換為 PDF 涉及哪些步驟?

要在 Java 中將 HTML 內容轉換為 PDF,您可以使用 IronPDF 的 PdfDocument.renderHtmlAsPdf 方法。這包括編寫您的 HTML 內容、選擇性地使用 CSS 設定其風格,然後將其渲染為 PDF。

我可以在使用 Java 生成的 PDF 中使用 CSS 設定表格樣式嗎?

是的,您可以在使用 IronPDF 將表格渲染為 PDF 之前,先將 CSS 包含在 HTML 內容中,從而使用 CSS 為 PDF 中的表格設定樣式。這可讓您定義字型、邊框、顏色等。

如何使用 Java 從外部 HTML 檔案建立 PDF?

要在 Java 中從外部 HTML 檔案建立 PDF,您可以使用 IronPDF 的 PdfDocument.renderHtmlFileAsPdf 方法,將整個 HTML 檔案轉換成 PDF 文件。

使用第三方函式庫在 Java 中建立 PDF 有什麼好處?

使用 IronPDF for Java 之類的第三方函式庫可簡化在 Java 中建立 PDF 的流程,提供的功能包括 HTML 到 PDF 的轉換、表格樣式設計,以及影像和數位簽章支援等附加功能。

如何使用 Java 函式庫在 PDF 文件中包含圖片?

您可以在 PDF 文件中包含圖片,方法是在使用 IronPDF 渲染成 PDF 的 HTML 內容中嵌入圖片。此方法可將視覺元素無縫納入。

在 Java 中分割 PDF 有哪些選項?

IronPDF 提供分割 PDF 的選項,讓您可以將單一 PDF 分為多個文件。此功能對於管理大型文件或抽取特定部分特別有用。

如何使用 Java 將數位簽章套用至 PDF?

您可以使用 IronPDF 的內建功能將數位簽章套用至 PDF,該功能支援新增數位簽章以強化文件安全性與真實性。

如果我的 PDF 文件上有水印,該怎麼辦?

如果您使用 IronPDF 製作的 PDF 文件上有水印,您可以透過購買授權金鑰或註冊免費試用授權來移除水印。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。