删除 PDF 中的数字签名字段
Spire.PDF for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。致力于在于帮助开发人员轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档,而无需安装 Microsoft Word。
行号用于在每行文本旁边显示 Word 自动计算的行数。当我们需要参考合同或法律文件等文档中的特定行时,它非常有用。word中的行号功能允许我们设置起始值、编号间隔、与文本的距离以及行号的编号方式。使用 Spire.Doc,我们可以实现上述所有功能。本文将介绍如何将 HTML 转换为 PDF。
欢迎加入spire技术交流群:767755948
作为一个全面的 PDF 组件,Spire.PDF 支持对 PDF 进行数字签名、在 PDF 中嵌入证书以及删除现有 PDF 文档中的签名。在本文中,您将学习如何使用 C#、VB.NET 删除 PDF 中的所有数字签名。
测试文件:
代码片段
第1步:创建一个新的 PdfDocument 对象并加载测试文件。
1 PdfDocument pdf = new PdfDocument("test.pdf");
第2步:从 PDF 获取已加载的表单。
1 PdfFormWidget widgets = pdf.Form as PdfFormWidget;
第3步:获取归档集合列表,判断每个归档是否为签名归档。如果是,则使用 PdfFieldCollection.RemoveAt(int index) 方法移除签名字段。
1 for (int i = 0; i < widgets.FieldsWidget.List.Count; i++) 2 { 3 PdfFieldWidget widget = widgets.FieldsWidget.List[i] as PdfFieldWidget; 4 if (widget is PdfSignatureFieldWidget) 5 { 6 widgets.FieldsWidget.RemoveAt(i); 7 } 8 }
第4步:保存并启动结果文件。
1 pdf.SaveToFile("result.pdf"); 2 System.Diagnostics.Process.Start("result.pdf");
结果:
完整代码:
[C#]
01 using Spire.Pdf; 02 using Spire.Pdf.Widget; 03 04 namespace RemoveDigitalSignature 05 { 06 class Program 07 { 08 static void Main(string[] args) 09 { 10 PdfDocument pdf = new PdfDocument("test.pdf"); 11 12 PdfFormWidget widgets = pdf.Form as PdfFormWidget; 13 for (int i = 0; i < widgets.FieldsWidget.List.Count; i++) 14 { 15 PdfFieldWidget widget = widgets.FieldsWidget.List[i] as PdfFieldWidget; 16 if (widget is PdfSignatureFieldWidget) 17 { 18 widgets.FieldsWidget.RemoveAt(i); 19 } 20 } 21 22 pdf.SaveToFile("result.pdf"); 23 System.Diagnostics.Process.Start("result.pdf"); 24 } 25 } 26 }
[VB.NET]
01 Imports Spire.Pdf 02 Imports Spire.Pdf.Widget 03 04 Namespace RemoveDigitalSignature 05 Class Program 06 Private Shared Sub Main(args As String()) 07 Dim pdf As New PdfDocument("test.pdf") 08 Dim widgets As PdfFormWidget = TryCast(pdf.Form, PdfFormWidget) 09 For i As Integer = 0 To widgets.FieldsWidget.List.Count - 1 10 Dim widget As PdfFieldWidget = TryCast(widgets.FieldsWidget.List(i), PdfFieldWidget) 11 If TypeOf widget Is PdfSignatureFieldWidget Then 12 13 widgets.FieldsWidget.RemoveAt(i) 14 End If 15 Next 16 17 pdf.SaveToFile("result.pdf") 18 System.Diagnostics.Process.Start("result.pdf") 19 End Sub 20 End Class 21 End Namespace