在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
如今,由于技术的不断进步,开发人员可以从更好的解决方案中获益。
软件开发流程的未来在于自动化。 长期以来,PDF 文件一直是开发人员的难题。 处理 PDF 文件时(即制作内容和将其他格式的内容转换为 PDF 格式)因此,需要考虑很多因素。 随着大量旨在帮助读取、编写、创建甚至转换多种格式 PDF 的库的开发,这些需求现已得到满足。
本文将比较两个最受 Java 开发人员欢迎的用于编辑、打印和创建 PDF 文件的 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 库添加到您的应用程序中,请将以下 Maven 资源库包含到您的 pom.xml
文件中。
<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
中有三种主要方法:
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 文件。
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 软件套件只需从套件中购买两个图书馆的费用,就能获得每个图书馆的支持和持续支持。