Коли потрібно редагувати конфіденційний текст у PDF на Linux, можна запустити GroupDocs.Redaction for .NET у контейнері Docker. У цьому посібнику показано, як створити проєкт з нуля, додати PDF-файл, відредагувати точну фразу за допомогою чорного прямокутника та запустити застосунок у контейнері Linux з .NET 10.

Повністю робоча версія проєкту також доступна на GitHub.

1. Створення .NET консольного проєкту з підтримкою Docker

Ви можете створити проєкт за допомогою Visual Studio або .NET CLI.

За допомогою Visual Studio

Створіть новий проєкт Console App і виберіть .NET 10.0 як цільову платформу.
На екрані додаткових параметрів увімкніть Enable container support або Add Docker support (назва параметра може відрізнятися залежно від версії Visual Studio).
Виберіть Linux як цільову операційну систему для контейнера.
Створіть проєкт. Visual Studio згенерує необхідні файли конфігурації Docker, включно з Dockerfile.

За допомогою .NET CLI

Створіть новий консольний застосунок .NET 10 і перейдіть до каталогу проєкту:

dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker

Якщо ви використовуєте CLI, додайте Dockerfile до кореневого каталогу проєкту вручну. На наступних кроках ви налаштуєте його для збирання, публікації та запуску застосунку всередині контейнера Linux.

Структура проєкту має виглядати так:

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

2. Встановлення GroupDocs.Redaction

Додайте GroupDocs.Redaction for .NET до проєкту за допомогою Visual Studio або .NET CLI.

За допомогою Visual Studio

  1. Клацніть правою кнопкою миші проєкт у Solution Explorer.
  2. Виберіть Manage NuGet Packages.
  3. Знайдіть GroupDocs.Redaction і встановіть пакет.

За допомогою .NET CLI

Виконайте наведену нижче команду з каталогу проєкту:

dotnet add package GroupDocs.Redaction

Пакет надає клас Redactor для завантаження та обробки документів, а також різні класи й параметри для налаштування та застосування редагування.

3. Додавання PDF‑файлу

Помістіть PDF-файл, який потрібно обробити, до каталогу проєкту та назвіть його:

document.pdf

Застосунок шукатиме в цьому файлі фразу для редагування та створить document_Redacted.pdf з результатом.

У цьому прикладі PDF містить слово gap.

4. Додавання коду редагування

Відкрийте Program.cs і замініть його вміст на:

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 шукає в PDF зазначену фразу. Пошук за замовчуванням нечутливий до регістру, тому gap і Gap відповідають одному й тому ж тексту.

ReplacementOptions(Color.Black) застосовує чорну коробку редагування до кожного збігу замість заміни тексту на інший рядок.

SaveOptions.AddSuffix додає _Redacted до імені вихідного файлу, тому результат зберігається як:

document_Redacted.pdf

Оригінальний файл document.pdf залишається незмінним.

Метод Apply повертає статус редагування. Перевірте цей результат у робочому коді перед тим, як вважати вихідний файл успішно відредагованим. Метод Save все ще може створити вихідний файл, якщо редагування не було застосоване.

5. Налаштування Dockerfile

Використайте наступний Dockerfile як приклад для побудови та запуску вашого застосунку .NET 10 у контейнері Linux.

Приклад включає кроки, необхідні для встановлення бібліотек Linux і шрифтів, потрібних GroupDocs.Redaction для обробки документів.

Повний Dockerfile можна знайти тут.

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 включає нативні бібліотеки, підтримку шрифтів та інші залежності, необхідні для запуску коду обробки документів у контейнері Linux.

6. Побудова образу застосунку

Ви можете побудувати образ Docker, використовуючи або Visual Studio, або Docker CLI.

Використання Visual Studio

Якщо підтримка Docker була увімкнена під час створення проекту, виберіть профіль Docker у випадаючому списку Debug або Run і запустіть проект. Visual Studio побудує образ Docker і запустить застосунок у налаштованому контейнері Linux.

Використання Docker CLI

Відкрийте термінал у директорії проекту та виконайте:

docker build -t PdfRedactionDocker .

Docker використовує Dockerfile для створення образу Linux та встановлення необхідних залежностей.

7. Запуск контейнера

Якщо ви використовуєте Docker CLI, запустіть застосунок з директорією проекту, змонтованою в контейнер:

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

Директорія проекту змонтована в /data і використовується як робоча директорія контейнера. Застосунок тому читає вихідний файл з:

/data/document.pdf

і зберігає відредагований файл у:

/data/document_Redacted.pdf

Оскільки /data змонтовано в директорію проекту на хості, відредагований PDF з’являється поруч із вихідним файлом.

У Windows PowerShell ${PWD} розгортається до поточної робочої директорії. Виконайте команду з директорії проекту.

8. Перевірка відредагованого PDF

Після завершення роботи застосунку відкрийте:

document_Redacted.pdf

Вказана фраза повинна бути закрита чорним прямокутником, тоді як оригінальний document.pdf залишається незмінним.

Тепер ви можете використовувати той самий підхід для інтеграції редагування тексту PDF за допомогою GroupDocs.Redaction для .NET у застосунок Docker на базі Linux.

Ліцензування

Без ліцензії GroupDocs.Redaction для .NET працює в режимі оцінки. Оцінювальна версія має обмеження на використання та додає водяний знак до збереженого документа.

30‑денна тимчасова ліцензія доступна на сторінці тимчасової ліцензії GroupDocs. Інформація про ціни доступна на сторінці купівлі GroupDocs.Redaction для .NET.

Дізнатись більше