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
- Klik kanan proyek di Solution Explorer.
- Pilih Manage NuGet Packages.
- Cari
GroupDocs.Redactiondan 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.