PDF 生成模板编辑器
开源可视化 PDF 生成引擎,支持自定义模板,并提供面向开发者的 API,灵活构建文档生成流程。
使用 CPDFDocument 列出签名并验证其状态。以下示例中的 document 为已打开的签名 PDF。
import 'package:compdfkit_flutter/compdfkit.dart';final signatures = await document.getDigitalSignatures();
for (final signature in signatures) {
print(signature.fieldName);
print(signature.pageIndex);
print(signature.permissions);
for (final signer in signature.signers) {
for (final certificate in signer.certificates) {
print(certificate.subject);
print(certificate.issuer);
}
}
}结果包含签名索引、签名域名称、页码、位置、签署者、签署日期、原因、地点和权限等信息。文档没有数字签名时返回空列表。
if (signatures.isNotEmpty) {
final signature = signatures.first;
final result = await document.verifyDigitalSignature(
signature.signatureIndex,
);
print('Signature valid: ${result.signatureValid}');
print('Document unmodified: ${result.documentUnmodified}');
print('Certificate trusted: ${result.certificateTrusted}');
print('Certificate expired: ${result.certificateExpired}');
}必须传入 signature.signatureIndex,不要使用签名在返回列表中的位置代替。验证针对已保存的签名文件;有待保存的内容时,先明确保存或放弃修改,再检查目标文件。
| 结果 | 含义 |
|---|---|
signatureValid | 签名验证结果 |
documentUnmodified | 文档是否保持签署后的完整性 |
certificateTrusted | 签署证书是否被信任 |
certificateExpired | 签署证书是否过期 |
timestampSource | 时间信息的来源 |
embeddedTimestampValid | 内嵌时间戳验证结果,可能为 null |
timestampTrusted | 时间戳机构信任结果,可能为 null |
ltvEnabled | 文档级长期验证材料状态 |
签名有效性、证书信任和文档修改状态应分别展示,不要仅根据其中一个字段判断全部验证通过。时间戳和长期验证的说明见时间戳与长期验证。
Android 当前未提供公开的签后修改明细,不能依赖 modifications 枚举全部修改;文档完整性应检查验证结果。