產品比較

IronPDF For Java與jPDFPrint的比較

發佈 2023年5月16日
分享:

介紹

PDF (可攜式文件格式) 是一種廣泛使用的檔案格式,可以獨立於應用軟體、第三方軟體、驅動程式、硬體和作業系統(如 macOS)來表示文件。 在各種應用程式中,無需使用者干預即可以程式化方式操作 PDF 檔案是一個常見需求。 本文探討了兩個Java庫,IronPDF和jPDFPrint,它們提供了在Java運行環境中以不同方式操作PDF文件的能力。 我們將深入探討它們的特點、功能,並比較它們的產品,以了解它們的優勢和劣勢,以及與直接使用Acrobat PDF文件的不同之處。

Java 版本 IronPDF 與 jPDFPrint 比較:圖 1 - 如何在 Java 中將 HTML 轉換為 PDF

IronPDF概述

IronPDF 是一個強大的 Java 函式庫,使開發人員能夠以程式方式創建、操作和轉換 PDF。 它提供了廣泛的功能,如從 HTML、圖像或現有文檔生成 PDF、合併多個 PDF、從 PDF 提取文本和圖像以及執行各種文檔操作任務。

IronPDF For Java 與 jPDFPrint 的比較:圖 2 - IronPDF For Java 與 jPDFPrint 的比較 - Java PDF Library

IronPDF 提供了一個用戶友好的 API,具有一套全面的方法和屬性,使開發人員能夠直接處理 Acrobat PDF 文件。 它還提供了詳細的文檔和教程,指導開發人員將 IronPDF 整合到他們的 Java 應用程序中。

值得注意的功能之一 IronPDF 其將HTML轉換為PDF的能力。 使用此功能,開發人員可以輕鬆地從HTML內容生成PDF文檔,包括CSS樣式、JavaScript互動性,甚至是動態數據。

範例代碼:使用 IronPDF 從 HTML 生成 PDF

import com.ironpdf.*;
 public class HtmlToPdfExample {
  public static void main(String [] args) {
   HtmlToPdfRenderer renderer = new HtmlToPdfRenderer();
   HtmlToPdfOutput output = renderer.RenderHtmlFileAsPdf("input.html");
   output.saveAs("output.pdf");
   }
}
JAVA

jPDFPrint概述

jPDFPrint 是由 Qoppa 第三方軟體開發的 Java 庫,專門用於在 Java 執行環境中以程式化方式列印 PDF 文檔。 它提供了一個簡單明了的 API,用於使用 Java 打印文件服務打印 PDF 文件。

IronPDF For Java 與 jPDFPrint 比較:圖 3 - jPDFPrint

jPDFPrint允許開發人員將PDF文件打印到系統上安裝的任何打印機,控制加載和打印文件設置,如頁面範圍、方向和縮放,甚至在需要時指定自定義的打印機命令。 它還支持雙面列印、小冊子列印、無需用戶干預的靜默列印和水印功能。

該庫能無縫整合到 Java 應用程式中,使開發人員能輕鬆將 PDF 列印功能整合到他們的 Java 應用程式軟體解決方案中。

範例程式碼:使用 jPDFPrint 打印 PDF 文件

//import Qoppa third party software to simply call the library
import com.qoppa.pdfPrinter.PDFPrinterJob;
import java.io.File;
import java.io.IOException;
import java.net.URL;

public class HtmlToPdfExample {
    public static void main(String [] args) throws IOException {
        // Load the HTML page
        URL url = new URL("http://www.example.com");
        String html = org.apache.commons.io.IOUtils.toString(url);

        // Create a PDFPrinterJob object
        PDFPrinterJob printerJob = new PDFPrinterJob();

        // Set the output file
        File outputFile = new File("output.pdf");
        printerJob.setOutputFile(outputFile);

        // Print the HTML page to the output file
        printerJob.printHTML(html);
    }
}
JAVA

比較 jPDFPrint Java PDF Print API vs. IronPDF

這兩個程式庫都非常複雜且實用,可以用來處理 PDF 文件,例如打印 PDF 文件,將 Microsoft Word 文件轉換為 PDF 文件。

使用 jPDFPrint Java PDF 列印 API 列印 Acrobat PDF 文件

