2012-05-31 141 views
1

我使用下面的代碼:如何添加密碼保護PDF文件

string WorkingFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
string InputFile = Path.Combine(WorkingFolder, "PSNOs.pdf"); 
string OutputFile = Path.Combine(WorkingFolder, "PSNOs_enc.pdf"); 
using (Stream input = new FileStream(InputFile, FileMode.Open, FileAccess.Read, FileShare.Read)) 
{ 
    using (Stream output = new FileStream(OutputFile, FileMode.Create, FileAccess.Write, FileShare.None)) 
    { 
     PdfReader reader = new PdfReader(input); 
     PdfEncryptor.Encrypt(reader, output, true, null, "secret", PdfWriter.ALLOW_SCREENREADERS); 
    } 
} 

但它正在創建另一個文件,添加密碼到輸出文件。 但我不想像上面那樣創建兩個文件。我想爲輸入文件PSNOs.pdf輸入密碼而不創建其他文件。

回答

1

不幸的是必須這樣做。

我會建議你:

  1. 在操作系統的臨時文件夾中創建無符號的PDF
  2. 簽名,輸出到位置和文件名,你想
  3. 清理 - 刪除臨時文件。
1

根據itextsharp文檔,它可以在新創建的pdf中設置密碼。它不能給現有的PDF文件提供密碼。

因此,您希望通過使用itextsharp而不創建新文件來保護密碼。爲了使密碼保護的PDF你必須使用輸出文件(這是由PdfEncryptor.Encrypt()方法保護創建的密碼),並刪除輸入的PDF。

你可以看到這個link

+0

Thanks.I正與刪除輸入文件繼續.. – Harikasai

0

使用iTextSharp的

string sourcePdf = @"D:\unsecuredfolder\unsecuredPage.pdf"; 
     using (Stream input = new FileStream(sourcePdf , FileMode.Open, FileAccess.Read, FileShare.Read)) 
       //Passowrd the pwd for PDF security     

    string destPdf = @"D:\securedfolder\securedPage.pdf"; 

     /sourcePdf unsecured PDF file 
     //destPdf secured PDF file 

     { 
      using (Stream output = new FileStream(destPdf , FileMode.Create, FileAccess.Write, FileShare.None)) 
      { 
       PdfReader reader = new PdfReader(input); 

       string Password="[email protected]"; 
       PdfEncryptor.Encrypt(reader, output, true, Password, Password, PdfWriter.ALLOW_PRINTING); 
      } 
     } 
+0

請詳細說明該程序是如何回答的問題是創建密碼保護的PDF。 – JAL