在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
如今,由于技术的不断进步,开发人员可以从更好的解决方案中受益。
软件开发流程的未来在于自动化。长期以来,PDF 文件一直是开发人员面临的难题。在处理 PDF 文件时 (即制作内容和将其他格式的内容转换为 PDF 格式)因此,有许多问题需要考虑。随着众多旨在帮助读取、书写、创建甚至转换多种格式 PDF 的库的开发,这些需求现在都能得到满足。
本文将比较两个最受 Java 开发人员欢迎的用于编辑、打印和创建 PDF 文件的 PDF 库:
我们将研究这两个库的功能,然后再研究转换和处理 PDF 的性能支出,以确定哪个库最适合您的应用程序。此外,我们还将记录每个库的持续时间,以供日后研究之用。
安装 用于 Java 的 IronPDF您只需将其声明为依赖关系即可。要将 IronPDF 定义为依赖项,请在 pom.xml 中添加以下内容
<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>com.ironsoftware</artifactId>
<version>2024.9.1</version>
</dependency>
注意:您可以手动下载 .jar 文件:
1.转到 !!--inline-anchor_ironpdfjava-fatjar。 {Maven Repo} --!!.
2.解压压缩文件的内容。
3.创建一个文件夹并复制压缩文件夹中的内容。
4.打开 Eclipse IDE。
5.创建一个新的 Java 项目。
6.在类路径中添加 IronPDF .jar 文件。
7.完成项目创建向导。就这样!
在强大的 IronPDF PDF 库的帮助下,开发人员可以快速制作、阅读和处理 PDF。IronPDF 以 chrome 引擎为核心,提供了大量实用而强大的功能,包括将 HTML5、JavaScript、CSS 和图像文件转换为 PDF 的能力。IronPDF 还能添加独特的页眉和页脚,并能精确地创建在网络浏览器中显示的 PDF 文件。IronPDF 支持各种网页格式,包括 HTML、ASPX、Razor View 和 MVC。IronPDF 的主要属性如下:
ITextPDF 可在以下网址免费下载 https://itextpdf.com/.该库根据 AGPL 软件许可模式开源。
要在应用程序中添加 iText 库,请在我们的 pom.xml
文件中包含以下 maven 资源库。
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.2</version>
</dependency>
直接下载 iTextPDF .jar 文件,并直接下载 slf4j.jar 文件。要使用这些库,请将 iTextPDF .jar 文件添加到系统的类路径中。
以编程方式编辑 PDF 表单
在 iText for Java 中,"HTMLConverter "是用于将 HTML 转换为 PDF 的主要类。
在 HTMLConverter
中有三个主要方法:
convertToDocument
返回一个 Document
对象convertToElements
返回一个 IElement
对象列表
convertToPdf
处理 HTML 内容到 PDF 的转换。该方法接受 String
、File
或 InputStream
等 HTML 输入,并返回 File
、OutputStream
或 Document
对象。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 可免费用于开发,也可随时授权用于商业部署。 提供许可证 该许可证可用于单个项目、个人开发者、机构和跨国公司,也可用于 SaaS 和 OEM 再分发。所有许可证都包括 30 天退款保证、一年的产品支持和更新、开发/分期/生产的有效性以及永久许可证。 (一次性购买).
精简版软件包的起价为 $749。
许可证包括一年的无条件支持
iText 和 IronPDF 之间有几处明显的不同。
iText 的应用程序接口是围绕编程模型构建的。在这种模式下,对 PDF 属性和内容的操作更加低级和细化。虽然这为程序员提供了更多的控制和灵活性,但也需要编写更多的代码来实现用例。
IronPDF 的应用程序接口(API)是围绕优化开发人员的工作效率而设计的。IronPDF 简化了 PDF 编辑、操作、创建和其他复杂任务,开发人员只需几行代码即可完成这些任务。
Iron Software 的所有客户都可以选择购买整套软件包,只需点击两下即可。目前,您可以从 Iron 软件套件只需从套件中购买两个图书馆的费用,就能获得每个图书馆的支持和持续支持。