jPDFPrint 是由 Qoppa Software 開發的 Java 圖書館,使用 Qoppa 的專有 PDF 技術,專注於程式化載入和列印 PDF 文件。 以下是其使用概述:

  1. 導入所需的類別:首先將所需的類別從 jPDFPrint 庫導入到您的 Java 應用程式中。
    package jPDFPrintSamples;

    import java.io.FileOutputStream;

    import javax.print.DocFlavor;
    import javax.print.DocPrintJob;
    import javax.print.SimpleDoc;
    import javax.print.StreamPrintService;
    import javax.print.StreamPrintServiceFactory;
    import javax.print.attribute.HashPrintRequestAttributeSet;
    import javax.print.attribute.PrintRequestAttributeSet;
    import javax.print.attribute.standard.MediaSizeName;
JAVA
  1. 創建一個 PDFPrint 對象:創建一個 PDFPrint 類的實例,並將您想要列印的 PDF 文件的路徑作為參數傳遞。

  2. 設置列印設置:使用 PDFPrint 類提供的方法自訂列印設置。 您可以設置印表機名稱,指定頁面範圍,選擇紙盤,選擇列印質量,並配置其他列印選項以列印PDF文件。

  3. 打印 PDF:在 PDFPrint 物件上呼叫 print 方法以啟動列印過程。 該庫將使用 Java 的列印服務將 PDF 檔案發送到印表機。
    package jPDFPrintSamples;

    import java.io.FileOutputStream;

    import javax.print.DocFlavor;
    import javax.print.DocPrintJob;
    import javax.print.SimpleDoc;
    import javax.print.StreamPrintService;
    import javax.print.StreamPrintServiceFactory;
    import javax.print.attribute.HashPrintRequestAttributeSet;
    import javax.print.attribute.PrintRequestAttributeSet;
    import javax.print.attribute.standard.MediaSizeName;

    import com.qoppa.pdfPrint.PDFPrint;

    public class PDFToPS
    {

        public static void main (String [] args)
        {
            try
            {
                DocFlavor flavor = DocFlavor.SERVICE_FORMATTED.PRINTABLE;
                String psMimeType = DocFlavor.BYTE_ARRAY.POSTSCRIPT.getMimeType();
                StreamPrintServiceFactory [] factories = StreamPrintServiceFactory.lookupStreamPrintServiceFactories(flavor, psMimeType);

                System.out.println ("Available PS services: " + factories.length);

                if(factories.length == 0)
                {
                    System.err.println ("No PS factories available!");
                    System.exit(0);
                }

                // Open the PDF file
                PDFPrint pdfPrint = new PDFPrint ("test.pdf", null);

                // Open the output file
                FileOutputStream fos = new FileOutputStream("output.ps");

                // Use the first service available
                StreamPrintService sps = factories [0].getPrintService(fos);
                DocPrintJob pj = sps.createPrintJob();

                // Define paper size
                PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet();
                aset.add(MediaSizeName.NA_LETTER);

                // Create simple doc using PDFPrint as Printable and print it
                SimpleDoc doc = new SimpleDoc(pdfPrint, flavor, null);
                pj.print(doc, aset);

                // Close the output PS stream
                fos.close();
            }
            catch (Throwable t)
            {
                t.printStackTrace();
            }
        }
    }
JAVA

IronPDF For Java 與 jPDFPrint 的比較: 圖 4 - 在 Java 中讀取 PDF

使用 IronPDF for Java 列印文件

IronPDF 是一個強大的 Java 庫,用於 Java應用程式 用於 PDF 操作,包括 PDF 生成、轉換和文檔操作。 以下是如何使用 IronPDF 的概述:

  1. 導入所需的類: 首先從IronPDF庫中導入必要的類到您的Java應用程式中。
    import com.ironsoftware.ironpdf.*;
JAVA
  1. PDF 生成:要生成 PDF 文件,您有多種選擇使用 IronPDF。 例如,您可以使用IronPDF將Java輸入和HTML內容轉換為PDF。 HtmlToPdfRenderer 列印命令類別,如範例程式碼所示,用於靜默列印或將文件發送到PDF。 您還可以通過程式化將文本、圖像、表格和註釋等元素添加到 PDF 文件中。
    import com.ironsoftware.ironpdf.*;  
    import java.io.IOException;  
    import java.nio.file.Paths;  

    // Apply your license key
    License.setLicenseKey("YOUR-LICENSE-KEY");

    // Set a log path
    Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));

    // Render the HTML as a PDF. Stored in myPdf as type PdfDocument;
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");

    // Save the PdfDocument to a file
    myPdf.saveAs(Paths.get("html_saved.pdf"));
