Establecer Privilegios en PDF

Establecer Privilegios en un Archivo PDF Existente

Para establecer los privilegios de un archivo PDF, crea un objeto PdfFileSecurity y llama al método SetPrivilege. Puedes especificar los privilegios utilizando el objeto DocumentPrivilege y luego pasar este objeto al método SetPrivilege. El siguiente fragmento de código te muestra cómo establecer los privilegios de un archivo 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");
    }
}

Consulta el siguiente método especificando una contraseña:

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

Eliminar la Funcionalidad de Derechos Extendidos del PDF

Los documentos PDF admiten la funcionalidad de derechos extendidos para permitir al usuario final completar datos en campos de formulario utilizando Adobe Acrobat Reader y luego guardar una copia del formulario completado. Sin embargo, esto asegura que el archivo PDF no sea modificado y si se realiza alguna modificación en la estructura del PDF, se pierden los derechos extendidos. Al visualizar dicho documento, se muestra un mensaje de error que indica que los derechos extendidos han sido eliminados porque el documento fue modificado. Recientemente, recibimos un requerimiento para eliminar los derechos extendidos de un documento PDF.

Para eliminar los derechos extendidos de un archivo PDF, se ha añadido un nuevo método llamado RemoveUsageRights() a la clase PdfFileSignature. Otro método llamado ContainsUsageRights() se ha añadido para determinar si el PDF de origen contiene derechos extendidos.

El siguiente código muestra cómo eliminar los derechos de uso del 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");
    }
}