2016-09-04 1 views

답변

4

공식적인 예를 살펴 보시기 바랍니다.

PDF에 포함 된 모든 서명에 대해 여러 정보 항목을 출력하는 예제 "SignatureInfo" 따라서 그들은 특히 파일에 서명이되어 있는지 여부를 결정합니다.


그것은 당신이 iTextSharp의 5.5.x를 사용하고, 당신의 중요한 코드는 보시다시피

, 당신을 얻을 수 AcroFields.GetSignatureNames() 방법합니다 (iTextSharp 예 C5_02_SignatureInfo.cs에서)이

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(); 
} 

서명 첨부 모든 서명 필드의 이름 해당 목록이 비어 있지 않으면 PDF에 서명됩니다.


당신이 닷넷을위한 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 닷넷 예를 C5_02_SignatureInfo.cs에 대한) , SignatureUtil.GetSignatureNames() 메소드는 서명 된 모든 서명 필드의 이름을 가져옵니다. 해당 목록이 비어 있지 않으면 PDF에 서명됩니다. 당신이 더 이상을 지정하지 않은 것처럼 그런데


는, 당신이 특정도 분리 된 서명도 XFA의 서명에 정기적으로 통합 된 PDF 서명을 의미 가정합니다.

+0

이것은 해결책으로 표시되어야합니다! 이것은 나를 위해 위대한 작품. –

+0

당신은 (물어 본 사람으로서) 당신이 할 수있는 사람입니다 : 대답의 왼쪽 상단에있는 체크를 클릭하십시오. – mkl

관련 문제