JAVA
  1. 文件操作: IronPDF 提供一系列方法和屬性來操作現有的 PDF 文件。 您可以將多個PDF合併成一個文檔,將PDF拆分成多個文件,提取文本和圖片,添加水印,加密和解密PDF,還有更多功能。
    import com.ironsoftware.ironpdf.PdfDocument;
    import com.ironsoftware.ironpdf.font.FontTypes;
    import com.ironsoftware.ironpdf.headerfooter.TextHeaderFooter;
    import com.ironsoftware.ironpdf.headerfooter.HeaderFooterOptions;
    import java.io.IOException;

    // Initialize HeaderFooterOptions object.
    HeaderFooterOptions options = new HeaderFooterOptions();
    PdfDocument pdf = PdfDocument.renderUrlAsPdf("http://www.google.com");

    // Add a header to every page easily
    // Mergeable fields are:
    // {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
    options.setFirstPageNumber(1); // use 2 if a cover page  will be appended
    TextHeaderFooter textHeader = new TextHeaderFooter();
    textHeader.setDrawDividerLine(true);
    textHeader.setCenterText("{url}");
    textHeader.setFont(FontTypes.getHelvetica());
    textHeader.setFontSize(12);
    pdf.addTextHeader(textHeader, options);

    // Add a footer too
    TextHeaderFooter textFooter = new TextHeaderFooter();
    textFooter.setDrawDividerLine(true);
    textFooter.setFont(FontTypes.getArial());
    textFooter.setFontSize(10);
    textFooter.setLeftText("{date} {time}");
    textFooter.setRightText("{page} of {total-pages}");
    pdf.addTextFooter(textFooter, options);

    try {
        pdf.saveAs(Paths.get("assets/text_headers_footers.pdf"));
    } catch (IOException e) {
        System.out.println("Failed to save PDF");
        throw new RuntimeException(e);
    }
JAVA
  1. PDF 轉換:除了從 HTML 生成 PDF 外,IronPDF 還允許您將 Acrobat PDF 文件轉換或列印成各種格式,如圖像 (JPEG、PNG、TIFF), HTML,甚至是 Excel 試算表。
    try {
        List<BufferedImage> images = pdf.extractAllImages();
        System.out.println("Number of images extracted from the website: " + images.size());

        int i = 0;
        for (BufferedImage image : images) {
            ImageIO.write(image, "PNG", Files.newOutputStream(Path.of("assets/extracted_" + ++i + ".png")));
        }
    } catch(Exception exception) {
        System.out.println("Failed to extract images from the website");
        exception.printStackTrace();
    }
JAVA
  1. 儲存及輸出: 一旦生成或操作了 PDF 文件,您可以使用 saveAs 方法將其儲存到特定位置,以將文件發送到流或 HTTP 回應。

首選 IronPDF

雖然jPDFPrint和IronPDF都提供PDF操作功能,但IronPDF提供了更全面的功能和靈活性。 IronPDF在許多方面都很突出:

  1. HTML 到 PDF 轉換:IronPDF 擅長將 HTML 内容轉換為 PDF,這使得它成為需要從網頁或 HTML 模板動態生成 PDF 的應用程序的理想選擇。
    import com.ironsoftware.ironpdf.*;  
    import java.io.IOException;  
    import java.nio.file.Paths;  

    // Apply your license key
    License.setLicenseKey("YOUR-LICENSE-KEY");

    // Set a log path
    Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));

    // Render the HTML as a PDF. Stored in myPdf as type PdfDocument;
    PdfDocument myPdf = PdfDocument.renderHtmlAsPdf("<h1> ~Hello World~ </h1> Made with IronPDF!");

    // Save the PdfDocument to a file
    myPdf.saveAs(Paths.get("html_saved.pdf"));
