使用IRONPDF FOR JAVA

Java PDF 钢印工具(初学者教程)

本文将使用IronPDF库在Java中创建一个PDF Stamper。

IronPDF - Java PDF 库

IronPDF 是一个 Java PDF 库 用于生成、读取和编辑 PDF 文档。 它使用户能够轻松准确地处理PDF文档。 IronPDF for Java 基于 IronPDF for .NET 的成功,并在各个平台上提供高效能。 IronPDF for Java 使用IronPdfEngine,它快速且经过性能优化。

IronPDF 帮助从PDF中提取文本和图像以及其他对象。 它有助于从HTML字符串、URL和图像创建PDF。 它还允许在不同文件格式之间进行转换。 您可以轻松添加新内容,并为PDF添加数字签名,以及文档元数据到现有的PDF文档中。 它专为Java 8+、Scala和Kotlin设计,可在任何Windows、Linux和云平台上运行。

在 Java 应用程序中使用 IronPDF 创建 PDF Stamper 的步骤

先决条件

要创建PDF印章器,您需要以下前提条件:

Java 集成开发环境 (IDE)

您可以使用任何Java支持的IDE。有许多可用于Java开发的IDE。 该演示将使用IntelliJ IDE。 您可以使用 NetBeans、Eclipse 等等。

2. Maven 项目

Maven 是一个依赖管理工具,并允许对 Java 项目进行控制。 Java 的 Maven 可以从官方 Maven 网站下载。 IntelliJ IDE for Java 包含 Maven 支持。

3.IronPDF

您可以通过多种方式下载和安装IronPDF for Java。

  • 在 Maven 项目中的pom.xml文件中添加 IronPDF 依赖项。
<!-- Add IronPDF Dependency Here -->
<!-- Add IronPDF Dependency Here -->
XML

4. Slf4j

还需要在现有 PDF 文档的内容上盖上印章。 可以使用 IntelliJ 中的 Maven 依赖管理器添加,或直接从 Maven 网站下载。将以下依赖项添加到 pom.xml 文件中:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.5</version>
</dependency>
XML

添加必要的导入

安装完所有前提条件后,下一步是导入必要的IronPDF包以处理PDF文档。 在 Main.java 文件的顶部添加以下代码:

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
JAVA

许可证密钥

IronPDF中的某些方法需要许可证才能使用。 您可以购买许可证,或通过试用许可证免费尝试IronPDF。 您可以将密钥设置如下:

License.setLicenseKey("YOUR-KEY");
License.setLicenseKey("YOUR-KEY");
JAVA

打开现有的PDF文档

要导入现有文档以加盖新内容,使用PdfDocument类。 它的静态fromFile方法用于从特定路径加载具有实际文件名的文件。 代码如下

PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
JAVA

加载的原始文档:

Java PDF Stamper(初学者教程),图 1:示例文档

示例文档

添加新的HTML内容

IronPDF 提供了一套印章包。 它提供了一系列有用的盖章选项,例如BarcodeStamperHtmlStamperImageStamperTextStamper等,用于内容对齐。 要向此 PDF 文档添加新的 HTML 内容,将使用 HtmlStamper 类。 让我们使用上一节中的文件并添加一些内容。 以下代码有助于完成此任务:

HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
JAVA

创建一个HtmlStamper对象,然后使用其setHtml方法来附加新的HTML代码。 下一步是将其应用到现有的PDF文档中,以创建一个新的PDF版本。

将所有交互元素添加到 PDF 文档中

使用之前创建的PdfDocument对象将HTML代码添加到现有文档。 它提供了applyStamp,具有两个重载,一个仅接受作为Stamper对象的内容,另一个则同时包含页面选择。

pd.applyStamp(htmlStamper);
pd.applyStamp(htmlStamper);
JAVA

这将把字符串描述添加到现有文档中。

将更改保存到PDF

要保存文件,请使用PdfDocument对象的saveAs方法。

pd.saveAs("stamped.pdf");
pd.saveAs("stamped.pdf");
JAVA

