Quando for necessário remover texto sensível de um PDF no Linux, você pode executar GroupDocs.Redaction for .NET dentro de um contêiner Docker. Este tutorial mostra como criar o projeto do zero, adicionar um arquivo PDF, remover uma frase exata com uma caixa preta e executar a aplicação em um contêiner Linux com .NET 10.

Uma versão completa e funcional do projeto também está disponível no GitHub.

1. Crie um Projeto de Console .NET com Suporte a Docker

Você pode criar o projeto usando o Visual Studio ou a CLI do .NET.

Usando o Visual Studio

  1. Crie um novo projeto Console App e selecione .NET 10.0 como framework de destino.
  2. Na tela de opções adicionais, habilite Enable container support ou Add Docker support (o nome da opção pode variar conforme a versão do Visual Studio).
  3. Selecione Linux como sistema operacional de destino para o contêiner.
  4. Crie o projeto. O Visual Studio gerará os arquivos de configuração do Docker necessários, incluindo um Dockerfile.

Usando a CLI do .NET

dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker

Se você usar a CLI, adicione manualmente um Dockerfile ao diretório raiz do projeto. Você o configurará nas etapas seguintes para compilar, publicar e executar a aplicação dentro de um contêiner Linux.

A estrutura resultante do projeto deve ficar assim:

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

2. Instale o GroupDocs.Redaction

Adicione GroupDocs.Redaction for .NET ao seu projeto usando o Visual Studio ou a CLI do .NET.

Usando o Visual Studio

  1. Clique com o botão direito no projeto em Solution Explorer.
  2. Selecione Manage NuGet Packages.
  3. Procure por GroupDocs.Redaction e instale o pacote.

Usando a CLI do .NET

dotnet add package GroupDocs.Redaction

O pacote fornece a classe Redactor para carregar e processar documentos, além de várias classes e opções para configurar e aplicar remoções.

3. Adicione o Arquivo PDF

Coloque o PDF que você deseja processar no diretório do projeto e nomeie‑o:

document.pdf

A aplicação buscará neste arquivo a frase a ser removida e criará document_Redacted.pdf com o resultado.

Para este exemplo, o PDF contém a palavra gap.

4. Adicione o Código de Remoção

Abra Program.cs e substitua seu conteúdo por:

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 procura no PDF a frase especificada. A busca não diferencia maiúsculas de minúsculas por padrão, portanto gap e Gap correspondem ao mesmo texto.

ReplacementOptions(Color.Black) aplica uma remoção com caixa preta a cada ocorrência, em vez de substituir o texto por outra string.

SaveOptions.AddSuffix adiciona _Redacted ao nome do arquivo de saída, de modo que o resultado seja salvo como:

document_Redacted.pdf

O document.pdf original permanece inalterado.

O método Apply devolve o status da remoção. Verifique esse resultado em código de produção antes de considerar a saída como removida com sucesso. Save ainda pode criar um arquivo de saída se a remoção não tiver sido aplicada.

5. Configure o Dockerfile

Use o Dockerfile abaixo como exemplo para compilar e executar sua aplicação .NET 10 em um contêiner Linux.

O exemplo inclui as etapas necessárias para instalar as bibliotecas Linux e as fontes exigidas pelo GroupDocs.Redaction para o processamento de documentos.

Você pode encontrar o Dockerfile completo aqui.

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

A imagem Docker inclui as bibliotecas nativas, suporte a fontes e outras dependências necessárias para executar código de processamento de documentos em um contêiner Linux.

6. Compile a Imagem da Aplicação

Você pode compilar a imagem Docker usando o Visual Studio ou a Docker CLI.

Usando o Visual Studio

Se o suporte a Docker foi habilitado ao criar o projeto, selecione o perfil Docker no menu suspenso Debug ou Run e inicie o projeto. O Visual Studio compilará a imagem Docker e executará a aplicação no contêiner Linux configurado.

Usando a Docker CLI

Abra um terminal no diretório do projeto e execute:

docker build -t PdfRedactionDocker .

O Docker usa o Dockerfile para criar a imagem Linux e instalar as dependências necessárias.

7. Execute o Contêiner

Se estiver usando a Docker CLI, execute a aplicação montando o diretório do projeto dentro do contêiner:

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

O diretório do projeto é montado em /data e usado como diretório de trabalho do contêiner. Assim, a aplicação lê o arquivo fonte de:

/data/document.pdf

e salva o arquivo removido em:

/data/document_Redacted.pdf

Como /data está mapeado para o diretório do projeto no host, o PDF removido aparece ao lado do arquivo original.

No PowerShell do Windows, ${PWD} expande para o diretório de trabalho atual. Execute o comando a partir do diretório do projeto.

8. Verifique o PDF Removido

Após a aplicação terminar, abra:

document_Redacted.pdf

A frase especificada deve estar coberta por um retângulo preto, enquanto o document.pdf original permanece inalterado.

Agora você pode usar a mesma abordagem para integrar PDF text redaction with GroupDocs.Redaction for .NET em uma aplicação Docker baseada em Linux.

Licenciamento

Sem uma licença, o GroupDocs.Redaction for .NET funciona em modo de avaliação. A versão de avaliação tem limites de uso e adiciona uma marca d’água ao documento salvo.

Uma licença temporária de 30 dias está disponível na página de licença temporária do GroupDocs. Informações de preços estão disponíveis na página de compra do GroupDocs.Redaction for .NET.

Saiba mais