Linux 上の PDF から機密性の高いテキストを墨消しする必要がある場合は、GroupDocs.Redaction for .NET を Docker コンテナ内で実行できます。このチュートリアルでは、プロジェクトを最初から作成し、PDF ファイルを追加し、特定のフレーズを黒いボックスで墨消しし、.NET 10 を使用して Linux コンテナ内でアプリケーションを実行する方法を説明します。

完全に動作するプロジェクトのバージョンも GitHub で利用できます。

1. Docker サポート付きの .NET コンソールプロジェクトを作成する

Visual Studio または .NET CLI を使用してプロジェクトを作成できます。

Visual Studio を使用する場合

新しいコンソールアプリプロジェクトを作成し、ターゲットフレームワークとして .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 をインストールする

Visual Studio または .NET CLI を使用して、プロジェクトに GroupDocs.Redaction for .NET を追加します。

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 を使用して、Linux コンテナ内で .NET 10 アプリケーションをビルドおよび実行するサンプルとします。

この例には、ドキュメント処理のために GroupDocs.Redaction が必要とする Linux ライブラリとフォントをインストールする手順が含まれています。

完全な 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 サポートが有効になっている場合は、Debug または Run ドロップダウンから Docker プロファイルを選択し、プロジェクトを開始します。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 は変更されません。

これで、同じアプローチを使用して GroupDocs.Redaction for .NET を使用した PDF テキストの墨消し を Linux ベースの Docker アプリケーションに統合できます。

ライセンス

ライセンスがない場合、GroupDocs.Redaction for .NET は評価モードで実行されます。評価版には使用制限があり、保存されたドキュメントに透かしが追加されます。

30日間の一時ライセンスは、GroupDocs 一時ライセンスページ で入手できます。価格情報は、GroupDocs.Redaction for .NET の 購入ページ で確認できます。

詳細情報