Definir Privilégios em PDF

Definir Privilégios em um Arquivo PDF Existente

Para definir os privilégios de um arquivo PDF, crie um objeto PdfFileSecurity e chame o método SetPrivilege. Você pode especificar os privilégios usando o objeto DocumentPrivilege e, em seguida, passar esse objeto para o método SetPrivilege. O seguinte trecho de código mostra como definir os privilégios de um arquivo 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");
    }
}

Veja o seguinte método especificando uma senha:

// 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");
    }
}

Remover o Recurso de Direitos Estendidos do PDF

Documentos PDF suportam o recurso de direitos estendidos para permitir que o usuário final preencha dados em campos de formulário usando o Adobe Acrobat Reader e, em seguida, salve uma cópia do formulário preenchido. No entanto, isso garante que o arquivo PDF não seja modificado e, se qualquer modificação na estrutura do PDF for feita, o recurso de direitos estendidos é perdido. Ao visualizar tal documento, uma mensagem de erro é exibida, informando que os direitos estendidos foram removidos porque o documento foi modificado. Recentemente, recebemos uma solicitação para remover direitos estendidos de documentos PDF.

Para remover os direitos estendidos de um arquivo PDF, um novo método chamado RemoveUsageRights() foi adicionado à classe PdfFileSignature. Outro método chamado ContainsUsageRights() foi adicionado para determinar se o PDF de origem contém direitos estendidos.

O seguinte código mostra como remover direitos de uso do documento:

// 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");
    }
}