RemoveSignatures.vb
''
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Pdf.AcroForms
'' このサンプルは、デジタル署名された PDF から既存の署名を見つけて
'' 削除する方法を示します。代わりに署名フィールドを削除するコードに
'' ついては、RemoveSignatureFieldsを参照してください。
'' このサンプルで使用されている PD Fは、TimeSheetによって作成されました。
Public Class RemoveSignatures
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)
'' フィールドは他のフィールドの子になる可能性があるため、
'' 再帰メソッドを使用してツリー全体を反復処理します。
RemoveSignatures(doc.AcroForm.Fields)
'' PDF ドキュメントを保存します。
doc.Save(stream)
Return doc.Pages.Count
End Using
End Function
Sub RemoveSignatures(ByVal fields As FieldCollection)
For i = fields.Count - 1 To 0 Step -1
If TypeOf fields(i) Is SignatureField Then
DirectCast(fields(i), SignatureField).Value = Nothing
End If
RemoveSignatures(fields(i).Children)
Next
End Sub
End Class