如何在 PDF 文檔中使用 Java 創建表格(教程)
本文將示範如何使用 Java 在 PDF 文件中建立表格。
使用 Java 程式在 PDF 文件中建立表格需要藉助第三方函式庫。 有很多庫可用於透過 Java 程式在 PDF 中建立表格。 但是,它們可能價格昂貴、使用困難或有效能問題。 要找到一個易於使用、開發免費且效能高效的函式庫並不容易。
IronPDF 是一個非常實用的 PDF 文件處理庫。 您可以點擊IronPDF 官方 Java 頁面,以了解更多關於 IronPDF 的資訊。
本文將介紹以下步驟:
- 建立一個新項目
- 安裝 IronPDF 庫
- 建立一個新的PDF文檔
- 為其建立一個表格
- 在 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>在終端機中輸入以下指令並按下回車鍵,即可安裝指定的 Maven 依賴項。
mvn installmvn install這將在此項目中安裝 IronPDF。
新增以下導入語句以使用 IronPDF 類別。
import com.ironsoftware.ironpdf.*;import com.ironsoftware.ironpdf.*;首先,我們將學習如何用 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);
}
}renderHtmlAsPdf 方法接受一個字串作為參數,並將該字串轉換為 PDF 文件實例。
saveAs 函數接受一個檔案路徑作為參數,並將新建立的 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);
}
}以上程式碼使用簡單的 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);
}
}新增的 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);
}我們可以看到,使用 HTML 文件產生 PDF 是多麼容易。 如果您需要在 Java 中建立 PDF 文件,最簡單的方法是建立一個包含內容和樣式的單獨 HTML 文檔,然後只需一行程式碼即可將該 HTML 文件轉換為 PDF。
如何使用 Java 在 PDF 文件中建立表格(教學),圖 6:帶有樣式的最終 PDF 文檔 最終的帶樣式 PDF 文檔
摘要
本教學課程示範如何使用 Java 在 PDF 檔案中建立樣式表格,並學習如何將 HTML 檔案轉換為 PDF 檔案。 IronPDF for Java 也提供新增影像、分割 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 文件上有水印,您可以透過購買授權金鑰或註冊免費試用授權來移除水印。







