使用 GroupDocs.Signature for Java 实现带有事件处理的文本签名

介绍

在当今的数字世界中,高效的文档工作流管理对于业务专业人员和开发人员都至关重要。本教程将指导您使用 GroupDocs.Signature for Java 在 Java 中实现文本签名,重点介绍事件处理,以便有效地监控签名过程。

您将学到什么:

  • 设置并使用 GroupDocs.Signature for Java
  • 在签名过程中实现开始、进度和完成事件
  • 处理文本签名选项并自定义位置

让我们开始设置您的环境!

先决条件

在使用事件处理实现文本签名之前,请确保已满足以下先决条件:

所需的库和依赖项

要使用适用于 Java 的 GroupDocs.Signature,请将其添加到您的项目中。请根据您的构建工具执行以下步骤:

Maven:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Gradle:

implementation 'com.groupdocs:groupdocs-signature:23.12'

或者,从下载最新版本 GroupDocs.Signature Java 版本.

环境设置

确保您的开发环境配置了:

  • JDK 8 或更高版本
  • 兼容的 IDE(例如 IntelliJ IDEA、Eclipse)
  • 如果使用这些工具,请安装 Maven 或 Gradle

知识前提

当我们探索实现细节时,对 Java 编程和事件驱动架构的基本了解将会很有帮助。

为 Java 设置 GroupDocs.Signature

要开始使用 GroupDocs.Signature for Java:

  1. 安装:将依赖项添加到项目的构建文件(Maven 或 Gradle)中,如上所示。
  2. 许可证获取:从获取免费试用许可证 群组文档,购买完整许可证,或申请临时许可证以进行延长测试。

准备好库并设置好环境后,在 Java 应用程序中初始化 GroupDocs.Signature:

import com.groupdocs.signature.Signature;

public class SignatureSetup {
    public static void main(String[] args) {
        String filePath = "path/to/your/document.pdf";
        Signature signature = new Signature(filePath);
        
        // 您的文档现在可以使用 GroupDocs.Signature for Java 进行签名。
    }
}

实施指南

签名流程开始事件

签名过程从开始的那一刻起即可监控。以下是处理开始事件的方法:

概述

此功能允许您的应用程序在签名操作开始时做出响应,从而提供有关启动详细信息的见解。

步骤

3.1 定义事件处理程序 创建一个事件处理程序方法,用于在签名过程开始时发出通知:

import com.groupdocs.signature.handler.events.ProcessStartEventArgs;
import com.groupdocs.signature.handler.events.ProcessStartEventHandler;

public class SignProcessStart {
    public static void onSignStarted(Signature sender, ProcessStartEventArgs args) {
        System.out.println("Signing process started: " + args.getSignatureDefinition().getSignatureType());
    }
}

3.2 订阅事件 订阅 SignStarted 主要签名方法中的事件:

signature.SignStarted.add(new ProcessStartEventHandler() {
    public void invoke(Signature sender, ProcessStartEventArgs args) {
        SignProcessStart.onSignStarted(sender, args);
    }
});

签名进度事件

跟踪进度可以实现实时更新或有效处理长期运行的流程。

概述

此功能跟踪签名操作的进度并提供状态更新。

步骤

3.1 定义进度事件处理程序 设置一种方法来捕获进度详细信息:

import com.groupdocs.signature.handler.events.ProcessProgressEventArgs;
import com.groupdocs.signature.handler.events.ProcessProgressEventHandler;

public class SignProgress {
    public static void onSignProgress(Signature sender, ProcessProgressEventArgs args) {
        System.out.println("Signing progress: " + args.getPercentCompleted() + "% completed");
    }
}

3.2 订阅Progress事件 添加进度更新事件监听器:

signature.SignProgress.add(new ProcessProgressEventHandler() {
    public void invoke(Signature sender, ProcessProgressEventArgs args) {
        SignProgress.onSignProgress(sender, args);
    }
});

签名完成事件

了解签名过程何时完成可以方便后续操作或记录。

概述

此功能会在签名操作完成后通知您的应用程序。

步骤

3.1 定义完成事件处理程序 流程完成后捕获详细信息:

import com.groupdocs.signature.handler.events.ProcessCompleteEventArgs;
import com.groupdocs.signature.handler.events.ProcessCompleteEventHandler;

public class SignCompletion {
    public static void onSignCompleted(Signature sender, ProcessCompleteEventArgs args) {
        System.out.println("Signing completed: " + args.getSignatureDefinition().getSignatureType());
    }
}

3.2 订阅完成事件 监听完成事件:

signature.SignCompleted.add(new ProcessCompleteEventHandler() {
    public void invoke(Signature sender, ProcessCompleteEventArgs args) {
        SignCompletion.onSignCompleted(sender, args);
    }
});

文本签名

现在已经设置了事件处理,请实现文本签名签名。

概述

此功能演示如何使用 GroupDocs.Signature for Java 对文档进行基于文本的签名。

步骤

3.1 签署文件 定义执行实际签名操作的方法:

import com.groupdocs.signature.options.sign.TextSignOptions;
import java.io.File;
import java.nio.file.Paths;

public class SignWithTextSignature {
    public static void signDocument() throws Exception {
        String filePath = "YOUR_DOCUMENT_DIRECTORY";
        String fileName = Paths.get(filePath).getFileName().toString();
        
        String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", "SignWithTextEvents/" + fileName).getPath();
        Signature signature = new Signature(filePath);

        // 订阅签名活动
        signature.SignStarted.add(new ProcessStartEventHandler() {
            public void invoke(Signature sender, ProcessStartEventArgs args) {
                SignProcessStart.onSignStarted(sender, args);
            }
        });

        signature.SignProgress.add(new ProcessProgressEventHandler() {
            public void invoke(Signature sender, ProcessProgressEventArgs args) {
                SignProgress.onSignProgress(sender, args);
            }
        });

        signature.SignCompleted.add(new ProcessCompleteEventHandler() {
            public void invoke(Signature sender, ProcessCompleteEventArgs args) {
                SignCompletion.onSignCompleted(sender, args);
            }
        });

        // 定义文本签名选项
        TextSignOptions options = new TextSignOptions("John Smith");
        options.setLeft(100);  // 设置签名左侧位置
        options.setTop(100);   // 设置签名的顶部位置
        
        // 执行签名操作
        signature.sign(outputFilePath, options);
    }
}

结论

通过本指南,您学习了如何使用 GroupDocs.Signature for Java 和事件处理功能在 Java 中实现文本签名。此方法可以增强应用程序的功能,并实时洞察文档签名过程。

后续步骤:

  • 尝试 GroupDocs.Signature 中提供的不同签名选项。
  • 探索其他功能,例如数字签名或基于图像的签名。
  • 考虑将此解决方案集成到更大的应用程序中以增强工作流程自动化。