
【免费下载链接】coreA modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API.项目地址https://gitcode.com/gh_mirrors/core587/core点击查看免费下载LibPDF是一款面向 TypeScript 的现代 PDF 库只需几行代码加一个PKCS#12.p12/.pfx证书文件即可完成符合 PAdES 国际标准的PDF 电子签名——具备身份认证、完整性保护与不可抵赖三大法律效力。本教程带你从零走完完整流程安装库、加载证书、签名文档、附加时间戳10 分钟内上手。为什么用 LibPDF 做 PDF 电子签名 ️LibPDF 的数字签名模块遵循PAdESPDF 高级电子签名标准通过pdf.sign()一个方法即可产出可在 Adobe Reader 等主流阅读器中验证的签名文档。签名强度由 PAdES 等级决定PAdES 等级签名内容适用场景B-B基本电子签名简单签署、内部流程B-T签名 RFC 3161 时间戳需要证明何时签署B-LT签名 长期验证数据证书过期后仍需可验证B-LTA签名 归档文档时间戳长期归档、最强耐久性第一步安装 LibPDF 并准备 P12 证书使用任意包管理器安装要求 Node.js 18仅支持 ESMnpm install libpdf/coreP12 文件是什么它把三样东西打包在一起你的签名证书签名所用的私钥受密码保护可选的中间证书大多数 CA证书颁发机构都会提供 .p12 或 .pfx 格式的证书文件向 CA 购买数字证书时即可获得。第二步用 PKCS#12 证书 3 步签署 PDF核心代码只有 3 步加载文档 → 创建签名器 → 调用sign()import { PDF, P12Signer } from libpdf/core; import { readFile, writeFile } from fs/promises; // 1. 加载要签署的文档 const pdf await PDF.load(await readFile(document.pdf)); // 2. 用 .p12 文件 证书密码创建签名器 const signer await P12Signer.create(await readFile(certificate.p12), 证书密码); // 3. 签署文档可附签署原因、地点等元信息 const signed await pdf.sign({ signer, reason: I approve this document, location: New York, NY, contactInfo: signerexample.com, }); await writeFile(signed.pdf, signed.bytes);P12Signer的完整实现位于 p12.ts支持 RSA 与 EC椭圆曲线密钥可选buildChain: true自动通过 AIA 扩展补齐证书链。第三步添加时间戳让签名具备时间证明 基本签名B-B中的时间只是签名者本机时钟的声明。要让时间具备密码学证明接入一个时间戳权威机构TSA即可升级到 B-T 等级import { HttpTimestampAuthority } from libpdf/core; const tsa new HttpTimestampAuthority(http://timestamp.digicert.com); const signed await pdf.sign({ signer, level: B-T, timestampAuthority: tsa, });常用免费时间戳服务器服务商地址DigiCerthttp://timestamp.digicert.comSectigohttp://timestamp.sectigo.comFreeTSAhttps://freetsa.org/tsr生产环境建议使用与你证书同一家 CA 提供的时间戳服务。若需证书过期后仍可验证把level改为B-LTLibPDF 会自动嵌入证书链、CRL 与 OCSP 响应等全部验证数据。签名字段复用已有字段或自动创建 文档里已有空白签名字段时用fieldName指定即可填入指定的字段不存在时LibPDF 会自动创建不指定fieldName时自动寻找第一个空字段否则创建Signature_N。await pdf.sign({ signer, fieldName: ApprovalSignature, // 存在则复用不存在则创建 });多人签署的工作流也很简单每次签署都用增量保存后一个签名不会破坏前一个const firstSigned await pdf.sign({ signer: signer1 }); const pdf2 await PDF.load(firstSigned.bytes); const fullySigned await pdf2.sign({ signer: signer2 });可直接运行的示例与源码路径想跑起来看效果仓库examples/07-signatures/目录提供了全套官方示例用npx tsx直接运行P12 基础签名sign-with-p12.ts带时间戳签名B-Tsign-with-timestamp.ts仅创建空白签名字段add-signature-field.ts多人连续签署multiple-signatures.tsB-LTA 归档级签名sign-archival.ts更多源码与资料测试用证书文件密码test123test-signer-aes256.p12官方签名完整指南含 KMS、排错表signatures/index.mdx签名器类型定义SignOptions 全参数signatures/types.ts项目特性总览README.md常见问题与排错速查表 ⚠️遇到的问题原因解决办法Adobe 提示未知签名证书不受信任改用 CA 签发的证书编辑后签名失效文档被非增量重写使用增量保存incremental save时间戳获取失败TSA 服务器不可达检查网络与防火墙提示证书过期证书已过有效期向 CA 续期证书安全最佳实践清单 ✅守护私钥绝不外传 .p12 文件或暴露密码使用受信证书自签名证书会在阅读器中产生信任警告包含时间戳B-T 及以上等级对法律效力更友好坚持增量保存多签名场景下保护所有历史签名签后必验证用 Adobe Reader 打开确认签名面板与证书详情无误。 小提示LibPDF 专注于签名能力签名验证由 PDF 阅读器完成B-LT/B-LTA 等级需要网络访问 OCSP/CRL 服务器离线环境请提前规划。掌握以上步骤你就已经可以安全地为合同、发票等关键文档签署具有法律效力的 PDF 电子签名了。赞分享【免费下载链接】coreA modern PDF library for TypeScript. Parse, modify, and generate PDFs with a clean, intuitive API.项目地址https://gitcode.com/gh_mirrors/core587/core点击查看免费下载相关推荐CANN/Ascend C L0C指针APIMakeL0CmemPtr 产品支持情况 | 产品 | 是否支持 | | |: :| |Ascend 950PR/Ascend 950DT|√| 功能说明 创建人工智能深度学习算子库CANNAscend终极指南如何使用pypdf实现PDF数字签名与PKCS12证书安全方案终极指南如何使用pypdf实现PDF数字签名与PKCS12证书安全方案 pypdf是一个功能强大的Python PDF处理库专门用于PDF文档的创建、编辑和后端终极指南快速上手vue电子签名组件canvas手写签名如此简单终极指南快速上手vue电子签名组件canvas手写签名如此简单 想要为你的Vue项目添加专业的电子签名功能吗vue esign组件让你在几分钟内就能实现c前端UI组件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考