Java PDF Stamper(初学者教程),图 2:已加盖的 PDF 文件

已加盖印章的PDF文件

HTML字符串添加到PDF文档的每一页,并在每页的中间显示。

将印章添加到特定页面

您可以使用另一个重载的applyStamp方法将内容添加到特定页面。

pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
JAVA

PageSelection 类提供了不同的方法来控制页码。 firstPagelastPageallPagespageRange是一些可用的方法,用于适当地添加内容。

对齐内容

您可以在每个Stamper类中使用[setVerticalAlignment](/java/object-reference/api/com/ironsoftware/ironpdf/stamp/Stamper.html#setVerticalAlignment(com.ironsoftware.ironpdf.stamp.VerticalAlignment))、[setHorizontalAlignment](/java/object-reference/api/com/ironsoftware/ironpdf/stamp/Stamper.html#setHorizontalAlignment(com.ironsoftware.ironpdf.stamp.HorizontalAlignment))、setWidthsetHeight方法调整添加至现有PDF文档的内容位置。 以下示例代码将帮助将文本放置在页面的左下角:

htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
JAVA

Java PDF Stamper(初学者教程),图 3:带有盖章对齐的输出 PDF 文件

带有印章对齐的输出PDF文件

您可以使用setVerticalOffsetsetHorizontalOffset方法进一步调整内容的位置。

有关使用IronPDF处理PDF文件的更多信息,请访问此Java中HTML转换为PDF的代码示例

向现有文档添加元数据、签名和安全选项

IronPDF for Java 是一个多功能库,提供以下功能:在元数据格式中添加文件描述、用户权限、用户密码、添加数字签名和创建签名文档,以保存 PDF 文档的版本。

元数据

// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
JAVA

安全选项

您还可以控制您的 PDF 文件的安全选项,以防止数据被未经授权的使用。 它提供了选项以设置[setAllowUserPrinting](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserPrinting(com.ironsoftware.ironpdf.security.PdfPrintSecurity))、[setAllowUserEdits](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserEdits(com.ironsoftware.ironpdf.security.PdfEditSecurity))、[setAllowUserCopyPasteContent](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserCopyPasteContent(java.lang.Boolean))、[setAllowUserAnnotations](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserAnnotations(java.lang.Boolean))、[setUserPassword](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setUserPassword(java.lang.String))、[setAllowUserFormData](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserFormData(java.lang.Boolean))参数为true或false。 以下示例代码将帮助设置上述所有对象属性。

// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
JAVA

用户密码

// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
JAVA

有关在实际文件上加盖数字签名的信息,您可以查看这个PDF签名的详细代码示例

摘要

本文讨论了如何用 Java 在现有 PDF 文档上加盖内容戳记。 有一个stamp包,里面包含许多有用的印章类,可以用于在原始文档中的任何所需位置添加多种格式的内容到PDF。

IronPDF 是一个多功能的库,这从上述代码示例中也可以看出。 它是一个非常简单但极其强大的PDF生成和操作工具。 这有助于开发人员在一个Java应用程序中轻松集成所有PDF功能。

IronPDF 对于个人开发是免费的,并提供免费试用许可证,无水印,以测试其完整功能。 然而,商业用途应获得IronPDF的许可

最后,IronPDF 提供了一个特别促销活动,开发者可以用购买两份许可证的价格购买五款 Iron Software 产品。

Darrius Serrant
全栈软件工程师(WebOps)

达瑞乌斯·塞兰特拥有迈阿密大学计算机科学学士学位,目前在Iron Software担任全栈WebOps营销工程师。从小对编码的热爱使他认为计算机既神秘又易接近,成为创意和解决问题的完美媒介。

在Iron Software,达瑞乌斯乐于创造新事物并简化复杂概念,使其更易于理解。作为我们在职开发者之一,他还自愿教授学生,将他的专业知识传授给下一代。

对达瑞乌斯而言,他的工作之所以令人满足,是因为它具有价值并产生了真正的影响。

< 前一页
如何在Java中从模板创建PDF
下一步 >
什么是Java中的Maven(工作原理教程)