在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
發現為您的 Java 應用程式提供的最佳 PDF 庫。 在本文中,我們將探討 Java PDF 庫如何增強您的項目,並根據其功能、許可成本及其教程比較兩個頂尖的庫。 過去,在Java中處理PDF文件是一項挑戰,但隨著技術的進步,現在有許多Java API可用於管理它們。
我們將要檢視的兩個程式庫是:
這兩個庫都提供在 Java 中創建、編輯和列印 PDF 文件的功能。 在此比較中,我們將簡要評估它們的綜合功能、代碼庫和安裝的便利性。
首先,讓我們來看看 IronPDF。
IronPDF for Java 創建和管理 PDF 文件。 它允許開發人員在不需要 Adobe 軟體的情況下讀取、建立和編輯 PDF 檔案。 開發人員可以新增自訂的頁首和頁尾、新增簽名及其他安全限制。 完整的多執行緒和非同步支持有助於 IronPDF 在開發人員需要時實現高效能。
IronPDF for Java 提供多種 PDF 生成和操作工具,使開發人員能夠快速提升其 Java 應用程式的性能。
HTML-to-PDF 轉換: 此功能允許從 HTML 檔案、MVC 視圖、Web 表單和 URL 產生 PDF 文件。
PDF 影像處理:此功能允許開發人員從影像生成 PDF 並從 PDF 中提取影像。
PDF 編輯: IronPDF 可以添加浮水印、標頭、頁尾、背景和前景,添加和刪除頁面,等等。
PDF 內容提取: IronPDF 可以從 PDF 中提取文字和圖像(從嵌入式PDF圖像中提取文本可能需要使用IronOCR 腳本庫).
兼容性: IronPDF for Java 與 Java 8+ 及所有現代操作系統和 IDE 兼容。
OpenPDF 是一個開源的免費 Java 函式庫,具有 LGPL 和 MPL 雙重許可證,專為處理 PDF 文件而設計。 它允許生成和操作 PDF 文件,還可以編輯現有文件並提取內容。 OpenPDF 是一個方便的工具,無論是在創建新的 PDF 文件還是編輯現有的 PDF 文件時都非常實用。
建立 PDF 和列印: OpenPDF 允許您從頭開始創建新的 PDF 文件,並使用 Java 列印 API 列印 PDF 文件。
分割與合併: OpenPDF 能夠將單一 PDF 分割成多個檔案,或將多個 PDF 檔案合併成一個 PDF 檔案。
提取文本: OpenPDF 允許您從 PDF 文件和 PDF 表單中提取文本。
簽署: OpenPDF 也允許其開發人員對 PDF 進行數位簽署。
另存為圖像: OpenPDF 可以將 PDF 儲存為圖像文件,例如 JPEG 或 PNG。
Office to PDF:OpenPDF 可以將 MS Word、MS PowerPoint 和 MS Excel 轉換為 PDF 文件。
解析 HTML: 它還提供將 HTML 檔案解析成 PDF 檔案的功能。
安裝 IronPDF for Java 是一個簡單的過程,即使對於新的 Java 開發人員也是如此。
要使用 IronPDF for Java,您將需要一個 IDE。在本文中,我們將使用 JetBrains IntelliJ IDE 進行安裝和示例。
首先,打開 JetBrains IntelliJ IDE 並創建一個新的 Maven 項目。
將會出現一個新視窗。 輸入專案名稱,然後點擊「完成」按鈕。
在點擊「完成」後,將開啟一個新專案,並打開預設的 pom.xml 檔案。 這很棒,因為我們需要將IronPDF for Java的Maven依賴項添加到此文件中。
將以下依賴項添加到 pom.xml 文件中。
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.11.4</version>
</dependency>
一旦將依賴項添加到POM.xml文件,POM.xml文件的右上角會出現一個小圖標。
點擊此圖標以安裝 IronPDF for Java 的 Maven 依賴項。 此過程可能需要幾分鐘,具體時間取決於您的網路連接。
安裝 OpenPDF 與安裝 IronPDF for Java 類似。
首先,打開 JetBrains IntelliJ IDE 並創建一個新的 Maven 專案。
將會出現一個新視窗。 輸入專案名稱,然後點擊「完成」按鈕。
點擊「完成」後,將開啟一個新專案,並顯示預設的 pom.xml 檔案。 這是好的,因為我們需要添加 OpenPDF 的 Maven 依賴項。
將 OpenPDF 依賴項添加到 pom.xml 文件的 dependencies 部分。
<dependencies>
<dependency>
<groupId>com.github.librepdf</groupId>
<artifactId>openpdf</artifactId>
<version>1.3.30</version>
</dependency>
</dependencies>
當您添加倉庫和依賴代碼時,小圖標會出現在pom.xml文件的右上角。
點擊圖標以安裝 OpenPDF for Java 的依賴項。 幾分鐘後,安裝將完成並可供使用。
除了吸引用戶外,PDF還提供多項技術優勢。 PDF 文件是跨平台的,可以在任何作業系統或設備上閱讀。它們還保留格式和佈局,確保檔案無論由誰開啟都顯示相同。 PDF 檔案也具有緊湊性,易於分享和儲存。 通過在您的 Java 應用程式中使用 PDF,您可以為用戶提供一種功能齊全並高度相容的文件格式,具有廣泛的功能和支援。
在這裡,我們將討論如何使用IronPDF和OpenPDF庫創建新的PDF文件。
使用 IronPDF for Java 建立和編輯 PDF 檔案很簡單,只需要幾行代碼。 以下是一個例子:
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) throws IOException {
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"));
}
}
可以使用 OpenPDF 創建一個新的 PDF 文件,以下是用於實現此操作的程式碼:
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfWriter;
public class main {
/**
* Generates a PDF file with the text 'Hello World'
*/
public static void main(String [] args) {
System.out.println("Hello World");
Document document = new Document();
try {
PdfWriter.getInstance(document,
new FileOutputStream("HelloWorld.pdf"));
document.open();
document.add(new Paragraph("Hello World"));
} catch (DocumentException de) {
System.err.println(de.getMessage());
} catch (IOException ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
}
人們經常訪問網頁。 有幾個網站您可能會想定期檢查。 每次造訪網站可能並不可行。 如果您需要經常訪問這些資訊,將其存儲為文件,可以隨時從手機或筆記型電腦訪問會更方便。PDF格式是一個更好的選擇,因為它提供密碼保護的好處,使文件更安全。
將 HTML 轉換為 PDF 是 PDF 庫中最常用的功能之一,由於其優勢,幾乎每個開發人員都會使用。 在本節中,我們將討論IronPDF for Java和OpenPDF的編碼範例。
IronPDF 的先進渲染器提供三種不同的方法將 HTML 無縫轉換為 PDF。
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) throws IOException {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlFileAsPdf("index.html");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("html_file_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) throws IOException {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> Example of HTML to PDF using IronPDF for Java </h1> IronPDF for java is robust Java API for creating, converting and manipulating PDF files");
myPdf.saveAs(Paths.get("html_saved.pdf"));
}
}
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.Paths;
public class main {
public static void main(String [] args) {
License.setLicenseKey("YOUR-LICENSE-KEY");
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("https://www.amazon.com/?tag=hp2-brobookmark-us-20");
try {
myPdf.saveAs(Paths.get("url.pdf"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
IronPDF 函式庫提供了先進的渲染功能,用三種不同方式將 HTML 轉換為 PDF,以提供流暢的轉換體驗。
另一方面,OpenPDF 僅提供將 HTML 文件解析為 PDF 文件的選項,缺乏將 URL 轉換為 PDF 的重要功能,這可能使其在與其他庫比較時處於劣勢。
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.html.HtmlParser;
import com.lowagie.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.io.IOException;
public class main {
/**
* Generates an HTML page with the text 'Hello World'
*
* @param args no arguments needed here
*/
public static void main(String [] args) {
System.out.println("Parse Hello World");
try (Document document = new Document()) {
PdfWriter.getInstance(document, new FileOutputStream("contact.pdf"));
document.open();
HtmlParser.parse(document, main.class.getClassLoader().getResourceAsStream("contact.html"));
} catch (DocumentException
IOException de) {
System.err.println(de.getMessage());
}
}
}
將圖片轉換為 PDF 有其優勢。 其中一個好處是您可以將照片轉換成更易讀和可傳輸的格式。 另一個好處是,它在保持圖像質量的同時大幅減少了檔案大小。
使用 IronPDF,您可以輕鬆地將任何圖像格式轉換為 PDF 文件。
import com.ironsoftware.ironpdf.*;
import java.io.IOException;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
public class main {
public static void main(String [] args) {
Path imageDirectory = Paths.get("assets/images");
List<Path> imageFiles = new ArrayList<>();
try (DirectoryStream<Path> stream = Files.newDirectoryStream(imageDirectory, "*.{png,jpg}")) {
for (Path entry : stream) {
imageFiles.add(entry);
} PdfDocument.fromImage(imageFiles).saveAs(Paths.get("assets/composite.pdf"));
} catch (IOException exception) {
throw new RuntimeException(String.format("Error converting images to PDF from directory: %s: %s",
imageDirectory,
exception.getMessage()),
exception);
}
}
}
OpenPDF 也提供圖像轉換為 PDF 的功能,但僅限於有限的格式。 這些格式是 PNG、JPG 和 TIFF。
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
import com.lowagie.text.pdf.PdfWriter;
public class main {
public static void main(String [] args) {
System.out.println("Images");
// step 1: creation of a document-object
Document document = new Document();
try {
// step 2:
// we create a writer that listens to the document
// and directs a PDF-stream to a file
PdfWriter.getInstance(document, new FileOutputStream("Images.pdf"));
// step 3: we open the document
document.open();
// step 4:
document.add(new Image("11.png") {
});
Image jpg = Image.getInstance("11.png");
}
catch(DocumentException
IOException de) {
System.err.println(de.getMessage());
}
// step 5: we close the document
document.close();
}
}
IronPDF for Java 是一個強大的 PDF 庫,可以用於個人和商業用途。 它為開發人員提供多種授權選項,包括單一項目授權、SaaS 和 OEM 重新分發,以及跨國企業的授權。 Lite 套餐的費用從 $749 美元起,包括永久授權、30天退款保證以及一年的軟體支援和升級。 IronPDF 的其中一個優勢是它沒有經常性成本,這意味著一旦購買,許可證可以終身使用。
在開發人員的專案中,授權選項扮演著關鍵角色。 OpenPDF 是一款開源軟體,根據 LGPL 和 MPL 開源許可證的條款授權。 這意味著任何使用應用程序的用戶,如果該應用程序使用了OpenPDF(即使透過商業網路或互聯網)如果程式受 LGPL 和 MPL 授權,您可能有權獲得完整的程式原始碼副本,這使其成為學術用途的理想選擇。 不過,對於商業項目,始終建議聯絡OpenPDF以評估任何相關成本。
Java 開發人員和 IT 專業人員可以輕鬆地使用 IronPDF 庫將 PDF 集成到他們的 Java 應用程式中。 它提供了廣泛的功能,包括格式化 PDF 文件、生成圖表和圖形、將 HTML 和圖像轉換為 PDF、拆分和合併 PDF 文件,以及修改 PDF 文檔。 IronPDF 支援所有從 Java 8 開始的 Java 版本以及 JVM 語言,例如 Java、Kotlin 和 Scala。 該庫還配備了增強的安全功能,用於 PDF 文件。
OpenPDF 是一個開源、免費的 Java 庫,具有 LGPL 和 MPL 授權。 它允許創建和修改 PDF 文件並從中提取內容。 儘管OpenPDF在生成新的PDF文件或編輯現有文件方面很有用,但在操作PDF文件的功能上不如IronPDF多。
僅僅根據許可證來比較 IronPDF 和 OpenPDF 是不可能的,因為一個是商業庫,另一個是開源的。 然而,就功能而言,OpenPDF 在操作 PDF 文件方面的選項有限。 另一方面,IronPDF for Java 提供一個免費試用授權供開發人員測試該庫及其高級功能。
IronPDF 提供的功能比 OpenPDF 更多。 此外,IronPDF 提供了大量的文檔,使得使用該庫編寫程式碼變得非常簡單。 OpenPDF往往生成冗長且複雜的代碼,而且可用的文檔非常少。
OpenPDF 的 HTML 轉 PDF 轉換不適合大型 HTML 文件,且不支援 URL 轉 PDF 轉換。