Trabajar con capas PDF usando C#

Un documento PDF puede contener varios datos ocultos que podrían comprometer la confidencialidad o representar amenazas potenciales cuando se comparte el archivo.
Al utilizar la clase HiddenDataSanitizer, puede eliminar los datos ocultos que elija.
Puede configurar de manera flexible el proceso de saneamiento utilizando la clase HiddenDataSanitizerOptions.

HiddenDataSanitizationOptions

Esta clase configura el proceso de saneamiento para datos ocultos en un documento PDF.
Permite habilitar y configurar de manera centralizada la eliminación de información potencialmente sensible, invisible o no deseada (anotaciones, scripts, metadatos, archivos adjuntos, índices, etc.),
así como controlar la rasterización de páginas y los parámetros de compresión de imágenes.

Es adecuada para escenarios como:

  • preparar documentos para distribución;
  • mejorar la seguridad y la privacidad;
  • simplificar la estructura del PDF (aplanar formularios y capas);
  • eliminar contenido oculto que podría no ser visible durante la visualización normal.

Opciones

  • ImageCompressionOptions: ImageCompressionOptions
    Configuraciones de compresión de imágenes para optimización. Ignorado si la rasterización de páginas está habilitada. No se activa automáticamente mediante el método All(); configure manualmente si es necesario.

  • ConvertPagesToImages: bool
    Convierte páginas a imágenes rasterizadas. Cuando está habilitado, se ignoran ImageCompressionOptions. Se ejecuta después de limpiar el contenido oculto principal mediante otras opciones. No se activa automáticamente mediante el método All().

  • ImageDpi: int (predeterminado 150)
    Resolución (DPI) utilizada al convertir páginas a imágenes.

  • RemoveAnnotations: bool
    Elimina todas las anotaciones del documento. Se aplicarán anotaciones de redacción.

  • RemoveSearchIndexAndPrivateInfo: bool
    Elimina índices de búsqueda incrustados e información privada.

  • FlattenForms: bool
    Aplana formularios: los campos interactivos se convierten en contenido estático y no editable.

  • FlattenLayers: bool
    Aplana capas: todas las capas se fusionan en una, simplificando la estructura y eliminando datos ocultos de la capa.

  • RemoveJavaScriptsAndActions: bool
    Elimina JavaScript y acciones relacionadas para eliminar vulnerabilidades potenciales.

  • RemoveMetadata: bool
    Elimina metadatos (propiedades del documento e información adicional incrustada).

  • RemoveAttachments: bool
    Elimina todos los archivos incrustados.

Métodos

  • static All(): HiddenDataSanitizationOptions
    Devuelve una instancia preconfigurada con las siguientes opciones habilitadas:
    RemoveAnnotations, RemoveJavaScriptsAndActions, RemoveMetadata, RemoveAttachments, RemoveSearchIndexAndPrivateInfo, FlattenForms, FlattenLayers;
    y con la conversión de páginas a imágenes (ConvertPagesToImages = false) y el procesamiento de imágenes (ImageCompressionOptions = null) deshabilitados.
    Puede configurar manualmente ImageCompressionOptions y ConvertPagesToImages después de llamar a All().

HiddenDataSanitizer

La clase HiddenDataSanitizer proporciona funciones para limpiar documentos PDF de datos ocultos (metadatos, archivos adjuntos, anotaciones, JavaScript, información privada, etc.).
Utiliza un conjunto de opciones definidas en HiddenDataSanitizationOptions para controlar de manera flexible el proceso de saneamiento.

Método Estático SanitizeAllToImages

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

Convierte todas las páginas del documento PDF a imágenes y luego elimina cualquier dato oculto restante.
Este método es útil cuando necesita “sellar” completamente un documento como imágenes rasterizadas, eliminando todos los elementos ocultos.

Método de Instancia Sanitize

public void Sanitize(Document document)

Realiza el saneamiento del PDF de acuerdo con las opciones proporcionadas en el constructor.

Ejemplo de Uso