在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
如今,由於技術的不斷進步,開發人員可以受益於更好的解決方案。
軟體開發流程的未來在於自動化。 長期以來,PDF 文件一直為開發人員帶來困難。 處理 PDF 時(即,製作內容並將其他格式的內容轉換為 PDF),需考慮眾多因素。 隨著眾多庫的開發,這些庫旨在協助讀取、寫入、創建甚至從多種格式轉換 PDF,這些需求現在得到了滿足。
本文將比較兩個最受Java開發人員歡迎的PDF庫,用於編輯、列印和創建PDF檔案:
-IronPDF Java函式庫: 一個 Java PDF 庫,專注於從 HTML 生成 PDF。
ITextPDF 庫:一個以 Java 為核心的開源庫,專注於使用可編程 API 生成 PDF。
我們將在分析轉換和處理PDF的性能成本之前,先檢查這兩個庫的特性,以確定哪個庫最適合您的應用程序。 此外,每個庫的持續時間將被記錄下來以供後續研究。
安裝IronPDF for Java您只需將其宣告為依賴項。 要將 IronPDF 定義為依賴項,請在您的 pom.xml
中添加以下內容:
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.11.4</version>
</dependency>
注意:您可以手動下載 .jar 文件:
前往IronPDF for Java Maven 存儲庫訪問 Maven Repo 頁面。
解壓縮檔案內容。
創建一個資料夾並複製 zip 資料夾的內容。
打開 Eclipse IDE。
建立一個新的 Java 專案。
將 IronPDF 的 .jar 檔案添加到類路徑中。
開發人員可以使用功能強大的IronPDF PDF庫快速創建、讀取和操作PDF。 IronPDF 使用 Chrome 引擎作為核心,提供豐富且強大的功能,包括將 HTML5、JavaScript、CSS 和圖像文件轉換為 PDF 的能力。 IronPDF 也可以添加獨特的頁首和頁尾,並精確地生成與網頁瀏覽器中顯示一致的 PDF 文件。 IronPDF 支援多種網頁格式,包括 HTML、ASPX、Razor View 和 MVC。 IronPDF 的關鍵屬性如下:
ITextPDF 免費提供於iTextPDF 網站. 此函式庫在 AGPL 軟體授權模式下是開源的。
要將iText庫添加到您的應用程式中,請在您的pom.xml
檔案中加入以下Maven倉庫。
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
直接下載 iTextPDF .jar 檔案並直接下載 slf4j.jar 檔案。 要使用這些函式庫,請將 iTextPDF .jar 文件添加到系統的類路徑中。
在 iText for Java 中,HTMLConverter
是用來將 HTML 轉換為 PDF 的主要類別。
HTMLConverter
中有三個主要方法:
convertToDocument
,返回一個 Document
物件convertToElements
,返回 IElement
對象的列表convertToPdf
處理將 HTML 內容轉換為 PDF。 此方法接受 HTML 輸入,格式可以是 String
、File
或 InputStream
,並返回 File
、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
{
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='hmkcode.com'>hmkcode.com</a>";
public static void main( String [] args ) throws FileNotFoundException, IOException
{
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println( "PDF Created!" );
}
}
IronPDF 的 PdfDocument
類別提供了多個靜態方法,讓 Java 開發者可以從各種來源生成 HTML 文本。 其中一種方法是 PdfDocument.renderHtmlAsPdf
方法,用於將一段 HTML 標記轉換成 PDF 文件。
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");
myPdf.saveAs(Paths.get("html_saved.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>
<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
{
HtmlConverter.convertToPdf(new FileInputStream("index.html"),
new FileOutputStream("index-to-pdf.pdf"));
System.out.println( "PDF Created!" );
}
}
IronPDF 的 PdfDocument.renderHtmlFileAsPdf
方法可將位於計算機或網絡文件路徑上的 HTML 文件轉換為 PDF。
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("example.html");
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
您可以使用 IronPDF 的 PdfDocument.fromImage
方法將一組圖像渲染為單個 PDF 文件。下一個示例將此方法應用於位於不同文件系統路徑的短圖像列表。
// 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"));
下面的完整代碼範例使用iText將當前工作目錄中的兩張圖片轉換為一個PDF文件。
import java.io.*;
// Importing iText library packages
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 of
// the running java program
String pdfPath = currDir + "/InsertImage.pdf";
// Creating path for the new pdf file
PdfWriter writer = new PdfWriter(pdfPath);
// Creating PdfWriter object to write the PDF file to
// the path
PdfDocument pdfDoc = new PdfDocument(writer);
// Creating a Document object
Document doc = new Document(pdfDoc);
// Creating imagedata from image on disk(from given
// path) using ImageData object
ImageData imageDataA = ImageDataFactory.create(
currDir + "/imageA.jpg");
Image imgA = new Image(imageDataA);
ImageData imageDataB = ImageDataFactory.create(
currDir + "/imageB.jpg");
Image imgB = new Image(imageDataB);
// Creating Image object from the imagedata
doc.add(imgA);
doc.add(imgB);
// Adding Image to the empty document
doc.close();
// Close the document
System.out.println("Image added successfully and PDF file created!");
}
}
iTextSharp 是開源的,並根據 AGLP 授權。
這可確保任何使用包含iTextSharp的應用程式的人,即使他們透過企業網絡或互聯網使用,也有權獲得應用程式完整的源代碼副本。
如有意將此軟體用於商業應用,請直接聯繫iText洽詢授權的價格。
IronPDF 在開發中免費使用,並且始終可以獲得商業部署的授權。 IronPDF 授權詳細資訊用於單項目使用、個人開發者、代理商和全球企業,以及SaaS和OEM重新分發。 所有授權均包含30天退款保證、一年的產品支援和更新,有效於開發/測試/生產環境,並且還有永久授權。(一次性購買).
Lite 套件的價格從 $749 起。
iText 和 IronPDF 之間有幾個顯著的差異。
iText 的 API 是基於程式化模型結構化的。 在此模型下,PDF屬性和內容的操作更加低層次和細緻。 雖然這讓程式設計師擁有更多的控制權和彈性,但也需要撰寫更多代碼來實現使用案例。
IronPDF 的 API 是圍繞著優化開發者的生產力而構建的。 IronPDF 透過允許開發人員僅用幾行程式碼即可完成,簡化了 PDF 編輯、操作、創建和其他複雜任務。
Iron Software 的所有客戶都可以僅點擊兩次即可購買整個套件。 您目前可以從以下地方購買所有五個函式庫Iron Software 套件以及每個函式庫的持續支援,費用僅為整組中兩個函式庫的價格。