JAVA
  1. 廣泛的文件操作:IronPDF 提供廣泛的文件操作功能,包括合併、拆分、提取文字和圖像、加密等。 這使它成為處理 PDF 檔案的多功能工具。

  2. 更廣的範圍:IronPDF 涵蓋了廣泛的 PDF 相關任務,不僅僅是列印,使其成為需要全面 PDF 操作能力的應用程序更強大的解決方案。

  3. 豐富的文件和支援:IronPDF 提供詳盡的文件、教程以及專門的支援團隊,幫助開發人員整合庫並解決開發過程中可能出現的任何問題。
    import com.ironsoftware.ironpdf.PdfDocument;
    import java.io.IOException;
    import java.nio.file.Paths;

    // Case 1: Generate a PDF from a string of Rich Text Content
    try {
        String content = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\nouicompat\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Calibri;}}\n" +
                "{\\*\\generator Riched20 10.0.22621}\\viewkind4\\uc1 \n" +
                "\\pard\\sa200\\sl276\\slmult1\\b\\f0\\fs160\\lang9 Hello, world!\\par\n" +
                "}\n" +
                " ";
        PdfDocument pdf = PdfDocument.renderRtfAsPdf(content);
        pdf.saveAs(Paths.get("assets/rtf_to_pdf.pdf"));
    } catch(IOException exception) {
        exception.printStackTrace();
    }

    // Case 2: Generate a PDF from a RTF file located on a filesystem path
    try {
        PdfDocument pdf = PdfDocument.renderRtfFileAsPdf(Paths.get("assets/test.rtf"));
        pdf.saveAs(Paths.get("assets/rtf_to_pdf_2.pdf"));
    } catch(IOException exception) {
        exception.printStackTrace();
    }
JAVA

鑒於這些優點,尋求強大且靈活的 PDF 操作解決方案的開發人員應優先選擇 IronPDF,而不是 jPDFPrint。IronPDF 具備 HTML 到 PDF 的轉換能力、廣泛的文件操作功能,以及優秀的支援。

然而,評估您的專案特定需求以及各個程式庫提供的功能、文件與支援,以便做出符合您應用程式需求的明智決策是非常重要的。

比較 jPDFPrint 與 IronPDF 的功能

功能性

jPDFPrint專注於列印PDF文件,並提供對列印過程的廣泛控制。

package jPDFPrintSamples;

import com.qoppa.pdfPrint.PDFPrint;

public class SimplePrint
{
    public static void main (String [] args)
    {
        try
        {
            PDFPrint pdfPrint = new PDFPrint("input.pdf", null);
            pdfPrint.print(null);
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }
    }

}
JAVA

IronPDF 提供更廣泛的功能,包括從 HTML 生成 PDF、文檔操作、提取文本和圖像等。

// Import statement for IronPDF Java
import com.ironsoftware.ironpdf.*;
// Apply your license key
License.setLicenseKey("YOUR-LICENSE-KEY");
// Set a log path
Settings.setLogPath(Paths.get("C:/tmp/IronPdfEngine.log"));
// Render the URL page as a PDF. Stored in myPdf as type PdfDocument
PdfDocument myPdf = PdfDocument.renderUrlAsPdf("/java");
// Save the PdfDocument to a file
myPdf.saveAs(Paths.get("url_saved.pdf"));
PdfDocument pdfDocument = PdfDocument.renderUrlAsPdf("/java");
JAVA

2. API 設計

jPDFPrint擁有專門設計用於PDF列印的簡單API。 它提供了處理打印設置和與打印機互動的方法和屬性。

IronPDF 提供功能範圍更廣的全面 API。 它提供用於創建、操作和轉換 PDF 文件的方法和屬性,並全面支持 HTML 到 PDF 的轉換。

整合與易用性

jPDFPrint 無縫集成到 Java 應用程序中,簡化 PDF 打印任務。 它有完整的文件記錄,並且易於整合到現有的項目中。

IronPDF提供方便使用的API,並附有完整的文件和教程。 它的廣泛功能集可能需要更多的學習和整合努力,但其功能為 PDF 操作提供了更廣泛的可能性。

4. HTML 轉換為 PDF

IronPDF在HTML轉PDF轉換方面表現出色,使開發人員能夠直接從HTML內容生成PDF文件,包括CSS樣式和JavaScript互動。

jPDFPrint 不提供原生的 HTML 到 PDF 轉換功能。 其主要重點是列印現有的 PDF 文件,而不是從 HTML 生成它們。

IronPDF For Java 和 jPDFPrint 的比較:圖5

列印功能

