2016-09-04 26 views

答えて

4

公式の例を見ることをお勧めします。

PDFに埋め込まれたすべての署名に関する複数の情報項目を出力する "SignatureInfo"の例。したがって、特に、ファイルがまったく署名されているかどうかを判断します。


それあなたがiTextSharpの5.5.xを使用している、あなたの極めて重要なコードは、この

public void InspectSignatures(String path) { 
    Console.WriteLine(path); 
    PdfReader reader = new PdfReader(path); 
    AcroFields fields = reader.AcroFields; 
    List<String> names = fields.GetSignatureNames(); 
    SignaturePermissions perms = null; 
    foreach (String name in names) { 
     Console.WriteLine("===== " + name + " ====="); 
     perms = InspectSignature(fields, name, perms); 
    } 
    Console.WriteLine(); 
} 

です(iTextSharp例C5_02_SignatureInfo.csから)

ご覧のとおり、あなたを取得AcroFields.GetSignatureNames()方法署名されたすべての署名フィールドの名前そのリストが空でない場合、PDFに署名が付けられます。


は、.NET用のiTextの7を使用している場合は、あなたの極めて重要なコードはこれです:

public virtual void InspectSignatures(String path) 
{ 
    // System.out.println(path); 
    PdfDocument pdfDoc = new PdfDocument(new PdfReader(path)); 
    PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, false); 
    SignaturePermissions perms = null; 
    SignatureUtil signUtil = new SignatureUtil(pdfDoc); 
    IList<String> names = signUtil.GetSignatureNames(); 
    foreach (String name in names) 
    { 
     System.Console.Out.WriteLine("===== " + name + " ====="); 
     perms = InspectSignature(pdfDoc, signUtil, form, name, perms); 
    } 
    System.Console.Out.WriteLine(); 
} 

ご覧のとおり(iTextの7から.NETの例C5_02_SignatureInfo.cs用)メソッドSignatureUtil.GetSignatureNames()は署名されたすべての署名フィールドの名前を取得します。そのリストが空でない場合、PDFに署名が付けられます。ところで


あなたはさらに、任意に指定していないとして、私はあなたが分離署名もXFA署名でもない、特に、通常の統合されたPDFの署名を意味すると仮定します。

+0

これは解決策としてマークする必要があります!これは私にとって素晴らしい作品です。 –

+0

あなたは(尋ねた人として)それを行うことができる人です:答えの左上にあるチェックマークをクリックしてください。 – mkl

関連する問題