学习GroupDocs.Signature的简单实践

GroupDocs
placeholder image
admin 发布于:2025-03-21 14:51:59
阅读:loading

前面在摸索了Aspose For Java的全量产品组件共计23款,闲来无事偶然又发现了在GroupDocs方向又存在一些产品,这些产品基本都是取自于一个又一个的组件,取自所有组件中的一个方向进行汇总,组成一个统一的产品包。本次摸索学习GroupDocs.Redaction产品,经过一些持续的分析和摸索,结合使用反射的形式来调用,也就是说在API的使用前进行一次特殊的代码注册,即可实现授权,全程不需要License之类的xml,或是文档无水印、或是文档页数限制、或是获取内容无限制,等等。

特别说明:只为单纯的学习摸索与自我突破,商业软件请勿直接使用于生产环境(购买商业授权)

1.基本介绍

本次实践的是GroupDocs.Signature for Java的24.7版本(当前最新版本),用于在 Java 应用程序中执行文档签名和相关操作的 API,使用数字签名签署 PDF、Office 文档和图像。

支持的文档格式:

微软Office格式

    Word: DOCX, DOC, DOCM, DOT, DOTX, DOTM, RTF

    Excel: XLSX, XLS, XLSM, XLSB, XLTM, XLT, XLTM, XLTX, XLAM, SXC, SpreadsheetML

    PowerPoint: PPT, PPTX, PPS, PPSX, PPSM, POT, POTM, POTX, PPTM

图像和其他格式

    便携的: PDF

    图片: JPG, BMP, PNG, TIFF, GIF, DICOM, WEBP

    其他办公形式: ODT, OTT, OTS, ODS, ODP, OTP, ODG

其他格式

    网络: HTML, MHTML

    档案: ZIP, TAR, 7Z

    证书: PFX

支持的功能如下:

(1)添加签名:通过将数字签名精确地放置在任何页面上的任何位置,使用各种支持的签名类型来签署文档;

(2)定制结果:通过调整颜色、字体、边框、旋转和其他功能来自定义签名外观,以达到所需的结果;

(3)使用密码保护文档:对于许多受支持的文档类型,您可以使用密码保护签名文档;

(4)防止未经授权的更改:保护使用数字证书签名的重要业务文档免遭未经授权的修改;

(5)获得所需格式的结果:轻松获取任何受支持格式的签名结果文件。您还可以轻松地将 MS Word 文档转换为 PDF;

(6)文档预览:将文档的任何页面保存为图像以供将来处理;

(7)寻找签名:可以获得有关特定文档中先前添加的签名的信息;

(8)验证文件:验证任何已签名文档上签名的正确性;

(9)管理签名:将签名放置在文档页面上后,可以根据需要将其删除、移动或更新;

上面这一段摘自官网的介绍,整体上觉得很抽象,运行示例项目中相关的例子后我理解的意思:GroupDocs.Signature 是一个用于电子签名的开发工具包,旨在帮助开发人员在其应用程序中实现对文档签名和验证功能,允许用户在文件内容中进行签名,是一个强大的文档注释解决方案

文件签名的存在可以有效的保障文档的安全,防篡改,比如我们编辑PDF文档时就会提示文件存在签名,无法在原文档上编辑,需要在一个新的副本文件上编辑更改,参考如下图所示:

image.png

2.示例实践

以官网提供的Github示例`https://github.com/groupdocs-signature/GroupDocs.Signature-for-Java`为准,上面介绍说GroupDocs.Signature for Java 是一种数字签名 API,它能够向35 多种格式的文档添加印章、条形码和二维码、文本、图像、元数据、表单字段和数字签名。支持的文档格式包括 PDF、Microsoft Word 文档、Microsoft Excel 电子表格、Microsoft PowerPoint 演示文稿、开放文档格式、图像、Corel 和 Photoshop 文件等。本次摸索只是简单的示例实践,分别从其中挑出几个简单的示例来演示,本次运行了较多的示例代码,详细参考如下:

image.png

(Form表单签名)

image.png

(Form表单签名)

image.png

(查看签名)

image.png

(Xlsx签名)

image.png

(图片与水印签名)

水印批注的代码参考如下:

public class VerifyTextAdvanced {

    public static void run() {
        System.out.print("[Example Advanced Usage] # VerifyTextAdvanced : " +
                "Verify document with Text signature with applying specific options.");
        // The path to the documents directory.
        String filePath = Constants.SAMPLE_SIGNED_MULTI;
        try {
            Signature signature = new Signature(filePath);
            // create QRCode option with predefined QRCode text
            TextVerifyOptions options = new TextVerifyOptions();
            // specify if all pages shoudl be verified
            options.setAllPages(false);
            PagesSetup pagesSetup = new PagesSetup();
            pagesSetup.setFirstPage(true);
            // specify text pattern
            options.setText("Text signature");
            // specify verification text pattern
            options.setMatchType(TextMatchType.Exact);
            // sign document to file
            VerificationResult result = signature.verify(options);
            if (result.isValid()) {
                System.out.print("\nDocument was verified successfully!");
            } else {
                System.out.print("\nDocument failed verification process.");
            }
        } catch (Exception ex) {
            System.out.print("System Exception: " + ex.getMessage());
        }
    }

}

3.其它说明

(1)`GroupDocx.xxx`不是开源免费的使用,Github上有示例项目,包含了大量的示例,示例的结果就是生成了一些《Evaluation Warning》警告、水印、内容页数限制、内容文本限制等;

(2)aspose旗下有许多的产品,都是商业付费版本,常见于各种文档格式文件的操作,都需要商业授权使用,也基本都是支持多种编程语言的,如有Java、C++、.NET等等,官网也有多种在线示例;

(3)示例与相关文件下载:《GroupDocs.Signatures示例实践.zip》,注:下载并不包含具体的科学实现部分,只是源文件与示例输出文件;

(4)科学实现分为两种情况,一种是使用反射,另一种是使用License.xml文件;

(5)aspose相关的各个产品组件为独立存在的各个产品,GroupDocs是提取全集产品中的某个功能的集合,提供了一个大类的功能操作,并且统一对外提供API;

(6)本次使用的GroupDocs.Signature授权方案在以下文件类型中进行了验证:pdf、docx、xlsx、pptx、jpg等等;


 点赞


 发表评论

当前回复:作者

 评论列表


留言区