如何在 PDF 文件中使用 Java 建立表格(教程)
本文將示範如何使用Java在PDF文件中建立表格。
使用Java程式在PDF文件中建立表格需要有第三方程式庫。 有多種程式庫可供使用來使用Java程式在PDFs中建立表格。 然而,它們可能價格昂貴、使用困難或存在效能問題。 找到使用簡單、免費開發且效能良好的程式庫可能很棘手。
IronPDF是一個非常有用的用於操作PDF文件的程式庫。 您可以點擊IronPDF官方Java頁面了解更多關於IronPDF的資訊。
本文涵蓋以下步驟:
- 建立一個新專案
- 安裝IronPDF程式庫
- 建立新的PDF文件
- 為其建立表格
- 向PDF文件新增動態值
建立新的Java專案
打開您偏好的IDE。本指南推薦使用IntelliJ,因此使用其他IDE建立專案的步驟可能不同。
打開IntelliJ IDE,從頂部選單欄中點擊檔案 > 新專案。 為您的專案命名,選擇位置、語言、建構系統和JDK,如下所示。
IntelliJ IDE新專案窗口
點擊建立專案按鈕,即可建立一個新專案。
安裝IronPDF程式庫
現在,將IronPDF程式庫安裝到新建立的專案中。 繼續以下步驟。
打開pom.xml檔案,新增必要的相依性和儲存庫以使用IronPDF。 本文未提供pom.xml的具體內容,但請確保使用Maven的依賴管理正確包含IronPDF程式庫。
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>VERSION_NUMBER</version>
</dependency>
</dependencies>
<dependencies>
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>VERSION_NUMBER</version>
</dependency>
</dependencies>
在終端中輸入以下命令並按Enter鍵以安裝指定的Maven相依性。
mvn install
mvn install
這將會在此專案中安裝IronPDF。
為使用IronPDF類別新增以下import語句。
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](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#renderHtmlAsPdf(java.lang.String)方法將字串作為引數,並將該字串轉換為一個PDF文件的實例。
[saveAs](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#saveAs(java.lang.String)函式將文件路徑作為引數,並將新建立的PDF文件保存到引數中指定的文件路徑。
從上述程式碼建立了一個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標籤在PDF中使用Java建立了一個表格。 因此,要建立表格,您必須具備使用HTML標籤的基本知識。 幾乎每個Java程式開發者都知道HTML,所以使用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。
包含HTML表格並使用CSS樣式化的PDF文件
上述程式碼看起來非常混亂。 但可以通過將所有HTML內容移動到一個HTML文件中然後從該文件生成PDF來清理它。
使用Java在PDF中使用HTML文件建立表格
建立一個新的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。
帶有樣式的最終PDF文件
摘要
本教程示範了如何使用Java在PDF文件中建立樣式化的表格,並學習了如何將HTML文件轉換為PDF文件。 IronPDF for Java還提供為PDF文件新增圖片、拆分PDF文件、新增頁眉和頁腳、應用數位簽名等功能。 瀏覽IronPDF文件以了解更多關於這些功能和其他功能。
常見問題
我如何啟動一個新的Java專案來建立PDF?
要啟動一個新的Java專案以建立PDF,您可以使用像IntelliJ這樣的IDE。首先設置專案,然後通過Maven安裝IronPDF程式庫以處理PDF的建立和操作。
將HTML內容轉換為Java中的PDF涉及哪些步驟?
要在Java中將HTML內容轉換為PDF,您可以使用IronPDF的PdfDocument.renderHtmlAsPdf方法。這涉及編寫您的HTML內容,選擇性地用CSS設計樣式,然後將其渲染為PDF。
我可以使用CSS為Java生成的PDF中的表格設計樣式嗎?
是的,您可以使用CSS為PDF中的表格新增樣式,方法是將CSS包含在HTML內容中,然後使用IronPDF將其渲染成PDF。這樣可以讓您定義字體、邊框、顏色等。
我如何使用Java從外部HTML文件建立PDF?
要在Java中從外部HTML文件建立PDF,您可以使用IronPDF的PdfDocument.renderHtmlFileAsPdf方法,這將整個HTML文件轉換為PDF文件。
使用第三方程式庫來在Java中建立PDF有什麼好處?
使用像IronPDF這樣的第三方程式庫可以簡化在Java中建立PDF的過程,提供例如HTML到PDF轉換、表格樣式設計等功能,還有圖像和數位簽名支援等附加功能。
我如何在使用Java程式庫的PDF文件中包含圖片?
您可以通過將圖片嵌入到您使用IronPDF渲染為PDF的HTML內容中在PDF文件中包含圖片。此方法允許視覺元素的無縫整合。
Java中有哪些可用的PDF拆分選項?
IronPDF提供了PDF拆分選項,允許您將單個PDF分成多個文件。此功能對於管理大型文件或提取特定部分特別有用。
我如何使用Java將數位簽名應用到PDF?
您可以使用IronPDF的內建功能在PDF上新增數位簽名,以提高文件的安全性和真實性。
如果我的PDF文件上有水印,我應該怎麼做?
如果您使用IronPDF建立的PDF文件上有水印,您可以通過購買授權金鑰或註冊免費試用來刪除它。





