Travailler avec les couches PDF en utilisant C#

Un document PDF peut contenir diverses données cachées qui pourraient compromettre la confidentialité ou poser des menaces potentielles lorsque le fichier est partagé.
En utilisant la classe HiddenDataSanitizer, vous pouvez supprimer les données cachées de votre choix.
Vous pouvez configurer de manière flexible le processus de désinfection en utilisant la classe HiddenDataSanitizerOptions.

HiddenDataSanitizationOptions

Cette classe configure le processus de désinfection des données cachées dans un document PDF.
Elle permet d’activer et de configurer de manière centralisée la suppression d’informations potentiellement sensibles, invisibles ou indésirables (annotations, scripts, métadonnées, pièces jointes, index, etc.),
ainsi que de contrôler la rasterisation des pages et les paramètres de compression d’image.

Elle est adaptée à des scénarios tels que :

  • préparation de documents pour distribution ;
  • amélioration de la sécurité et de la confidentialité ;
  • simplification de la structure PDF (aplanissement des formulaires et des couches) ;
  • suppression de contenu caché qui pourrait ne pas être visible lors d’une visualisation normale.

Options

  • ImageCompressionOptions: ImageCompressionOptions
    Paramètres de compression d’image pour l’optimisation. Ignoré si la rasterisation des pages est activée. Non activé automatiquement par la méthode All() — configurez manuellement si nécessaire.

  • ConvertPagesToImages: bool
    Convertit les pages en images raster. Lorsqu’il est activé, ImageCompressionOptions est ignoré. Exécuté après le nettoyage du contenu caché principal par d’autres options. Non activé automatiquement par la méthode All().

  • ImageDpi: int (par défaut 150)
    Résolution (DPI) utilisée lors de la conversion des pages en images.

  • RemoveAnnotations: bool
    Supprime toutes les annotations du document. Les annotations de censure seront appliquées.

  • RemoveSearchIndexAndPrivateInfo: bool
    Supprime les index de recherche intégrés et les informations privées.

  • FlattenForms: bool
    Aplati les formulaires : les champs interactifs deviennent du contenu statique et non modifiable.

  • FlattenLayers: bool
    Aplati les couches : toutes les couches sont fusionnées en une seule, simplifiant la structure et supprimant les données de couche cachées.

  • RemoveJavaScriptsAndActions: bool
    Supprime les scripts JavaScript et les actions associées pour éliminer les vulnérabilités potentielles.

  • RemoveMetadata: bool
    Supprime les métadonnées (propriétés du document et informations supplémentaires intégrées).

  • RemoveAttachments: bool
    Supprime tous les fichiers intégrés.

Méthodes

  • static All(): HiddenDataSanitizationOptions
    Renvoie une instance préconfigurée avec les options suivantes activées :
    RemoveAnnotations, RemoveJavaScriptsAndActions, RemoveMetadata, RemoveAttachments, RemoveSearchIndexAndPrivateInfo, FlattenForms, FlattenLayers ;
    et avec la conversion des pages en images (ConvertPagesToImages = false) et le traitement d’image (ImageCompressionOptions = null) désactivés.
    Vous pouvez configurer manuellement ImageCompressionOptions et ConvertPagesToImages après avoir appelé All().

HiddenDataSanitizer

La classe HiddenDataSanitizer fournit des fonctions pour nettoyer les documents PDF des données cachées (métadonnées, pièces jointes, annotations, JavaScript, informations privées, etc.).
Elle utilise un ensemble d’options définies dans HiddenDataSanitizationOptions pour contrôler de manière flexible le processus de désinfection.

Méthode statique SanitizeAllToImages

public static void SanitizeAllToImages(Document document, int dpi = 150)

Convertit toutes les pages du document PDF en images, puis supprime toutes les données cachées restantes.
Cette méthode est utile lorsque vous devez complètement “sceller” un document sous forme d’images raster, éliminant tous les éléments cachés.

Méthode d’instance Sanitize

public void Sanitize(Document document)

Effectue la désinfection du PDF selon les options fournies dans le constructeur.

Exemple d’utilisation