Establecer Privilegios en PDF

Establecer Privilegios en un Archivo PDF Existente

Para establecer los privilegios de un archivo PDF, cree un objeto PdfFileSecurity y llame al método SetPrivilege. Puede especificar los privilegios utilizando el objeto DocumentPrivilege y luego pasar este objeto al método SetPrivilege. El siguiente fragmento de código muestra cómo establecer los privilegios de un archivo PDF.

public static void SetPrivilege1()
 {
    // Crear objeto DocumentPrivileges
    DocumentPrivilege privilege = DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    // Crear objeto PdfFileSecurity
    PdfFileSecurity fileSecurity = new PdfFileSecurity();
    fileSecurity.BindPdf(_dataDir + "sample.pdf");
    fileSecurity.SetPrivilege(privilege);
    fileSecurity.Save(_dataDir + "sample_privileges.pdf");
}

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

 public static void SetPrivilege2()
 {
    // Crear objeto DocumentPrivileges
    DocumentPrivilege privilege = DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    // Crear objeto PdfFileSecurity
    PdfFileSecurity fileSecurity = new PdfFileSecurity();
    fileSecurity.BindPdf(_dataDir + "sample.pdf");
    fileSecurity.SetPrivilege(string.Empty, "P@ssw0rd", privilege);
    fileSecurity.Save(_dataDir + "sample_privileges.pdf");
}

Eliminar la Función de Derechos Extendidos del PDF

Los documentos PDF admiten la función 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, asegura que el archivo PDF no sea modificado y si se realiza alguna modificación en la estructura del PDF, la función de derechos extendidos se pierde. Al ver un documento así, se muestra un mensaje de error que indica que los derechos extendidos se eliminaron porque el documento fue modificado. Recientemente, recibimos un requisito 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. Se ha añadido otro método llamado ContainsUsageRights() para determinar si el PDF fuente contiene derechos extendidos.

El siguiente código muestra cómo eliminar los derechos de uso del documento:

// La ruta al directorio de documentos.
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");
}