Java 读取 PDF 信息文本,获取电子签章信息

Java 读取 PDF 信息文本,获取电子签章信息

使用 Spire 组件,参考如下中文官网,分为免费版和付费版,根据自己需求而定。

依赖配置

收费版

Java 读取 PDF 信息文本,获取电子签章信息

在 pom.xml 文件中配置 Maven 仓库路径。

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
</repositories>

然后,在 pom.xml 文件中指定 Spire 产品的 Maven 依赖。如下列举了几种产品的配置方式,可参考使用。

配置 Spire.PDF for Java

<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.pdf</artifactId>
        <version>5.4.0</version>
    </dependency>
</dependencies>

免费版

如需配置 Spire 产品的 免费版本 jar 包,只需更改 artifactIdversion 信息即可,如下配置方法:

配置 Free Spire.PDF for Java

<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

完整配置参考:通过 Maven 仓库安装 Spire 系列 Java 产品 (e-iceblue.cn)

Jar 包导入

当然你也可以直接导入 jar 包使用,仓库:Search - Nexus Repository Manager (e-iceblue.cn)

读取电子签名信息示例

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import com.spire.pdf.security.PdfCertificate;
import com.spire.pdf.security.PdfSignature;
import com.spire.pdf.security.X509NameType;
import com.spire.pdf.widget.PdfFieldWidget;
import com.spire.pdf.widget.PdfFormFieldWidgetCollection;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfSignatureFieldWidget;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;

public class pdfTest {public static void main(String[] args) {PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile(" 示例.pdf");// 路径加载 PDF 文件
        // 获取域集合
        PdfFormWidget widgets = (PdfFormWidget) pdf.getForm();
        PdfFormFieldWidgetCollection fieldWidgetCollection = widgets.getFieldsWidget();
        for (int i = 0; i < fieldWidgetCollection.getCount(); i++) {PdfFieldWidget widget = (PdfFieldWidget) fieldWidgetCollection.get(i);
            if (widget instanceof PdfSignatureFieldWidget) {PdfSignatureFieldWidget signatureFieldWidget = (PdfSignatureFieldWidget) widget;
                // 获取签名信息
                PdfSignature signature = signatureFieldWidget.getSignature();
                PdfCertificate certificate = signatureFieldWidget.getSignature().getCertificate();
                String certificateInfo = certificate.toString();
//                System.out.println(certificateInfo);
//                获取证书颁发者字段(subject)
//                System.out.println("subject:" + certificate.getSubject());
//              第二个参数为 true 颁发者 false 为颁发给的单位
//                System.out.println(certificate.getNameInfo(X509NameType.SimpleName, true));
//                System.out.println(certificate.getNameInfo(X509NameType.SimpleName, false));
                String location = signature.getLocationInfo();
                String reason = signature.getReason();
                String data = signature.getDate().toString();
                String name = signature.getSignatureName();
                PdfPageBase page = signatureFieldWidget.getPage();
                System.out.println(" 签名位置信息:" + location + "\n" +
                        " 签名原因:" + reason + "\n" +
                        " 签名日期:" + data + "\n" +
                        " 签名人:" + name + "\n" +
                        " 颁发给:" + certificate.getNameInfo(X509NameType.SimpleName, false) + "\n" +
                        " 文档中的签名坐标:X = " + signatureFieldWidget.getLocation().getX() + "  Y = " + signatureFieldWidget.getLocation().getY()
                );
                // 获取页面索引
                int pageIndex = pdf.getPages().indexOf(page) + 1;
                int count = pdf.getPages().getCount();
                System.out.println(" 签名所在页:" + pageIndex + "/" + count);
            }
        }

    }
}

详细文档:Spire.PDF for Java 中文教程 (e-iceblue.cn)

其它参考:

X509NameType 枚举 (System.Security.Cryptography.X509Certificates) | Microsoft Docs

目录
  • Java 读取 PDF 信息文本,获取电子签章信息
    • 依赖配置
      • 收费版
      • 免费版
      • Jar 包导入
    • 读取电子签名信息示例
  • 目录
  • Java 读取 PDF 信息文本,获取电子签章信息
    • 依赖配置
      • 收费版
      • 免费版
      • Jar 包导入
    • 读取电子签名信息示例
  • 手机扫描二维码访问

    本文标题:《Java 读取 PDF 信息文本,获取电子签章信息》作者:极四维博客
    原文链接:https://cway.top/post/1003.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年10月    »
    123456
    78910111213
    14151617181920
    21222324252627
    28293031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合