Когда вам нужно удалить конфиденциальный текст из 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 text redaction with GroupDocs.Redaction for .NET в Docker‑приложение на базе Linux.

Лицензирование

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

30‑дневная временная лицензия доступна на странице временных лицензий GroupDocs. Информация о ценах доступна на странице покупки GroupDocs.Redaction for .NET purchase page.

Узнать больше