跳過到頁腳內容
產品比較

IronPDF For Java 和 iTextPDF itext7 for Java 的比較

今天,開發者能夠受益於因不斷改進的技術而提供的更好解決方案。

軟體開發過程的未來在於自動化。 長期以來,PDF文件為開發者帶來困難。 在使用PDF時(即生成內容並將其他格式的內容轉換為PDF),有許多考慮事項。 隨著為了幫助閱讀、寫入、創建、甚至從多種格式轉換PDF而設計的許多程式庫的發展,這些需求現在可以滿足。

本文將比較兩個在Java開發者中備受好評的用於編輯、列印和創建PDF文件的PDF程式庫:

  • IronPDF Java Library:專注於從HTML生成PDF的Java PDF程式庫。
  • ITextPDF程式庫:專注於使用可編程API生成PDF的Java-first開源程式庫。

我們將檢查這兩個程式庫的功能,然後再探討轉換和處理PDF的性能費用,以確定哪個程式庫最適合您的應用程式。 此外,還將記錄每個程式庫的使用時間以供日後研究。

安裝IronPDF Java

要安裝IronPDF for Java,您只需將其聲明為依賴項。 要將IronPDF定義為依賴項,請將以下內容添加到您的pom.xml中:

<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>YOUR_VERSION_HERE</version>
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>YOUR_VERSION_HERE</version>
</dependency>
XML

注意:您可以手動下載.jar文件:

  1. 前往IronPDF for Java Maven Repository訪問Maven Repo頁面。
  2. 提取zip文件的內容。
  3. 創建一個資料夾並將zip資料夾的內容複製到其中。
  4. 打開Eclipse IDE。
  5. 創建一個新的Java專案。
  6. 將IronPDF .jar文件添加到類路徑中。
  7. 完成專案創建向導。 就這樣吧!

IronPDF功能

開發者可以快速生成、讀取和操作PDF,這要歸功於強大的IronPDF PDF程式庫。 IronPDF在其核心使用Chrome引擎,提供了豐富的實用而強大的功能,包括將HTML5、JavaScript、CSS和圖像文件轉換為PDF的能力。 IronPDF還可以添加獨特的頁眉和頁腳,並精確地創建出在網頁瀏覽器中顯示的PDF文件。 IronPDF支援各種網頁格式,包括HTML、ASPX、Razor View和MVC。 IronPDF的主要屬性如下:

  • 使用Java程式輕鬆創建、讀取和編輯PDF。
  • 從任何網站URL鏈接創建PDF,這些鏈接具有用於使用HTML登錄表單支持登錄的用戶代理、代理、Cookie、HTTP標頭和表單變量設置。
  • 從現有的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>
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.2</version>
</dependency>
XML

直接下載iTextPDF .jar文件並下載slf4j.jar文件。 要使用這些程式庫,將iTextPDF .jar文件添加到系統的類路徑中。

IText程式庫功能

  • 從HTML、XML和圖像(png、jpg等)創建PDF。
  • 向PDF文檔添加書籤、頁碼和標記。
  • 將PDF文件拆分為多個PDF或將多個PDF合併為一個PDF。
  • 程式化編輯PDF表單。
  • 向PDF添加文本、圖像和幾何圖形。

使用iTextPDF Java將HTML字串轉換為PDF

在iText for Java中,HTMLConverter是主要用於將HTML轉換為PDF的類。

HTMLConverter中有三個主要方法:

  • Document對象。
  • IElement對象的列表。
  • convertToPdf處理將HTML內容轉換為PDF。 此方法接受HTML輸入作為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!");
    }
}
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!");
    }
}
JAVA
IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖1

使用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"));
    }
}
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"));
    }
}
JAVA

使用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>
<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

下面的源代碼將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!");
    }
}
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!");
    }
}
JAVA
IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖2

使用IronPDF for Java將HTML文件轉換為PDF

IronPDF的PdfDocument.renderHtmlFileAsPdf方法轉換位於計算機或網絡文件路徑上的HTML文件。

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"));
    }
}
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"));
    }
}
JAVA

使用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"));
    }
}
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"));
    }
}
JAVA

使用ITextPDF Java將圖像添加到PDF

下面的完整示例使用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!");
    }
}
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!");
    }
}
JAVA
IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖3

授權

iTextSharp是開源的,並根據AGLP許可。

IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖4

這確保任何使用包含iTextSharp的應用程式的人都有權獲得應用程式的完整源代碼副本,即使他們是在公司網絡或互聯網上這樣做。

IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖5

如果您打算將其用於商業應用程式,請直接聯繫iText以討論許可的定價。

IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖6

