Ketika Anda perlu menyensor teks sensitif dari PDF di Linux, Anda dapat menjalankan GroupDocs.Redaction for .NET di dalam kontainer Docker. Tutorial ini menunjukkan cara membuat proyek dari awal, menambahkan file PDF, menyensor frasa tepat dengan kotak hitam, dan menjalankan aplikasi di kontainer Linux dengan .NET 10.

Versi lengkap yang berfungsi dari proyek ini juga tersedia di GitHub.

1. Buat Proyek Konsol .NET dengan Dukungan Docker

Anda dapat membuat proyek menggunakan Visual Studio atau .NET CLI.

Menggunakan Visual Studio

Buat proyek Console App baru dan pilih .NET 10.0 sebagai kerangka target.
Pada layar opsi tambahan, aktifkan Enable container support atau Add Docker support (nama opsi dapat berbeda tergantung versi Visual Studio Anda).
Pilih Linux sebagai sistem operasi target untuk kontainer.
Buat proyek. Visual Studio akan menghasilkan file konfigurasi Docker yang diperlukan, termasuk Dockerfile.

Menggunakan .NET CLI

Buat aplikasi konsol .NET 10 baru dan masuk ke direktori proyek:

dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker

Jika Anda menggunakan CLI, tambahkan Dockerfile ke direktori root proyek secara manual. Anda akan mengkonfigurasinya pada langkah berikut untuk membangun, mempublikasikan, dan menjalankan aplikasi di dalam kontainer Linux.

Struktur proyek yang dihasilkan seharusnya terlihat seperti ini:

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

2. Instal GroupDocs.Redaction

Tambahkan GroupDocs.Redaction for .NET ke proyek Anda menggunakan Visual Studio atau .NET CLI.

Menggunakan Visual Studio

  1. Klik kanan proyek di Solution Explorer.
  2. Pilih Manage NuGet Packages.
  3. Cari GroupDocs.Redaction dan instal paketnya.

Menggunakan .NET CLI

Jalankan perintah berikut dari direktori proyek:

dotnet add package GroupDocs.Redaction

Paket ini menyediakan kelas Redactor untuk memuat dan memproses dokumen, bersama dengan berbagai kelas dan opsi untuk mengkonfigurasi serta menerapkan penyensoran.

3. Tambahkan File PDF

Letakkan PDF yang ingin Anda proses di direktori proyek dan beri nama:

document.pdf

Aplikasi akan mencari frasa yang akan disensor dalam file ini dan membuat document_Redacted.pdf dengan hasilnya.

Untuk contoh ini, PDF berisi kata gap.

4. Tambahkan Kode Penyensoran

Buka Program.cs dan ganti isinya dengan:

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 mencari PDF untuk frasa yang ditentukan. Pencarian secara default tidak sensitif huruf besar/kecil, sehingga gap dan Gap cocok dengan teks yang sama.

ReplacementOptions(Color.Black) menerapkan penyensoran kotak hitam pada setiap kecocokan alih‑alih mengganti teks dengan string lain.

SaveOptions.AddSuffix menambahkan _Redacted ke nama file output, sehingga hasil disimpan sebagai:

document_Redacted.pdf

document.pdf asli tetap tidak berubah.

Metode Apply mengembalikan status penyensoran. Periksa hasil ini dalam kode produksi sebelum menganggap output berhasil disensor. Save masih dapat membuat file output jika penyensoran tidak diterapkan.

5. Konfigurasikan Dockerfile

Gunakan Dockerfile berikut sebagai contoh untuk membangun dan menjalankan aplikasi .NET 10 Anda di kontainer Linux.

Contoh ini mencakup langkah‑langkah yang diperlukan untuk menginstal pustaka Linux dan font yang dibutuhkan oleh GroupDocs.Redaction untuk pemrosesan dokumen.

Anda dapat menemukan Dockerfile lengkap di sini.

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

Image Docker mencakup pustaka native, dukungan font, dan dependensi lain yang diperlukan untuk menjalankan kode pemrosesan dokumen di kontainer Linux.

6. Bangun Image Aplikasi

Anda dapat membangun image Docker menggunakan Visual Studio atau Docker CLI.

Menggunakan Visual Studio

Jika dukungan Docker diaktifkan saat membuat proyek, pilih profil Docker dari dropdown Debug atau Run dan jalankan proyek. Visual Studio akan membangun image Docker dan menjalankan aplikasi di kontainer Linux yang dikonfigurasi.

Menggunakan Docker CLI

Buka terminal di direktori proyek dan jalankan:

docker build -t PdfRedactionDocker .

Docker menggunakan Dockerfile untuk membuat image Linux dan menginstal dependensi yang diperlukan.

7. Jalankan Kontainer

Jika Anda menggunakan Docker CLI, jalankan aplikasi dengan direktori proyek dipasang ke dalam kontainer:

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

Direktori proyek dipasang di /data dan digunakan sebagai direktori kerja kontainer. Aplikasi kemudian membaca file sumber dari:

/data/document.pdf

dan menyimpan file yang disensor ke:

/data/document_Redacted.pdf

Karena /data dipetakan ke direktori proyek di host, PDF yang disensor muncul di samping file sumber.

Di Windows PowerShell, ${PWD} memperluas ke direktori kerja saat ini. Jalankan perintah dari direktori proyek.

8. Periksa PDF yang Disensor

Setelah aplikasi selesai, buka:

document_Redacted.pdf

Frasa yang ditentukan harus tertutup oleh persegi panjang hitam, sementara document.pdf asli tetap tidak berubah.

Anda sekarang dapat menggunakan pendekatan yang sama untuk mengintegrasikan PDF text redaction with GroupDocs.Redaction for .NET ke dalam aplikasi Docker berbasis Linux.

Lisensi

Tanpa lisensi, GroupDocs.Redaction for .NET berjalan dalam mode evaluasi. Versi evaluasi memiliki batas penggunaan dan menambahkan watermark pada dokumen yang disimpan.

Lisensi sementara 30 hari tersedia di halaman lisensi sementara GroupDocs. Informasi harga tersedia di halaman pembelian GroupDocs.Redaction for .NET.

Pelajari lebih lanjut