Když potřebujete na Linuxu zakrýt citlivý text v PDF, můžete spustit GroupDocs.Redaction for .NET v Docker kontejneru. Tento tutoriál ukazuje, jak vytvořit projekt od nuly, přidat PDF soubor, zakrýt přesnou frázi černým rámečkem a spustit aplikaci v Linux kontejneru s .NET 10.

Kompletní funkční verze projektu je také k dispozici na GitHub.

1. Vytvoření .NET Console projektu s podporou Dockeru

Projekt můžete vytvořit pomocí Visual Studio nebo .NET CLI.

Použití Visual Studio

  1. Vytvořte nový projekt Console App a jako cílový framework zvolte .NET 10.0.
  2. Na obrazovce s dalšími možnostmi povolte Enable container support nebo Add Docker support (název volby se může lišit podle verze Visual Studio).
  3. Vyberte Linux jako cílový operační systém pro kontejner.
  4. Projekt vytvořte. Visual Studio vygeneruje potřebné Docker konfigurační soubory, včetně Dockerfile.

Použití .NET CLI

dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker

Pokud používáte CLI, přidejte Dockerfile do kořenového adresáře projektu ručně. V následujících krocích jej nakonfigurujete pro sestavení, publikaci a spuštění aplikace v Linux kontejneru.

Výsledná struktura projektu by měla vypadat takto:

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

2. Instalace GroupDocs.Redaction

Přidejte GroupDocs.Redaction for .NET do svého projektu pomocí Visual Studio nebo .NET CLI.

Použití Visual Studio

  1. Klikněte pravým tlačítkem na projekt v Solution Explorer.
  2. Vyberte Manage NuGet Packages.
  3. Vyhledejte GroupDocs.Redaction a nainstalujte balíček.

Použití .NET CLI

dotnet add package GroupDocs.Redaction

Balíček poskytuje třídu Redactor pro načítání a zpracování dokumentů spolu s různými třídami a možnostmi pro konfiguraci a aplikaci zakrytí.

3. Přidání PDF souboru

Umístěte PDF, který chcete zpracovat, do adresáře projektu a pojmenujte jej:

document.pdf

Aplikace bude tento soubor prohledávat na frázi k zakrytí a vytvoří document_Redacted.pdf s výsledkem.

Pro tento příklad PDF obsahuje slovo gap.

4. Přidání kódu pro zakrytí

Otevřete Program.cs a nahraďte jeho obsah následujícím kódem:

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 prohledává PDF podle zadané fráze. Vyhledávání je ve výchozím nastavení necitlivé na velikost písmen, takže gap i Gap odpovídají stejnému textu.

ReplacementOptions(Color.Black) použije černý rámeček pro každou nalezenou shodu místo nahrazení textu jiným řetězcem.

SaveOptions.AddSuffix přidá _Redacted k názvu výstupního souboru, takže výsledek bude uložen jako:

document_Redacted.pdf

Původní document.pdf zůstane beze změny.

Metoda Apply vrací stav zakrytí. V produkčním kódu byste měli tento výsledek zkontrolovat, než budete považovat výstup za úspěšně zakrytý. Save může i tak vytvořit výstupní soubor, pokud zakrytí nebylo aplikováno.

5. Konfigurace Dockerfile

Použijte následující Dockerfile jako ukázku pro sestavení a spuštění vaší .NET 10 aplikace v Linux kontejneru.

Příklad zahrnuje kroky potřebné k instalaci Linux knihoven a fontů, které GroupDocs.Redaction vyžaduje pro zpracování dokumentů.

Kompletní Dockerfile najdete zde.

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

Docker image obsahuje nativní knihovny, podporu fontů a další závislosti potřebné pro spuštění kódu pro zpracování dokumentů v Linux kontejneru.

6. Sestavení image aplikace

Image Dockeru můžete sestavit buď pomocí Visual Studio, nebo Docker CLI.

Použití Visual Studio

Pokud byla podpora Dockeru povolena při vytváření projektu, vyberte Docker profil v rozbalovacím seznamu Debug nebo Run a spusťte projekt. Visual Studio sestaví Docker image a spustí aplikaci v nakonfigurovaném Linux kontejneru.

Použití Docker CLI

Otevřete terminál v adresáři projektu a spusťte:

docker build -t PdfRedactionDocker .

Docker použije Dockerfile k vytvoření Linux image a instalaci požadovaných závislostí.

7. Spuštění kontejneru

Pokud používáte Docker CLI, spusťte aplikaci s připojeným adresářem projektu do kontejneru:

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

Adresář projektu je připojen na /data a slouží jako pracovní adresář kontejneru. Aplikace tedy čte zdrojový soubor z:

/data/document.pdf

a ukládá zakrytý soubor do:

/data/document_Redacted.pdf

Protože /data je mapováno na adresář projektu na hostiteli, zakrytý PDF se objeví vedle původního souboru.

V PowerShellu na Windows ${PWD} rozšíří na aktuální pracovní adresář. Spusťte příkaz z adresáře projektu.

8. Kontrola zakrytého PDF

Po dokončení aplikace otevřete:

document_Redacted.pdf

Zadaná fráze by měla být zakryta černým obdélníkem, zatímco původní document.pdf zůstane beze změny.

Nyní můžete stejný postup použít k integraci PDF text redaction with GroupDocs.Redaction for .NET do Docker aplikace běžící na Linuxu.

Licencování

Bez licence běží GroupDocs.Redaction for .NET v evaluačním režimu. Evaluační verze má omezení používání a přidává vodoznak do uloženého dokumentu.

30‑denní dočasná licence je k dispozici na GroupDocs temporary license page. Informace o cenách najdete na stránce nákupu GroupDocs.Redaction for .NET purchase page.

Další informace