Cuando necesites redactar texto sensible de un PDF en Linux, puedes ejecutar GroupDocs.Redaction for .NET dentro de un contenedor Docker. Este tutorial muestra cómo crear el proyecto desde cero, añadir un archivo PDF, redactar una frase exacta con un cuadro negro y ejecutar la aplicación en un contenedor Linux con .NET 10.

Una versión completa y funcional del proyecto también está disponible en GitHub.

1. Crear un proyecto de consola .NET con soporte Docker

Puedes crear el proyecto usando Visual Studio o la CLI de .NET.

Usando Visual Studio

  1. Crea un nuevo proyecto de Aplicación de consola y selecciona .NET 10.0 como marco de destino.
  2. En la pantalla de opciones adicionales, habilita Enable container support o Add Docker support (el nombre de la opción puede variar según la versión de Visual Studio).
  3. Selecciona Linux como sistema operativo de destino para el contenedor.
  4. Crea el proyecto. Visual Studio generará los archivos de configuración Docker necesarios, incluido un Dockerfile.

Usando la CLI de .NET

dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker

Si utilizas la CLI, añade manualmente un Dockerfile al directorio raíz del proyecto. Lo configurarás en los pasos siguientes para compilar, publicar y ejecutar la aplicación dentro de un contenedor Linux.

La estructura resultante del proyecto debería verse así:

PdfRedactionDocker/
├── Dockerfile
├── PdfRedactionDocker.csproj
└── Program.cs

2. Instalar GroupDocs.Redaction

Añade GroupDocs.Redaction for .NET a tu proyecto usando Visual Studio o la CLI de .NET.

Usando Visual Studio

  1. Haz clic con el botón derecho del ratón en el proyecto dentro de Solution Explorer.
  2. Selecciona Manage NuGet Packages.
  3. Busca GroupDocs.Redaction e instala el paquete.

Usando la CLI de .NET

dotnet add package GroupDocs.Redaction

El paquete proporciona la clase Redactor para cargar y procesar documentos, junto con varias clases y opciones para configurar y aplicar redacciones.

3. Añadir el archivo PDF

Coloca el PDF que deseas procesar en el directorio del proyecto y nómbralo:

document.pdf

La aplicación buscará en este archivo la frase a redactar y creará document_Redacted.pdf con el resultado.

Para este ejemplo, el PDF contiene la palabra gap.

4. Añadir el código de redacción

Abre Program.cs y reemplaza su contenido con:

using GroupDocs.Redaction;
using GroupDocs.Redaction.Options;
using GroupDocs.Redaction.Options.Drawing;
using GroupDocs.Redaction.Redactions;

using (Redactor redactor = new Redactor("document.pdf"))
{
    redactor.Apply(
        new ExactPhraseRedaction(
            "gap",
            new ReplacementOptions(Color.Black)));

    var saveOptions = new SaveOptions() { AddSuffix = true };
    var outputFile = redactor.Save(saveOptions);
}

ExactPhraseRedaction busca en el PDF la frase especificada. La búsqueda no distingue entre mayúsculas y minúsculas por defecto, por lo que gap y Gap coinciden con el mismo texto.

ReplacementOptions(Color.Black) aplica una redacción con cuadro negro a cada coincidencia en lugar de reemplazar el texto por otra cadena.

SaveOptions.AddSuffix añade _Redacted al nombre del archivo de salida, de modo que el resultado se guarda como:

document_Redacted.pdf

El document.pdf original permanece sin cambios.

El método Apply devuelve el estado de la redacción. Verifica este resultado en código de producción antes de considerar la salida como redactada con éxito. Save aún puede crear un archivo de salida si la redacción no se aplicó.

5. Configurar el Dockerfile

Utiliza el siguiente Dockerfile como ejemplo para compilar y ejecutar tu aplicación .NET 10 en un contenedor Linux.

El ejemplo incluye los pasos necesarios para instalar las bibliotecas y fuentes de Linux que necesita GroupDocs.Redaction para el procesamiento de documentos.

Puedes encontrar el Dockerfile completo aquí.

FROM mcr.microsoft.com/dotnet/runtime:10.0 AS base

USER root

RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        fontconfig \
        libfreetype6 \
        libgdiplus \
        libc6-dev \
        libx11-dev \
        software-properties-common \
    && echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | debconf-set-selections \
    && apt-add-repository multiverse \
    && apt-get update \
    && apt-get install -y ttf-mscorefonts-installer fonts-lato \
    && fc-cache -f \
    && dir="$(dirname "$(find /usr/lib /lib -name 'libdl.so.2' 2>/dev/null | head -n1)")" \
    && ln -sf "$dir/libdl.so.2" "$dir/libdl.so" \
    && rm -rf /var/lib/apt/lists/*

USER $APP_UID

WORKDIR /app

La imagen Docker incluye las bibliotecas nativas, el soporte de fuentes y otras dependencias requeridas para ejecutar código de procesamiento de documentos en un contenedor Linux.

6. Compilar la imagen de la aplicación

Puedes compilar la imagen Docker usando Visual Studio o la Docker CLI.

Usando Visual Studio

Si el soporte Docker se habilitó al crear el proyecto, selecciona el perfil Docker en el menú desplegable Debug o Run y ejecuta el proyecto. Visual Studio compilará la imagen Docker y ejecutará la aplicación en el contenedor Linux configurado.

Usando la Docker CLI

Abre una terminal en el directorio del proyecto y ejecuta:

docker build -t PdfRedactionDocker .

Docker utiliza el Dockerfile para crear la imagen Linux e instalar las dependencias requeridas.

7. Ejecutar el contenedor

Si utilizas la Docker CLI, ejecuta la aplicación montando el directorio del proyecto dentro del contenedor:

docker run --rm \
  -v "${PWD}:/data" \
  -w /data \
  --entrypoint dotnet \
  PdfRedactionDocker \
  /app/PdfRedactionDocker.dll

El directorio del proyecto se monta en /data y se usa como directorio de trabajo del contenedor. Por lo tanto, la aplicación lee el archivo fuente desde:

/data/document.pdf

y guarda el archivo redactado en:

/data/document_Redacted.pdf

Como /data está mapeado al directorio del proyecto en el host, el PDF redactado aparece junto al archivo original.

En PowerShell de Windows, ${PWD} se expande al directorio de trabajo actual. Ejecuta el comando desde el directorio del proyecto.

8. Verificar el PDF redactado

Después de que la aplicación termine, abre:

document_Redacted.pdf

La frase especificada debería estar cubierta por un rectángulo negro, mientras que el document.pdf original permanece sin cambios.

Ahora puedes usar el mismo enfoque para integrar PDF text redaction with GroupDocs.Redaction for .NET en una aplicación Docker basada en Linux.

Licenciamiento

Sin una licencia, GroupDocs.Redaction for .NET se ejecuta en modo de evaluación. La versión de evaluación tiene límites de uso y añade una marca de agua al documento guardado.

Una licencia temporal de 30 días está disponible en la página de licencias temporales de GroupDocs. La información de precios está disponible en la página de compra de GroupDocs.Redaction for .NET.

Más información