2014-09-11 3 views
4

Не знаю, можно ли создать PDF с включенной защитой паролем, что также позволяет извлекать страницы.Разрешить извлечение страницы в защищенном пароле pdf с помощью itextsharp

Я не нашел никакого свойства в itextsharp, которое позволит разрешить извлечение страницы.

Есть идеи?

properties

Это свойство, которое я хотел бы включить.

спасибо.

+0

Какую версию Acrobat является это? В проекте для ISO-32000-2 указано: бит 5 определяет разрешение на * Копирование или иное извлечение текста и графики из документа. Однако для ограниченной цели предоставления этого контента вспомогательной технологии читатель PDF должен вести себя так, как если бы этот бит был установлен в 1. * Я смущен, увидев, что доступность включена и в то же время удаление страницы не разрешено. Это было возможно в ISO-32000-1, но это будет устаревшим в ISO-32000-2 (следовательно, вы не должны зависеть от этого флага). –

+0

Привет, Я использую Adobe Acrobat Reader 9.4.0, и мой документ базируется в спецификации (PDF 1.4). –

+1

Я исследовал вашу проблему. Кажется, вы спрашиваете что-то невозможное. Кроме того: ваше требование не является полным. Любой, кто хочет извлечь страницы, может удалить пароль владельца. –

ответ

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

Чтобы обеспечить безопасность файла PDF с помощью iTextSharp, позволяя пользователям извлекать текст и изображения, но остановить их от редактирования, сохранения и печати файла 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

Извините, я неверно истолковал ваше требование. –

Смежные вопросы