2017-09-21 4 views
0

enter image description hereItextsharpがパスワードメッセージ

こんにちはをカスタマイズし、私はメッセージがItextsharp PdfEncryptorを使用してPDFファイルenryptedに「あなたの誕生日とカードの最後の6桁を入力してください」にカスタマイズすることができますか?

public byte[] GenerateSoaCrystalPdf(SoaCustomerViewModel customer, out int totalPages, bool encryptFile = false) 
    { 
     var rptDoc = GenerateSoaCrystal(customer); 
     // process PDF file 
     var stream = rptDoc.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); 
     // dispose the report document 
     rptDoc.Close(); 
     rptDoc.Dispose(); 

     // create password-protected PDF 
     using (var ms = new MemoryStream()) 
     { 
      if (encryptFile) 
      { 
       // count number of pages 
       using (var pdfReader = new PdfReader(stream)) 
       { 
        totalPages = pdfReader.NumberOfPages; 
        var password = customer.DateOfBirth + customer.CardNumber.NumbersOnly().Right(6); 
        PdfEncryptor.Encrypt(pdfReader, ms, true, password, password, PdfWriter.AllowScreenReaders); 
       } 
      } 
      else 
      { 
       // TODO: fix error when calling PdfReader 
       totalPages = 0; 
       stream.CopyTo(ms); 
      } 
      return ms.ToArray(); 
     } 
    } 

答えて

4

私の知る限り、このメッセージはドキュメントの閲覧に使用されたPDFリーダーによって定義されています。

+3

真実ですが、要件をサポートするISO 32000(PDF仕様)には何もありません。答えは確かです:*いいえ、これはできません。 iTextではなく、他のツールではありません。* –

+0

お返事ありがとうございます – jankenshin2004