IronPDF是免費開發的,並且可以隨時授權用於商業部署。 IronPDF許可詳情,適用於單專案使用、個人開發者、代理商和全球公司以及SaaS和OEM再分發。 所有許可均包含30天退款保證、一年產品支援和更新,開發/棧口/生產的有效性,以及永久許可(一經購買)。

Lite 套餐的定價從$799開始。

  • 開發者可以無限制地使用程式庫進行開發。 在一般授權方面,費率非常合理。
  • 免費提供一年不限次數的支援。
  • 亦可提供免費試用以作授權用途。
  • 所有許可均包含30天退款保證。
  • 許可在所有環境(開發、測試、棧口等)中均有效。
  • 許可包含一年的無條件支援。
  • IronPDF許可要求一次性購買。
IronPDF For Java與iTextPDF itext7 for Java之間的比較 - 圖7

IronPDF與iText

iText和IronPDF之間存在幾個重要的區別。

iText的API是圍繞程式模型結構化的。 在此模型下的PDF屬性和內容操作更加低層次和細粒度。 雖然這為編程人員提供了更多的控制和靈活性,但也需要編寫更多的代碼來實現用例。

IronPDF的API是圍繞優化開發者的生產力結構化的。 IronPDF簡化了PDF編輯、操作、創建和其他複雜任務,允許開發者只需幾行代碼即可完成。

結論

Iron Software的所有客戶都可以選擇只需兩次點擊即可購買整套程式包。 您目前可以從<Iron Software Suite中購買所有五個程式庫,以及每個程式庫的持續支援,其價格僅相當於該套裝中的兩個程式庫。

[{i:(iTextPDF是其各自所有者的註冊商標。 該站點與iTextPDF無關、未獲其認可或贊助。 所有產品名稱、標誌和品牌均屬於各自的所有者。 比較僅供參考,反映撰寫時公開的資訊。)}]

常見問題解答

如何使用Java庫將HTML轉換為PDF?

您可以使用 IronPDF 的renderHtmlAsPdf方法將 HTML 字串轉換為 PDF 文件。您也可以使用renderHtmlFileAsPdf方法將 HTML 檔案轉換為 PDF。

Java PDF 函式庫的安裝步驟是什麼?

要安裝IronPDF for Java,您需要在pom.xml檔案中將其宣告為依賴項,或從IronPDF Maven 儲存庫手動下載 .jar 檔案並將其包含在專案的類別路徑中。

IronPDF for Java 與 iTextPDF 相比如何?

IronPDF專注於以更少的程式碼簡化任務,並使用 Chrome 引擎進行 HTML 到 PDF 的轉換。 iTextPDF 透過程式設計 API 提供更精細的控制,但需要編寫更多程式碼才能進行操作。

我可以使用Java PDF庫為PDF中新增圖片嗎?

是的,使用IronPDF,您可以透過提供影像檔案路徑列表,使用PdfDocument.fromImage方法將影像渲染到單一 PDF 檔案中。

Java PDF 函式庫提供哪些授權選項?

IronPDF提供靈活的許可選項,包括單一項目許可、個人開發者許可、代理商許可和企業許可,以及 SaaS 和 OEM 分發選項。所有許可證均提供 30 天退款保證和一年技術支援。

是否可以使用IronPDF for Java 編輯 PDF 檔案?

是的, IronPDF可讓您編輯、合併和操作 PDF 文件。它提供了新增頁首、頁尾以及處理多種 Web 格式(例如 HTML、ASPX 和 MVC)的工具。

有沒有免費的Java PDF庫可供選擇?

iTextPDF 採用 AGPL 授權開源,允許免費使用,但要求共享使用該軟體的應用程式的原始程式碼。 IronPDF可免費用於開發,但商業部署需要許可證。

在Java中,將HTML檔案轉換為PDF的最佳方法是什麼?

IronPDF 的renderHtmlFileAsPdf方法可讓您將本機或網頁文件路徑中的 HTML 文件轉換為 PDF 文檔,為開發人員提供了一個簡化的流程。

IronPDF提供哪些 PDF 生成功能?

IronPDF支援建立、讀取和編輯 PDF 文件,並提供 HTML5、 JavaScript、CSS 等功能,支援影像轉 PDF、新增頁首/頁尾等。它專注於提升開發者的工作效率和易用性。

將 iTextPDF 整合到 Java 專案中需要哪些條件?

要將 iTextPDF 新增到您的 Java 專案中,您需要在pom.xml檔案中新增其 Maven 儲存庫詳細信息,並下載必要的 .jar 檔案進行整合。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。

iText Logo

厭倦了昂貴的續費和過時的產品更新嗎?

iText 輕鬆轉換為我們的工程遷移支援和更優惠的價格。

IronPDF Logo

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me