Définir des privilèges sur un PDF

Définir des privilèges sur un fichier PDF existant

Pour définir les privilèges d’un fichier PDF, créez un objet PdfFileSecurity et appelez la méthode SetPrivilege. Vous pouvez spécifier les privilèges à l’aide de l’objet DocumentPrivilege, puis passer cet objet à la méthode SetPrivilege. L’extrait de code suivant vous montre comment définir les privilèges d’un fichier 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");
    }
}

Voir la méthode suivante en spécifiant un mot de passe :

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

Supprimer la fonctionnalité de droits étendus du PDF

Les documents PDF prennent en charge la fonctionnalité de droits étendus pour permettre à l’utilisateur final de remplir des données dans des champs de formulaire en utilisant Adobe Acrobat Reader, puis de sauvegarder une copie du formulaire rempli. Cependant, cela garantit que le fichier PDF n’est pas modifié et si une modification de la structure du PDF est effectuée, la fonctionnalité de droits étendus est perdue. Lors de la visualisation d’un tel document, un message d’erreur s’affiche, indiquant que les droits étendus ont été supprimés parce que le document a été modifié. Récemment, nous avons reçu une demande pour supprimer les droits étendus d’un document PDF.

Pour supprimer les droits étendus d’un fichier PDF, une nouvelle méthode nommée RemoveUsageRights() a été ajoutée à la classe PdfFileSignature. Une autre méthode nommée ContainsUsageRights() a été ajoutée pour déterminer si le PDF source contient des droits étendus.

Le code suivant montre comment supprimer les droits d’utilisation du document :

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