2014-09-11 165 views
4

我不知道是否可以創建一個啓用了密碼安全性的pdf,這也允許提取頁面。允許在密碼安全pdf中使用itextsharp提取頁面

我在itextsharp中找不到任何屬性,這將允許啓用頁面提取。

任何人有什麼想法?

properties

這是我想啓用屬性。

非常感謝。

+0

哪個Acrobat的版本這個? ISO-32000-2草案規定:位5定義了從文檔複製或以其他方式提取文本和圖形的權限。但是,爲了將此內容提供給輔助技術的有限目的,PDF閱讀器的行爲應該如同該位設置爲1. *我很困惑地發現啓用了輔助功能並且不允許頁面提取。這在ISO-32000-1中是可能的,但是這在ISO-32000-2中將被棄用(因此您不應該依賴該標誌)。 – 2014-09-11 11:41:53

+0

嗨,我使用的是Adobe Acrobat Reader 9.4.0,我的文檔基於規範(PDF 1.4)。 – 2014-09-11 12:41:22

+1

我調查了你的問題。你似乎在問一些不可能的事情。而且:您的要求不是完整的。任何想要提取頁面的人都可以刪除所有者密碼。 – 2014-09-11 12:45:40

回答

1

我在ISO-32000-2草案採取了看看權限位和我相比,他們與參數(寫在ALL_CAPS)提供iText的:

bit 1: Not assigned 
bit 2: Not assigned 
bit 3: Degraded printing: ALLOW_DEGRADED_PRINTING 
bit 4: Modify contents: ALLOW_MODIFY_CONTENTS 
bit 5: Extract text/graphics: ALLOW_COPY 
bit 6: Add/Modify text annotations: ALLOW_MODIFY_ANNOTATIONS 
bit 7: Not assigned 
bit 8: Not assigned 
bit 9: Fill in fields: ALLOW_FILL_IN 
bit 10: **Deprecated** ALLOW_SCREEN_READERS 
bit 11: Assembly: ALLOW_ASSEMBLY 
bit 12: Printing: ALLOW_PRINTING 

當我比較你的截屏的規格,我假定權限如下:

  • 印刷:ALLOW_DEGRADED_PRINTING或ALLOW_PRINTING
  • 更改文件:ALLOW_MODIFY_CONTENTS
  • 評論:ALLOW_MODIFY_ANNOTATIONS
  • 表單域填充或簽名:ALLOW_FILL_IN
  • 文件彙編:ALLOW_ASSEMBLY
  • 內容複製:ALLOW_COPY
  • 內容可訪問啓用:ALLOW_SCREENREADERS

我無法找到任何引用頁面提取的權限位。我試過設置ISO-32000-2中記錄的所有標誌,但是它們沒有導致將頁面抽取設置爲允許。

我已經嘗試了兩件事情:

首先,我試着設置未分配的位:位1,2,7,8,13,14,這並沒有改變任何東西。然後,我在Acrobat中打開一個測試文檔,我試圖找到一個設置,將允許網頁提取:

enter image description here

我找不到任何。

由於權限在ISO-32000中沒有描述,而且似乎沒有辦法在Acrobat中設置此權限,所以我傾向於認爲無法設置此權限。查看「允許」的唯一方法是使用所有者密碼打開文檔。

只要找到使用Acrobat設置此權限的方法,請立即更新您的問題。我正在使用Acrobat XI Pro。

在另一方面:設置權限,你做(只使用一個所有者密碼,沒有用戶密碼)的方式僅僅是一個心理全防爆技術實施保護的方式。請參閱How to read PDFs created with an unknown random owner password?以瞭解如何從僅使用所有者密碼保護的PDF中刪除權限。

0

爲了確保使用iTextSharp的PDF文件,同時允許用戶提取文本和圖像,但編輯阻止他們,保存和打印PDF文件,我做到這一點 -

//Obviously, use the correct namespace 
using iTextSharp.text.pdf; 


//Create an instance of PdfReader, associate your PDF file 
PdfReader reader = new PdfReader(「yourFile.PDF」); 

//Secure your file with a password(yourPDFpassword), set the security to 
// PdfWriter.ALLOW_COPY – to allow for security with content extraction 

PdfEncryptor.Encrypt(reader, output, true, "", yourPDFpassword, PdfWriter.ALLOW_COPY); 
+0

對不起,我誤解了你的要求。 – 2014-12-15 12:55:20