[英]Encrypt PDF document using iTextSharp
我想通過禁止填寫和復制文檔來保護自己的PDF文檔。 我為此使用iTextSharp。 我有以下代碼:
PdfReader reader = new PdfReader(document, System.Text.Encoding.UTF8.GetBytes(PASSWORD));
using (MemoryStream ms = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(reader, ms))
{
stamper.SetEncryption(
null,
Encoding.ASCII.GetBytes(PASSWORD),
PdfWriter.ALLOW_PRINTING,
PdfWriter.ENCRYPTION_AES_128);
}
}
reader.Close();
生成文檔時,我使用該代碼對文檔進行加密。 但是稍后,當我在Adobe Reader中打開文檔(在9和11上測試)並檢查“文件>屬性>安全性”時,它們對文檔的填寫和復制沒有任何限制,並且其狀態為“允許”。
該代碼有什么問題嗎?
根據iTextSharp的文檔PdfStamper
,該方法的第二個參數是表示用於加密的PDF文檔數據的目標的輸出流。 您在問題中顯示的代碼在設置加密后僅處理MemoryStream
,因此該代碼可能會應用於您的PDF文檔的任何更改都不會保存到磁盤上,否則將無法在您的應用程序外部使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.