没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|行业资讯|编辑:胡涛|2024-01-29 13:20:45.930|阅读 55 次
概述:在本文中,我们将介绍如何使用 Spire.PDF 检测签名的 PDF 是否被修改,欢迎查阅~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
对 PDF 文档进行数字签名后,PDF 将被锁定以防止更改或允许检测更改。在本文中,我们将介绍如何使用 Spire.PDF 检测签名的 PDF 是否被修改。
Spire.PDF for .NET 是一款独立 PDF 控件,用于 .NET 程序中创建、编辑和操作 PDF 文档。使用 Spire.PDF 类库,开发人员可以新建一个 PDF 文档或者对现有的 PDF 文档进行处理,且无需安装 Adobe Acrobat。
E-iceblue 功能类库Spire 系列文档处理组件均由中国本土团队研发,不依赖第三方软件,不受其他国家的技术或法律法规限制,同时适配国产操作系统如中科方德、中标麒麟等,兼容国产文档处理软件 WPS(如 .wps/.et/.dps 等格式
Spire.PDF for.net下载 Spire.PDF for java下载
为了测试该功能,我们创建了一个PDF文档并使用数字签名对PDF进行了签名,然后将示例文档中的“ PDF ”一词更改为“ Pdf ”并将其另存为另一个文件。修改后的 PDF 文档如下所示:
代码片段:
步骤 1:创建一个 Window Forms 应用程序并设计 form1,如下所示。
步骤2:双击“ Load ”按钮编写以下代码,这将使我们能够从文件夹中查找PDF文件并返回textBox1.Text中的文件路径。
private void btnLoad_Click(object sender, EventArgs e) { OpenFileDialog fileName = new OpenFileDialog(); fileName.InitialDirectory = Application.StartupPath; fileName.Filter = "All files|*.pdf"; if (fileName.ShowDialog() == DialogResult.OK) { string Path = fileName.FileName.ToString(); textBox1.Text = Path; } }
步骤3 :在“检查”按钮中输入以下代码。在这一部分中,我们获取PDF文档中的所有签名,然后调用PdfSignature.VerifyDocModified()方法来检测文档在签名后是否被更改。如果被修改则返回 true,否则返回 false。
private void btnCheck_Click(object sender, EventArgs e) { //get signatures from PDF List signatures = new List(); using (PdfDocument pdf = new PdfDocument(textBox1.Text)) { PdfFormWidget form = pdf.Form as PdfFormWidget; for (int i = 0; i < form.FieldsWidget.Count; i++) { PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget; if (field != null && field.Signature != null) { PdfSignature signature = field.Signature; signatures.Add(signature); } } PdfSignature signatureOne = signatures[0]; //detect if the PDF was modified bool modified = signatureOne.VerifyDocModified(); if (modified == true) { MessageBox.Show("The document was modified"); } } }
运行程序并加载修改后的文档,单击“检查”按钮后您将得到以下输出。
完整代码:
private void btnLoad_Click(object sender, EventArgs e) { OpenFileDialog fileName = new OpenFileDialog(); fileName.InitialDirectory = Application.StartupPath; fileName.Filter = "All files|*.pdf"; if (fileName.ShowDialog() == DialogResult.OK) { string Path = fileName.FileName.ToString(); textBox1.Text = Path; } } private void btnCheck_Click(object sender, EventArgs e) { //get signatures from PDF List signatures = new List(); using (PdfDocument pdf = new PdfDocument(textBox1.Text)) { PdfFormWidget form = pdf.Form as PdfFormWidget; for (int i = 0; i < form.FieldsWidget.Count; i++) { PdfSignatureFieldWidget field = form.FieldsWidget[i] as PdfSignatureFieldWidget; if (field != null && field.Signature != null) { PdfSignature signature = field.Signature; signatures.Add(signature); } } PdfSignature signatureOne = signatures[0]; //detect if the PDF was modified bool modified = signatureOne.VerifyDocModified(); if (modified == true) { MessageBox.Show("The document was modified"); } } }
以上便是如使用 C# 检测签名的 PDF 是否被修改,如果您有其他问题也可以继续浏览本系列文章,获取相关教程,你还可以给我留言或者加入我们的官方技术交流群。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询 ;技术交流Q群(767755948)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@obta.cn
在当前追求敏捷交付与安全合规的双重挑战下,技术团队常面临困境:代码质量分析报告繁杂,难以定位关键风险;工具链数据分散,追溯合规证据费时费力。开发测试平台Parasoft DTP作为智能质量中枢,凭借三大核心技术优势,为工程团队提供精准、可操作、端到端的质量洞察。以下是其解决质量管控难题的关键能力:
TestComplete是一款优秀的UI测试解决方案,支持跨平台自动化测试,通过模块化脚本设计和低代码可视化工具提升测试效率与覆盖率。其优势包括减少重复劳动、支持非技术人员参与测试,适用于医疗、金融、保险等行业,帮助团队克服资源限制,确保软件兼容性与稳定性。
活字格作为一款AI智驱型低代码开发平台,能够为企业带来全新的应用开发体验,欢迎下载产品体验!
CodeRush 25.1 新推 AI 双引擎 AiGen(语音/文字生成与修改代码)和 AiFind(智能代码搜索),直接在 Visual Studio 环境中响应,免除窗口切换与手动操作,让开发者更专注核心问题。
Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
Spire.PDF for Java独立专业的Java PDF组件,覆盖PDF文档生成、处理、转换等功能。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@obta.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