'' 完毕:
Imports System.IO
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Pdf.AcroForms
'' 此示例演示如何从 PDF 中查找和删除签名字段。
'' 此示例中的代码与RemoveSignatures中的代码几乎相同,
'' 它还会找到所有签名字段,但仅删除签名,留下字段。
'' 本示例中使用的 PDF 是由 TimeSheet 创建的。
Public Class RemoveSignatureFields
Public Function CreatePDF(ByVal stream As Stream) As Integer
Dim doc = New GcPdfDocument()
Using fs As New FileStream(Path.Combine("Resources", "PDFs", "TimeSheet.pdf"), FileMode.Open, FileAccess.Read)
doc.Load(fs)
'' 字段可以是其他字段的子字段,因此我们使用
'' 迭代整个树的递归方法:
RemoveSignatureFields(doc.AcroForm.Fields)
'' 完毕:
doc.Save(stream)
Return doc.Pages.Count
End Using
End Function
Sub RemoveSignatureFields(ByVal fields As FieldCollection)
For i = fields.Count - 1 To 0 Step -1
RemoveSignatureFields(fields(i).Children)
If TypeOf fields(i) Is SignatureField Then
fields.RemoveAt(i)
End If
Next
End Sub
End Class