Quando è necessario redigere testo sensibile da un PDF su Linux, è possibile eseguire GroupDocs.Redaction for .NET all’interno di un contenitore Docker. Questo tutorial mostra come creare il progetto da zero, aggiungere un file PDF, redigere una frase esatta con una casella nera e avviare l’applicazione in un contenitore Linux con .NET 10.

Una versione completa e funzionante del progetto è disponibile anche su GitHub.

1. Creare un progetto console .NET con supporto Docker

È possibile creare il progetto utilizzando Visual Studio o la .NET CLI.

Using Visual Studio

Create a new Console App project and select .NET 10.0 as the target framework.
Nella schermata delle opzioni aggiuntive, abilitare Enable container support o Add Docker support (il nome dell’opzione può variare a seconda della versione di Visual Studio).
Select Linux as the target operating system for the container.
Create the project. Visual Studio will generate the necessary Docker configuration files, including a Dockerfile.

Using the .NET CLI

Creare una nuova applicazione console .NET 10 e spostarsi nella directory del progetto:

dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker

Se si utilizza la CLI, aggiungere manualmente un Dockerfile nella directory radice del progetto. Lo si configurerà nei passaggi successivi per compilare, pubblicare ed eseguire l’applicazione all’interno di un contenitore Linux.

La struttura del progetto risultante dovrebbe apparire così:

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

2. Installare GroupDocs.Redaction

Aggiungere GroupDocs.Redaction for .NET al proprio progetto utilizzando Visual Studio o la .NET CLI.

Using Visual Studio

  1. Fare clic con il tasto destro sul progetto in Solution Explorer.
  2. Selezionare Manage NuGet Packages.
  3. Cercare GroupDocs.Redaction e installare il pacchetto.

Using the .NET CLI

Eseguire il seguente comando dalla directory del progetto:

dotnet add package GroupDocs.Redaction

Il pacchetto fornisce la classe Redactor per caricare e processare i documenti, insieme a varie classi e opzioni per configurare e applicare le redazioni.

3. Aggiungere il file PDF

Posizionare il PDF da elaborare nella directory del progetto e nominarlo:

document.pdf

L’applicazione cercherà in questo file la frase da redigere e creerà document_Redacted.pdf con il risultato.

Per questo esempio, il PDF contiene la parola gap.

4. Aggiungere il codice di redazione

Aprire Program.cs e sostituire il suo contenuto 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 cerca nel PDF la frase specificata. La ricerca è per impostazione predefinita case‑insensitive, quindi gap e Gap corrispondono allo stesso testo.

ReplacementOptions(Color.Black) applica una redazione a casella nera a ogni corrispondenza invece di sostituire il testo con un’altra stringa.

SaveOptions.AddSuffix aggiunge _Redacted al nome del file di output, quindi il risultato viene salvato come:

document_Redacted.pdf

Il file originale document.pdf rimane invariato.

Il metodo Apply restituisce lo stato della redazione. Verificare questo risultato nel codice di produzione prima di considerare l’output come redatto correttamente. Save può comunque creare un file di output se la redazione non è stata applicata.

5. Configurare il Dockerfile

Utilizzare il seguente Dockerfile come esempio per compilare ed eseguire la propria applicazione .NET 10 in un contenitore Linux.

L’esempio include i passaggi necessari per installare le librerie Linux e i font richiesti da GroupDocs.Redaction per l’elaborazione dei documenti.

È possibile trovare il Dockerfile completo qui.

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

L’immagine Docker include le librerie native, il supporto ai font e altre dipendenze necessarie per eseguire il codice di elaborazione dei documenti in un contenitore Linux.

6. Compilare l’immagine dell’applicazione

È possibile compilare l’immagine Docker utilizzando sia Visual Studio sia la Docker CLI.

Using Visual Studio

Se il supporto Docker è stato abilitato durante la creazione del progetto, selezionare il profilo Docker dal menu a discesa Debug o Run e avviare il progetto. Visual Studio compilerà l’immagine Docker ed eseguirà l’applicazione nel contenitore Linux configurato.

Using the Docker CLI

Aprire un terminale nella directory del progetto ed eseguire:

docker build -t PdfRedactionDocker .

Docker utilizza il Dockerfile per creare l’immagine Linux e installare le dipendenze richieste.

7. Eseguire il contenitore

Se si utilizza la Docker CLI, eseguire l’applicazione con la directory del progetto montata nel contenitore:

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

La directory del progetto è montata in /data e utilizzata come directory di lavoro del contenitore. L’applicazione quindi legge il file sorgente da:

/data/document.pdf

e salva il file redatto in:

/data/document_Redacted.pdf

Poiché /data è mappato alla directory del progetto sull’host, il PDF redatto appare accanto al file sorgente.

Su Windows PowerShell, ${PWD} si espande nella directory di lavoro corrente. Eseguire il comando dalla directory del progetto.

8. Verificare il PDF redatto

Dopo che l’applicazione termina, aprire:

document_Redacted.pdf

La frase specificata dovrebbe essere coperta da un rettangolo nero, mentre il file originale document.pdf rimane invariato.

È ora possibile utilizzare lo stesso approccio per integrare PDF text redaction with GroupDocs.Redaction for .NET in un’applicazione Docker basata su Linux.

Licenza

Senza licenza, GroupDocs.Redaction for .NET funziona in modalità di valutazione. La versione di valutazione ha limiti di utilizzo e aggiunge una filigrana al documento salvato.

Una licenza temporanea di 30 giorni è disponibile sulla pagina di licenza temporanea di GroupDocs. Le informazioni sui prezzi sono disponibili sulla pagina di acquisto di GroupDocs.Redaction for .NET.

Per saperne di più