jPDFPrint 提供先進的列印功能,如雙面列印、小冊子列印、浮水印等。 它提供對印刷過程的精細控制,並允許自訂印表機命令。

另一方面,IronPDF 不專注於列印功能。 其主要優勢在於 PDF 生成、操作和提取。

IronPDF For Java 和 jPDFPrint 的比較:圖 6

6. 社群與支援

IronPDF和jPDFPrint都有活躍的社群,並為開發人員提供支援。 Qoppa 的專有 PDF 技術是 jPDFPrint 的創建者,提供全面的文件、教程和響應的客戶支持。 IronPDF 還提供全面的文件和資源,包括教程和專門的支援團隊。

7. 授權及定價

IronPDF 和 jPDFPrint 之間的授權和定價模型不同。 開發人員在選擇這兩個庫時,應該考慮其項目需求、預算和授權限制。

IronPDF 提供一個簡單明瞭且公開的價格結構,根據使用產品的開發者數量定價。 許可證可以為單個開發人員、一組開發人員或擁有無限數量開發人員的組織購買。 費用如下:

  1. 個人開發者:每年 $749

  2. 團隊:每年$1,499

  3. 商務: 每年$2,999

    購買授權後,您可以在任意數量的專案中使用 IronPDF,並在一年內免費獲得升級和技術支援。 在第一年之後,您可以選擇以較低的成本續約您的許可證。

    IronPDF For Java 和 jPDFPrint 的比較:圖 7 - 授權選項

    Qoppa PDF 提供的授權選擇包括永久、年度和訂閱授權。 根據您需要的特定部分和功能,價格會有所不同。 例如,Qoppa PDF Automation Server 的永久授權費用為 $4,000,而年度授權費用為 $1,500。

    Qoppa PDF 也提供基於使用權費的網路服務編排方案。 這意味著您的線上服務將根據處理的 PDF 文件量收費。

    IronPDF For Java 與 jPDFPrint 的比較:圖 8 - jPDFPrint 軟體授權選項

結論

IronPDF for Java 和 jPDFPrint Java 庫提供不同的 PDF 操作功能。 雖然jPDFPrint專注於以程式的方式列印PDF檔案,並提供進階功能和細緻的控制,但IronPDF提供了全面的功能集,包括從HTML生成PDF、文件操作和提取。 IronPDF 是一個多功能的 Java PDF 函式庫,允許開發人員通過程式操控 PDF 檔案。 它提供了豐富的功能,例如 PDF 的創建、編輯、合併、拆分以及從 HTML 轉換。 IronPDF 提供了使用者友善的 API、簡單易用的功能和全面的文件,使 PDF 操作的開發過程更加簡單。

另一方面,jPDFPrint 是一個專為以編程方式列印 PDF 檔設計的 Java 函式庫。 它提供了先進的功能,例如印表機選擇、頁範圍選擇、雙面列印、以及紙張大小和方向設置。 jPDFPrint還提供直觀的API、詳細的文件和出色的客戶支持。

IronPDF 提供比 jPDFPrint 更簡單和公開的價格結構。 IronPDF 的授權模式是基於使用該庫的開發人員數量,有單一開發人員、開發團隊或組織(不限開發人員數量)的選項。 IronPDF 授權比 jPDFPrint 更便宜,價格範圍從每年 $749 到 $2,999 不等,具體取決於授權類型。 IronPDF 也提供第一年的免費升級和技術支援,並可選擇以較低的成本續約。

就技術能力而言,IronPDF 提供比 jPDFPrint 更全面的功能集。 IronPDF允許開發人員以多種方式操作PDF檔案,包括PDF創建、編輯、合併、拆分以及從HTML轉換。 IronPDF 也提供了廣泛的文檔、用戶友好的 API 和易於使用的界面,簡化了 PDF 處理的開發過程。

Iron Software 產品 - 開發人員希望購買 IronPDF 或任何其他 Iron Software 產品,可以在 Iron Software 官網上利用“買5送3”的優惠。此優惠為購買多種 Iron Software 產品(包括 IronPDF、IronOCR 和 IronBarcode 等)的開發人員提供了實際的折扣。

< 上一頁
最佳 Java PDF 圖書館 (優缺點比較)
下一個 >
IronPDF For Java 與 Qoppa Software – Java PDF Library 的比較

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 Maven 下載 查看許可證 >