Skip to content
Guides

数字签名

ComPDFKit_Tools 提供完整的数字签名工作流,包括签名域创建、数字证书管理、签名应用和签名验证。

签名工具栏

签名模式下的工具栏可通过 ToolbarConfig 控制显隐:

json
{
  "toolbarConfig": {
    "signatureToolbarVisible": true
  }
}

CSignatureToolBar 位于 com.compdfkit.tools.signature 包中,是签名模式的核心工具栏组件。

签名流程

1. 创建签名域

可通过表单模式创建签名域(signaturesFields),或直接使用已有 PDF 中的签名域。

2. 点击签名域

点击签名域后弹出签名类型选择:

  • 电子签名:手写签名或图片签名
  • 数字签名:使用数字证书签名

3. 数字证书签名

使用数字证书签名需要:

  1. 导入或创建证书
  2. 输入证书密码
  3. 应用签名

数字证书管理

创建证书

CertDigitalDatas 提供创建 PKCS12 (.p12/.pfx) 格式证书的功能:

java
// 证书保存路径
String certFilePath = context.getFilesDir() + "/certificates/my_cert.pfx";
// 证书信息
CertDigitalDatas certData = new CertDigitalDatas();
certData.setGrantor("Zhang San");
certData.setOrganization("My Company");
certData.setOrganizationUnit("Dev");
certData.setCountry("CN");
certData.setEmail("[email protected]");
certData.setPassword("123456");
certData.setCertUsage(CertUsage.CERT_USAGE_ALL);

// 创建证书
boolean success = certData.createCert(certFilePath);
kotlin
val certFilePath = "${context.filesDir}/certificates/my_cert.pfx"
val certData = CertDigitalDatas().apply {
    grantor = "Zhang San"
    organization = "My Company"
    organizationUnit = "Dev"
    country = "CN"
    email = "[email protected]"
    password = "123456"
    certUsage = CertUsage.CERT_USAGE_ALL
}
val success = certData.createCert(certFilePath)

导入证书

支持导入 .p12.pfx 格式的数字证书文件。

签名验证

签名后可验证文档中的数字签名是否有效:

组件说明
CSignatureToolBar签名模式工具栏
CPDFDigitalSignatureEditFragment数字签名编辑 Fragment
CPDFDigitalSignatureVerifyFragment数字签名验证 Fragment
CertDigitalDatas证书数据模型和创建工具
CertificateDigitalDatasDialog证书信息查看对话框