
IronPDF For Java 和 iTextPDF itext7 for Java 的比較
如今,由於技術的不斷進步,開發人員可以受益於更好的解決方案。
軟體開發流程的未來在於自動化。 長期以來,PDF 文件給開發人員帶來了困難。 當處理 PDFs(例如,生成內容和將其他格式的內容轉換為 PDF)時,需要考慮許多因素。 隨著旨在協助讀取、寫入、建立,甚至從多種格式轉換 PDF 的眾多庫的開發,這些需求現在得到滿足。
本文將比較兩個受 Java 開發人員歡迎的 PDF 庫,用於編輯、列印和建立 PDF 文件:
- IronPDF Java Library:一個專注於從 HTML 生成 PDF 的 Java PDF 庫。
- ITextPDF 庫:一個以 Java 為首的開源庫,專注於使用可編程 API 生成 PDF。
我們將在轉向將 PDF 轉換和處理的性能花費之前,檢查這兩個庫的功能,以確定哪個庫最適合您的應用程式。 此外,將紀錄每個庫的持續時間,以供以後進行研究。
安裝 IronPDF Java
要安裝 IronPDF for Java,您只需將其宣告為一個依賴項。 要定義 IronPDF 作為依賴項,請在您的 pom.xml 中新增以下內容:
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>YOUR_VERSION_HERE</version>
</dependency>
注意:您可以手動下載 .jar:
- Go to IronPDF for Java Maven Repository to access the Maven Repo page.
- 解壓縮 zip 文件的內容。
- 建立一個資料夾,並複製 zip 文件夾的內容。
- 打開 Eclipse IDE。
- 建立一個新的 Java 專案。
- 在類路徑中新增 IronPDF .jar 文件。
- 完成專案建立嚮導。 就是這樣!
IronPDF 特性
藉助強大的 IronPDF PDF 程式庫,開發人員可以快速生成、讀取和操作 PDF。 IronPDF 在其核心使用 Chrome 引擎,提供了豐富的實用和強大的功能,包括將 HTML5、JavaScript、CSS 和圖像文件轉換為 PDF 的能力。 IronPDF 也可以新增獨特的標頭和頁腳,並精確建立與網頁瀏覽器中顯示相同的 PDF 文件。 IronPDF 支援多種網頁格式,包括 HTML、ASPX、Razor View 和 MVC。 IronPDF 的關鍵屬性如下:
- 使用 Java 程式輕鬆建立、讀取和編輯 PDF。
- 從任何具有 User-Agents、Proxies、Cookies、HTTP Headers 和 Form Variables 設定的網站 URL 連結建立 PDF,以支援使用 HTML 登入表單的登入。
- 從現有的 PDF 出版物中移除照片。
- 向 PDF 新增文字、相片、書籤、水印和其他元素。
- 合併和分割多個 PDF 文件的頁面。
- 將媒體型別文件(包括 CSS 文件)轉換為文件。
安裝 ITextPDF Java
ITextPDF 可在 iTextPDF 官網免費獲取。 此庫是根據 AGPL 軟體許可模式開源的。
要將 iText 庫新增到您的程式中,請將以下 Maven 儲存庫納入您的 pom.xml 文件中。
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
直接下載 iTextPDF .jar 文件和 slf4j.jar 文件。 要使用這些庫,將 iTextPDF .jar 文件放入系統的類路徑中。
iText Library 特性
- 從 HTML、XML 和圖像(png、jpg 等)建立 PDF。
- 向 PDF 文件中新增書籤、頁碼和標記。
- 將一個 PDF 文件拆分為多個 PDF,或將多個 PDF 組合為一個 PDF。
- 編程式化編輯 PDF 表單。
- 向 PDF 新增文字、圖片和幾何圖形。
使用 iTextPDF Java 將 HTML 字串轉換為 PDF
在 Java 中,HTMLConverter 是用於將 HTML 轉換為 PDF 的主類。
在 HTMLConverter 中有三個主要方法:
convertToDocument,返回一個Document物件。convertToElements,返回一個IElement物件清單。convertToPdf處理將 HTML 內容轉換為 PDF 的任務。 此方法接受以File或InputStream形式提供的 HTML 輸入,並返回OutputStream或Document物件。
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
// HTML content to be converted to PDF
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='http://hmkcode.com'>hmkcode.com</a>";
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML content to PDF and save it
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
使用 IronPDF Java 將 HTML 字串轉換為 PDF
IronPDF 的 PdfDocument 類提供多種靜態方法,允許 Java 開發人員從多種來源生成 HTML 文字。 其中一種方法是 PdfDocument.renderHtmlAsPdf 方法,它將 HTML 標記的字串轉換為 PDF 文件。
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Set the license and log path
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Convert the HTML content to a PDF
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
// Save the generated PDF
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
使用 ITextPDF Java 將 HTML 文件轉換為 PDF
可以使用 convertToPdf 方法將任何 HTML 文件轉換為 PDF。
HTML 文件中可能包含圖片和 CSS 文件。然而,它們必須與 HTML 文件在相同位置。我們可以使用 ConverterProperties 類為引用的 CSS 和圖片設置基徑。 這在 HTML 文件資產位於不同目錄中時非常有用。
考慮一個名為 index.html 的文件,包含以下標記。
<html>
<head>
<title>HTML to PDF</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h1>HTML to PDF</h1>
<p>
<span class="itext">itext</span> 7.1.9
<span class="description"> converting HTML to PDF</span>
</p>
<table>
<tr>
<th class="label">Title</th>
<td>iText - Java HTML to PDF</td>
</tr>
<tr>
<th>URL</th>
<td>http://hmkcode.com/itext-html-to-pdf-using-java</td>
</tr>
</table>
</body>
</html>
下述程式碼將 index.html 文件轉換為 PDF:
package com.hmkcode;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App {
public static void main(String[] args) throws FileNotFoundException, IOException {
// Convert the HTML file to PDF and save it
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println("PDF Created!");
}
}
使用 IronPDF for Java 將 HTML 文件轉換為 PDF
IronPDF 的 PdfDocument.renderHtmlFileAsPdf 方法將位於電腦或網路文件路徑上的 HTML 文件轉換為 PDF。
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
public class IronPdfExample {
public static void main(String[] args) {
// Convert the HTML file to PDF and save it
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
使用 IronPDF Java 向 PDF 文件新增圖片
您可以使用 IronPDF 的 PdfDocument.fromImage 方法,將一組圖片渲染為單個 PDF 文件。接下來的範例使用此方法對位於不同文件系統路徑上的短圖片清單進行操作。
import com.ironsoftware.ironpdf.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class IronPdfExample {
public static void main(String[] args) {
// Create an ArrayList containing the list of images that you want to combine
// into ONE PDF document
Path imageA = Paths.get("directoryA/1.png");
Path imageB = Paths.get("directoryB/2.png");
Path imageC = Paths.get("3.png");
List<Path> imageFiles = new ArrayList<>();
imageFiles.add(imageA);
imageFiles.add(imageB);
imageFiles.add(imageC);
// Convert the three images into a PDF and save them.
PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
}
}
使用 ITextPDF Java 向 PDFs 新增圖片
下面的完整程式碼範例使用 iText 將當前工作目錄中的兩幅圖片轉換為一個 PDF 文件。
import java.io.*;
import com.itextpdf.io.image.*;
import com.itextpdf.kernel.pdf.*;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Image;
public class InsertImagePDF {
public static void main(String[] args) throws IOException {
String currDir = System.getProperty("user.dir");
// Getting path of current working directory to create the pdf file in the same directory
String pdfPath = currDir + "/InsertImage.pdf";
// Creating PdfWriter object to write the PDF file to the path
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfDocument object
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating ImageData from images on disk (from given paths) using ImageDataFactory
ImageData imageDataA = ImageDataFactory.create(currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Adding images to the document
doc.add(imgA);
doc.add(imgB);
// Close the document
doc.close();
System.out.println("Image added successfully and PDF file created!");
}
}
許可
iText 是開源的,並受 AGPL 許可。
這確保了任何使用包含 iText 的應用程式的人,即使在公司網路或互聯網上,也有權獲得應用程式的完整源程式碼。
如果您打算將其用於商務應用,請直接聯繫 iText 以討論許可證的價格。
IronPDF 對開發是免費的,並且始終可以獲得用於商業部署的許可。 IronPDF 許可詳細資訊 適用於單專案使用,個人開發人員,代理機構和全球企業,以及 SaaS 和 OEM 再分發。 所有許可證包括 30 天退款保證,一年的產品支援和更新,對開發/測試/生產的有效性,以及永久許可(一次性購買)。
Lite 套餐的價格從 $999 起。
- 開發人員可以享受無限使用該庫以進行開發。 在一般許可方面,費率非常划算。
- 免費的一年無限制支援。
- 免費試用也可用於許可目的。
- 所有許可證都有 30 天退款保證。
- 許可證對所有環境(開發,測試,生產等)均有效。
- 許可證包括一年的無條件支援。
- IronPDF 許可證需要一次性購買。
IronPDF 與 iText
iText 和 IronPDF 之間有幾個顯著的差異。
iText 的 API 環繞在一個程式化的模型。 在此模型下操作 PDF 屬性和內容更加低級且細化。 雖然這給予了程式員更多的控制和靈活性,也需要寫更多的程式碼來實現使用案例。
IronPDF 的 API 是圍繞優化開發者生產力而結構化的。 IronPDF 簡化了 PDF 編輯,操作,建立和其他複雜任務,允許開發人員僅用幾行程式碼就可以完成。
結論
Iron Software 的所有客戶都可以選擇通過兩次點擊購買整套包。 您目前可以從 Iron Software 套件 購買所有五個程式庫,以及對每個程式庫的持續支援,其成本僅為套件中的兩個程式庫。

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
相關文章









