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 en utilisant l’objet DocumentPrivilege et ensuite passer cet objet à la méthode SetPrivilege. L’extrait de code suivant vous montre comment définir les privilèges d’un fichier PDF.

public static void SetPrivilege1()
 {
    // Créez un objet DocumentPrivileges
    DocumentPrivilege privilege = DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    // Créez un objet PdfFileSecurity
    PdfFileSecurity fileSecurity = new PdfFileSecurity();
    fileSecurity.BindPdf(_dataDir + "sample.pdf");
    fileSecurity.SetPrivilege(privilege);
    fileSecurity.Save(_dataDir + "sample_privileges.pdf");
}

Voir la méthode suivante avec spécification d’un mot de passe :

 public static void SetPrivilege2()
 {
    // Créer un objet DocumentPrivileges
    DocumentPrivilege privilege = DocumentPrivilege.ForbidAll;
    privilege.ChangeAllowLevel = 1;
    privilege.AllowPrint = true;
    privilege.AllowCopy = true;

    // Créer un objet PdfFileSecurity
    PdfFileSecurity fileSecurity = new PdfFileSecurity();
    fileSecurity.BindPdf(_dataDir + "sample.pdf");
    fileSecurity.SetPrivilege(string.Empty, "P@ssw0rd", privilege);
    fileSecurity.Save(_dataDir + "sample_privileges.pdf");
}

Supprimer la fonctionnalité des droits étendus du PDF

Les documents PDF prennent en charge la fonctionnalité des droits étendus pour permettre à l’utilisateur final de remplir des données dans les 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 est affiché, indiquant que les droits étendus sont supprimés parce que le document a été modifié. Récemment, nous avons reçu une demande de suppression des 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() est 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 :

// Le chemin vers le répertoire des documents.
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");
}