Установка прав доступа к PDF

Установка прав доступа к существующему файлу PDF

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetPrivilege1()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    
    // Create DocumentPrivileges object and set needed privileges
    var privilege = Aspose.Pdf.Facades.DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    using (var fileSecurity = new Aspose.Pdf.Facades.PdfFileSecurity())
    {
        // Bind PDF document
        fileSecurity.BindPdf(dataDir + "sample.pdf");
        // Set privilege
        fileSecurity.SetPrivilege(privilege);
        // Save PDF document
        fileSecurity.Save(dataDir + "SamplePrivileges_out.pdf");
    }
}

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void SetPrivilegeWithPassword()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_SecuritySignatures();
    
    // Create DocumentPrivileges object and set needed privileges
    var privilege = Aspose.Pdf.Facades.DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    using (var fileSecurity = new Aspose.Pdf.Facades.PdfFileSecurity())
    {
        // Bind PDF document
        fileSecurity.BindPdf(dataDir + "sample.pdf");
        // Set privilege and passwords
        fileSecurity.SetPrivilege(string.Empty, "P@ssw0rd", privilege);
        // Save PDF document
        fileSecurity.Save(dataDir + "SamplePrivilegesPassword_out.pdf");
    }
}

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

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

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

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

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RemoveExtendedRights()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdfFacades_SecuritySignatures();
    
    using (var pdfSign = new Aspose.Pdf.Facades.PdfFileSignature())
    {
        // Bind PDF document
        pdfSign.BindPdf(dataDir + "DigitallySign.pdf");
        if (pdfSign.ContainsUsageRights())
        {
            pdfSign.RemoveUsageRights();
        }
        // Save PDF document
        pdfSign.Document.Save(dataDir + "RemoveRights_out.pdf");
    }
}