在折腾电子合同或正式报告时,给 Word 文档加上数字签名几乎是刚需——既能证明文档没被篡改,又能确认是谁签的。今天分享一个用C#快速搞定这件事的小办法,主角是 Free Spire.Doc for .NET 这个免费库,代码量很少,几分钟就能跑起来。
通过 NuGet 包管理器搜索 FreeSpire.Doc 并安装,或直接下载 DLL 引用。
你需要一个有效的 .pfx 格式数字证书文件及对应的密码。certificate.pfx 是什么东西呢?简单说,它就是你的“数字身份证”。里面包含了你的公钥、私钥以及身份信息。.pfx 格式通常带有密码保护,你用这个文件给 Word 文档盖章,别人打开文档就能看到是谁签的,同时还能检验文档是否被改过。
你可以从 CA 机构(比如沃通、DigiCert 等)申请一个真正的商用证书,也可以本地自己生成一个测试用的——开发阶段用 makecert 或 OpenSSL 随便搞一个就行,只不过正式给别人看的时候 Word 会提示“签名无效”。
下面是一个完整的控制台程序示例,演示加载 Word 文档、加载证书并签名保存。
using Spire.Doc;
namespace DigitallySignWord
{
class Program
{
static void Main(string[] args)
{
// 创建 Document 对象
Document doc = new Document();
// 加载需要签名的 Word 文件
doc.LoadFromFile("Input.docx");
// 指定证书路径和密码
string certificatePath = "certificate.pfx";
string password = "password";
// 数字签名并保存为 Docx2013 格式
doc.SaveToFile("DigitallySigned.docx", FileFormat.Docx2013, certificatePath, password);
}
}
}Document.LoadFromFile 载入待签名的 .docx 文件。certificatePath 和 password 分别指向证书文件路径和密码。SaveToFile 方法重载中指定输出格式(如 Docx2013)、证书路径和密码,即可在保存时完成签名。签名完成后,用 Word 打开 DigitallySigned.docx,文档顶部会显示“签名行”,状态栏提示“已签名的文档”,签名详细信息可查阅“文件”->“信息”->“查看签名”。
SaveToFile 的 FileFormat 参数可选 Docx2010、Docx2013、Docx2016 等,请根据实际需要选择。借助 Free Spire.Doc for .NET,只需几行代码即可在 C# 中为 Word 文档添加数字签名,非常适合批量处理合同、报告等文件的自动化场景。但务必关注免费版的段落/表格数量限制,避免运行时异常。如果需求超出限制,可评估商业许可或采用分治法。希望本文能帮助你快速上手文档签名功能!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。