产品比较

IronPDF For Java 与 jPDFPrint 比较

发布 2023年五月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 库

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文档。

Java版IronPDF与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 和 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 Java 打印文件

IronPDF 是一个强大的 Java 库,用于 Java应用程序 用于PDF操作,包括PDF生成、转换和文档操作。 以下是IronPDF的使用概述:

  1. 导入所需类:首先将IronPDF库中的必要类导入到您的Java应用程序中。
    import com.ironsoftware.ironpdf.*;
JAVA
  1. PDF生成:生成PDF文档时,使用IronPDF有多种选择。 例如,您可以使用IronPDF for Java将Java输入、HTML内容转换为PDF。 HtmlToPdfRenderer 表示PDF文档的打印命令类,如示例代码所示,用于无声打印或将文档发送到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

鉴于这些优势,寻求具有HTML到PDF转换功能、广泛的文档操作功能和优秀支持的强大且灵活的PDF操作解决方案的开发人员应优先选择IronPDF,而不是jPDFPrint。

然而,至关重要的是评估您的项目的具体需求,并评估每个库所提供的功能、文档和支持,以便做出符合您的应用需求的明智决定。

比较 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操作可能性。

HTML到PDF转换

IronPDF在HTML到PDF转换方面表现出色,允许开发人员直接从HTML内容生成PDF文档,包括CSS样式和JavaScript互动功能。

jPDFPrint 不提供原生的 HTML 到 PDF 转换功能。 其主要关注点是打印现有的PDF文件,而不是从HTML生成PDF。

IronPDF for Java 和 jPDFPrint 之间的比较:图 5

打印功能

jPDFPrint 提供了高级打印功能,例如双面打印、小册子打印、水印等。 它提供对打印过程的精细控制,并允许定制打印机命令。

另一方面,IronPDF 不专注于打印功能。 其主要优势在于PDF生成、操作和提取。

Java IronPDF 与 jPDFPrint 的比较:图 6

社区与支持

IronPDF和jPDFPrint都有活跃的社区,并为开发人员提供支持。 Qoppa专有的PDF技术,jPDFPrint的创建者,提供全面的文档、教程和快速响应的客户支持。 IronPDF还提供广泛的文档和资源,包括教程和专门的支持团队。

许可和定价

IronPDF和jPDFPrint之间的许可和定价模式不同。 开发人员在选择这两个库时,应考虑项目要求、预算和许可限制。

IronPDF 提供简明且透明的价格结构,基于使用该产品的开发人员数量。 许可证可以为单个开发人员、一组开发人员或拥有无限开发人员的组织购买。 费用如下:

  1. 个人开发者:$749 每年

  2. 团队版:每年 $1,499

  3. 商务: 每年 $2,999

    购买许可后,您可以在任意数量的项目中使用IronPDF,并且您将获得一年的免费升级和技术支持。 在第一年之后,您可以选择以较低的费用续订您的许可证。

    Java版本的IronPDF与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,付2” 优惠来实现。该优惠为购买多个 Iron Software 产品(包括 IronPDF、IronOCR 和 IronBarcode 等)的开发人员提供了相当大的折扣。

< 前一页
最佳Java PDF库(优缺点比较)
下一步 >
IronPDF for Java 与 Qoppa Software – Java PDF Library 的比较

准备开始了吗? 版本: 2024.9 刚刚发布

免费 Maven 下载 查看许可证 >