Как я могу заблокировать документ PDF после его подписания?

Adobe Acrobat имеет возможность заблокировать документ PDF после его подписания. Это изменяет права доступа к документу, поэтому Acrobat не предлагает снова подписывать документ или изменять аннотации или формы. Это кажется разумным действием после подписания документа для проверки несколькими организациями и, наконец, для публикации ответственным лицом.

iTextSharp также может подписывать документы и добавлять дополнительные подписи к уже подписанному документу. iTextSharp в принципе также может установить документ »с разрешения, но как-то могуПолучите те же разрешения, что и в Acrobat X Pro. Я установил следующие разрешения:

PdfWriter.ALLOW_COPYPdfWriter.ALLOW_DEGRADED_PRINTINGPdfWriter.ALLOW_PRINTINGPdfWriter.ALLOW_SCREENREADERS

Я не устанавливаю следующие разрешения (которые должны быть все остальное):

PdfWriter.ALLOW_ASSEMBLYPdfWriter.ALLOW_FILL_INPdfWriter.ALLOW_MODIFY_ANNOTATIONSPdfWriter.ALLOW_MODIFY_CONTENTS

В любом случае, после сохранения такого документа я вижу следующие разрешения в Acrobat X Pro:

Печать: разрешено (ОК)Изменение документа: не разрешено (ОК)Сборка: не допускается (ОК)Копирование содержимого: разрешено (ОК)Программа чтения с экрана: разрешена (ОК)Удалить страницы: разрешено (НЕ ОК)Аннотировать: разрешено (НЕ ОК)Заполните формы: Разрешено (НЕ ОК)Знак: разрешено (НЕ ОК)Создание шаблонов: разрешено (неизвестно) I '

Я не использую шифрование, потому что это возможно только перед тем, как поставить первую подпись. Кроме того, я недействительно не хочу его использовать, потому чтов основном бесполезны без пароля для просмотра и б) Acrobat неДелайте это либо при блокировке документа после подписания.

Мой код основан на проекте iSafePDF (с открытым исходным кодом на Codeplex), который каким-то образом использует PdfStamper для существующего документа.

Моя версия iTextSharp - 5.2.1. В последней версии есть несовместимые изменения API, которые я не сделалне могу решить еще.

Итак, как я могу достичь того же результата, что и с Acrobat?

(Я'Я знаю, что мое приложение все еще сможет подписать документ, потому чтозаботиться о существующих разрешениях. Но, по крайней мере, другие пользователи Acrobat должны видетьпредполагаемые разрешения " правильно.)

Обновить:

Я дополнительно исследовал проблему, и, похоже, она возникла отсюда: разрешения могут быть установлены только через метод PdfStamper.SetEncryption, как его 4-й параметр. Но вызов этого метода вместе с добавлением подписи приводит к следующему исключению DocumentException: "Режим добавления не поддерживает изменение статуса шифрования. " У меня нетt видел метод, который устанавливает разрешения, но не шифрование. Это проблема? ITextSharp просто не поддерживает что?на самом деле возможно?

Ответы на вопрос(1)

Ваш ответ на вопрос