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
- Fare clic con il tasto destro sul progetto in Solution Explorer.
- Selezionare Manage NuGet Packages.
- Cercare
GroupDocs.Redactione 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.