Установка Привилегий на PDF

Установка Привилегий на Существующий PDF Файл

Чтобы установить привилегии для PDF файла, создайте объект PdfFileSecurity и вызовите метод SetPrivilege. Вы можете указать привилегии, используя объект DocumentPrivilege, а затем передать этот объект в метод SetPrivilege. В следующем коде показано, как установить привилегии PDF файла.

public static void SetPrivilege1()
 {
    // Создайте объект DocumentPrivileges
    DocumentPrivilege privilege = DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    // Создайте объект PdfFileSecurity
    PdfFileSecurity fileSecurity = new PdfFileSecurity();
    fileSecurity.BindPdf(_dataDir + "sample.pdf");
    fileSecurity.SetPrivilege(privilege);
    fileSecurity.Save(_dataDir + "sample_privileges.pdf");
}

See the following method with specifying a password:

 public static void SetPrivilege2()
 {
    // Создайте объект DocumentPrivileges
    DocumentPrivilege privilege = DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    // Создайте объект PdfFileSecurity
    PdfFileSecurity fileSecurity = new PdfFileSecurity();
    fileSecurity.BindPdf(_dataDir + "sample.pdf");
    fileSecurity.SetPrivilege(string.Empty, "P@ssw0rd", privilege);
    fileSecurity.Save(_dataDir + "sample_privileges.pdf");
}

Удаление функции расширенных прав из PDF

PDF документы поддерживают функцию расширенных прав, чтобы позволить конечному пользователю заполнять данные в поля формы с помощью Adobe Acrobat Reader и затем сохранять копию заполненной формы. Однако это гарантирует, что PDF файл не был изменен, и если в структуру PDF внесены какие-либо изменения, функция расширенных прав теряется. При просмотре такого документа отображается сообщение об ошибке, указывающее, что расширенные права удалены, так как документ был изменен. Недавно мы получили запрос на удаление расширенных прав из PDF документа.

Для удаления расширенных прав из PDF файла в класс PdfFileSignature добавлен новый метод под названием RemoveUsageRights(). Другой метод под названием ContainsUsageRights() добавлен для определения, содержит ли исходный PDF расширенные права.

Следующий код показывает, как удалить права использования из документа:

// Путь к каталогу документов.
string dataDir = RunExamples.GetDataDir_AsposePdfFacades_SecuritySignatures();
string input = dataDir + "DigitallySign.pdf";
using (PdfFileSignature pdfSign = new PdfFileSignature())
{
    pdfSign.BindPdf(input);
    if (pdfSign.ContainsUsageRights())
    {
        pdfSign.RemoveUsageRights();
    }

    pdfSign.Document.Save(dataDir + "RemoveRights_out.pdf");
}