Kiedy potrzebujesz zamazać wrażliwy tekst w pliku PDF w systemie Linux, możesz uruchomić GroupDocs.Redaction for .NET w kontenerze Docker. Ten samouczek pokazuje, jak od podstaw utworzyć projekt, dodać plik PDF, zamazać dokładną frazę czarnym prostokątem oraz uruchomić aplikację w kontenerze Linux z .NET 10.
Kompletną działającą wersję projektu znajdziesz również na GitHub.
1. Utwórz projekt konsolowy .NET z obsługą Docker
Projekt możesz utworzyć w Visual Studio lub przy użyciu .NET CLI.
Za pomocą Visual Studio
- Utwórz nowy projekt typu Console App i wybierz .NET 10.0 jako docelowy framework.
- Na ekranie dodatkowych opcji włącz Enable container support lub Add Docker support (nazwa opcji może się różnić w zależności od wersji Visual Studio).
- Wybierz Linux jako docelowy system operacyjny kontenera.
- Utwórz projekt. Visual Studio wygeneruje niezbędne pliki konfiguracyjne Docker, w tym Dockerfile.
Za pomocą .NET CLI
Utwórz nową aplikację konsolową .NET 10 i przejdź do katalogu projektu:
dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker
Jeśli używasz CLI, ręcznie dodaj Dockerfile do katalogu głównego projektu. Skonfigurujesz go w kolejnych krokach, aby zbudować, opublikować i uruchomić aplikację w kontenerze Linux.
Struktura projektu po zakończeniu powinna wyglądać tak:
PdfRedactionDocker/
├── Dockerfile
├── PdfRedactionDocker.csproj
└── Program.cs
2. Zainstaluj GroupDocs.Redaction
Dodaj GroupDocs.Redaction for .NET do swojego projektu, używając Visual Studio lub .NET CLI.
Za pomocą Visual Studio
- Kliknij prawym przyciskiem myszy projekt w Solution Explorer.
- Wybierz Manage NuGet Packages.
- Wyszukaj
GroupDocs.Redactioni zainstaluj pakiet.
Za pomocą .NET CLI
Wykonaj następujące polecenie w katalogu projektu:
dotnet add package GroupDocs.Redaction
Pakiet udostępnia klasę Redactor do ładowania i przetwarzania dokumentów oraz różne klasy i opcje konfiguracyjne do stosowania redakcji.
3. Dodaj plik PDF
Umieść PDF, który ma zostać przetworzony, w katalogu projektu i nazwij go:
document.pdf
Aplikacja będzie przeszukiwać ten plik w poszukiwaniu frazy do zamazania i utworzy document_Redacted.pdf z wynikiem.
W tym przykładzie PDF zawiera słowo gap.
4. Dodaj kod redakcji
Otwórz Program.cs i zamień jego zawartość na:
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 przeszukuje PDF w poszukiwaniu podanej frazy. Wyszukiwanie jest domyślnie nieczułe na wielkość liter, więc gap i Gap pasują do tego samego tekstu.
ReplacementOptions(Color.Black) nakłada czarną ramkę redakcyjną na każde dopasowanie zamiast zastępowania tekstu innym ciągiem.
SaveOptions.AddSuffix dodaje _Redacted do nazwy pliku wyjściowego, więc wynik zostaje zapisany jako:
document_Redacted.pdf
Oryginalny document.pdf pozostaje niezmieniony.
Metoda Apply zwraca status redakcji. W kodzie produkcyjnym warto sprawdzić ten wynik przed uznaniem wyjścia za pomyślnie zamazane. Save może nadal utworzyć plik wyjściowy, nawet jeśli redakcja nie została zastosowana.
5. Skonfiguruj Dockerfile
Użyj poniższego Dockerfile jako przykładu do budowania i uruchamiania aplikacji .NET 10 w kontenerze Linux.
Przykład zawiera kroki niezbędne do zainstalowania bibliotek Linux oraz czcionek wymaganych przez GroupDocs.Redaction do przetwarzania dokumentów.
Pełny Dockerfile znajdziesz tutaj.
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
Obraz Docker zawiera natywne biblioteki, obsługę czcionek oraz inne zależności potrzebne do uruchomienia kodu przetwarzającego dokumenty w kontenerze Linux.
6. Zbuduj obraz aplikacji
Obraz Docker możesz zbudować zarówno w Visual Studio, jak i przy użyciu Docker CLI.
Za pomocą Visual Studio
Jeśli obsługa Docker została włączona przy tworzeniu projektu, wybierz profil Docker z listy rozwijanej Debug lub Run i uruchom projekt. Visual Studio zbuduje obraz Docker i uruchomi aplikację w skonfigurowanym kontenerze Linux.
Za pomocą Docker CLI
Otwórz terminal w katalogu projektu i uruchom:
docker build -t PdfRedactionDocker .
Docker użyje Dockerfile do stworzenia obrazu Linux i zainstaluje wymagane zależności.
7. Uruchom kontener
Jeśli korzystasz z Docker CLI, uruchom aplikację, montując katalog projektu do kontenera:
docker run --rm \
-v "${PWD}:/data" \
-w /data \
--entrypoint dotnet \
PdfRedactionDocker \
/app/PdfRedactionDocker.dll
Katalog projektu jest montowany pod /data i używany jako katalog roboczy kontenera. Aplikacja odczytuje więc plik źródłowy z:
/data/document.pdf
i zapisuje zamazany plik do:
/data/document_Redacted.pdf
Ponieważ /data jest mapowane na katalog projektu na hoście, zamazany PDF pojawia się obok pliku źródłowego.
W PowerShellu systemu Windows ${PWD} rozwija się do bieżącego katalogu roboczego. Uruchom polecenie z katalogu projektu.
8. Sprawdź zamazany PDF
Po zakończeniu działania aplikacji otwórz:
document_Redacted.pdf
Określona fraza powinna być przykryta czarnym prostokątem, a oryginalny document.pdf pozostaje niezmieniony.
Teraz możesz zastosować tę samą metodę, aby zintegrować PDF text redaction with GroupDocs.Redaction for .NET w aplikacji Docker działającej na Linuxie.
Licencjonowanie
Bez licencji GroupDocs.Redaction for .NET działa w trybie ewaluacyjnym. Wersja ewaluacyjna ma ograniczenia użytkowania i dodaje znak wodny do zapisanego dokumentu.
30‑dniowa licencja tymczasowa jest dostępna na stronie licencji tymczasowych GroupDocs. Informacje o cenach znajdziesz na stronie zakupu GroupDocs.Redaction for .NET purchase page.