Wanneer je gevoelige tekst uit een PDF op Linux wilt redigeren, kun je GroupDocs.Redaction for .NET uitvoeren in een Docker‑container. Deze tutorial laat zien hoe je het project vanaf nul maakt, een PDF‑bestand toevoegt, een exacte zin roodt met een zwart vak, en de applicatie uitvoert in een Linux‑container met .NET 10.
Een volledige werkende versie van het project is ook beschikbaar op GitHub.
1. Maak een .NET Console Project met Docker‑ondersteuning
Je kunt het project maken met Visual Studio of de .NET CLI.
Met Visual Studio
Maak een nieuw Console App‑project en selecteer .NET 10.0 als doel‑framework.
Op het scherm met extra opties, schakel Enable container support of Add Docker support in (de naam van de optie kan variëren afhankelijk van je Visual Studio‑versie).
Selecteer Linux als het doel‑besturingssysteem voor de container.
Maak het project aan. Visual Studio genereert de benodigde Docker‑configuratiebestanden, inclusief een Dockerfile.
Met de .NET CLI
Maak een nieuwe .NET 10 console‑applicatie en navigeer naar de projectmap:
dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker
Als je de CLI gebruikt, voeg dan handmatig een Dockerfile toe aan de hoofdmap van het project. Je zult deze in de volgende stappen configureren om de applicatie te bouwen, publiceren en uit te voeren in een Linux‑container.
De resulterende projectstructuur zou er als volgt uit moeten zien:
PdfRedactionDocker/
├── Dockerfile
├── PdfRedactionDocker.csproj
└── Program.cs
2. Installeer GroupDocs.Redaction
Voeg GroupDocs.Redaction for .NET toe aan je project via Visual Studio of de .NET CLI.
Met Visual Studio
- Klik met de rechtermuisknop op het project in Solution Explorer.
- Selecteer Manage NuGet Packages.
- Zoek naar
GroupDocs.Redactionen installeer het pakket.
Met de .NET CLI
Voer het volgende commando uit vanuit de projectmap:
dotnet add package GroupDocs.Redaction
Het pakket levert de Redactor‑klasse voor het laden en verwerken van documenten, samen met diverse klassen en opties voor het configureren en toepassen van redactioneringen.
3. Voeg het PDF‑bestand toe
Plaats de PDF die je wilt verwerken in de projectmap en noem deze:
document.pdf
De applicatie zal dit bestand doorzoeken op de te redigeren zin en document_Redacted.pdf aanmaken met het resultaat.
Voor dit voorbeeld bevat de PDF het woord gap.
4. Voeg de Redaction‑code toe
Open Program.cs en vervang de inhoud door:
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 zoekt in de PDF naar de opgegeven zin. De zoekopdracht is standaard niet hoofdlettergevoelig, dus gap en Gap komen overeen met dezelfde tekst.
ReplacementOptions(Color.Black) past een black box redaction toe op elke overeenkomst in plaats van de tekst te vervangen door een andere string.
SaveOptions.AddSuffix voegt _Redacted toe aan de bestandsnaam van de output, zodat het resultaat wordt opgeslagen als:
document_Redacted.pdf
Het originele document.pdf blijft ongewijzigd.
De Apply‑methode retourneert de redaction‑status. Controleer dit resultaat in productcode voordat je de output als succesvol geredigeerd beschouwt. Save kan nog steeds een output‑bestand aanmaken als de redaction niet is toegepast.
5. Configureer de Dockerfile
Gebruik de volgende Dockerfile als voorbeeld voor het bouwen en uitvoeren van je .NET 10‑applicatie in een Linux‑container.
Het voorbeeld bevat de stappen die nodig zijn om de Linux‑bibliotheken en lettertypen te installeren die GroupDocs.Redaction nodig heeft voor documentverwerking.
Je kunt de volledige Dockerfile hier.
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
De Docker‑image bevat de native bibliotheken, lettertype‑ondersteuning en andere afhankelijkheden die nodig zijn om documentverwerkingscode uit te voeren in een Linux‑container.
6. Bouw de Applicatie‑image
Je kunt de Docker‑image bouwen met Visual Studio of de Docker CLI.
Met Visual Studio
Als Docker‑ondersteuning was ingeschakeld bij het aanmaken van het project, selecteer dan het Docker‑profiel in de Debug‑ of Run‑keuzelijst en start het project. Visual Studio bouwt de Docker‑image en voert de applicatie uit in de geconfigureerde Linux‑container.
Met de Docker CLI
Open een terminal in de projectmap en voer uit:
docker build -t PdfRedactionDocker .
Docker gebruikt de Dockerfile om de Linux‑image te maken en de vereiste afhankelijkheden te installeren.
7. Voer de Container uit
Als je de Docker CLI gebruikt, voer dan de applicatie uit met de projectmap gemount in de container:
docker run --rm \
-v "${PWD}:/data" \
-w /data \
--entrypoint dotnet \
PdfRedactionDocker \
/app/PdfRedactionDocker.dll
De projectmap wordt gemount op /data en gebruikt als werkmap van de container. De applicatie leest daarom het bronbestand vanaf:
/data/document.pdf
en slaat het geredigeerde bestand op naar:
/data/document_Redacted.pdf
Omdat /data is gekoppeld aan de projectmap op de host, verschijnt de geredigeerde PDF naast het bronbestand.
In Windows PowerShell wordt ${PWD} uitgebreid naar de huidige werkmap. Voer het commando uit vanuit de projectmap.
8. Controleer de Geredigeerde PDF
Nadat de applicatie is voltooid, open:
document_Redacted.pdf
De opgegeven zin zou bedekt moeten zijn met een zwart rechthoek, terwijl het originele document.pdf ongewijzigd blijft.
Je kunt nu dezelfde aanpak gebruiken om PDF‑tekstredaction met GroupDocs.Redaction for .NET te integreren in een Linux‑gebaseerde Docker‑applicatie.
Licenties
Zonder licentie draait GroupDocs.Redaction for .NET in evaluatiemodus. De evaluatieversie heeft gebruikslimieten en voegt een watermerk toe aan het opgeslagen document.
Een tijdelijke licentie van 30 dagen is beschikbaar op de GroupDocs tijdelijke licentiepagina. Prijsinformatie is beschikbaar op de GroupDocs.Redaction for .NET aankooppagina.