เมื่อคุณต้องการทำการลบข้อมูลที่เป็นความลับจากไฟล์ PDF บน Linux คุณสามารถเรียกใช้ GroupDocs.Redaction for .NET ภายในคอนเทนเนอร์ Docker ได้ คู่มือฉบับนี้จะแสดงวิธีสร้างโปรเจกต์ตั้งแต่เริ่มต้น เพิ่มไฟล์ PDF ทำการลบข้อความที่ตรงกันด้วยกล่องสีดำ และรันแอปพลิเคชันในคอนเทนเนอร์ Linux ด้วย .NET 10

เวอร์ชันที่ทำงานได้สมบูรณ์ของโปรเจกต์ยังมีให้ดาวน์โหลดบน GitHub

1. สร้าง .NET Console Project พร้อมการสนับสนุน Docker

คุณสามารถสร้างโปรเจกต์ได้โดยใช้ Visual Studio หรือ .NET CLI

ใช้ Visual Studio

  1. สร้างโปรเจกต์ Console App ใหม่และเลือก .NET 10.0 เป็น target framework
  2. ในหน้าตัวเลือกเพิ่มเติม ให้เปิด Enable container support หรือ Add Docker support (ชื่อออปชันอาจแตกต่างกันตามเวอร์ชัน Visual Studio)
  3. เลือก Linux เป็นระบบปฏิบัติการเป้าหมายสำหรับคอนเทนเนอร์
  4. สร้างโปรเจกต์ Visual Studio จะสร้างไฟล์กำหนดค่า Docker ที่จำเป็นรวมถึง Dockerfile

ใช้ .NET CLI

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 image นี้รวมไลบรารีเนทีฟ, การสนับสนุนฟอนต์, และการพึ่งพาอื่น ๆ ที่จำเป็นสำหรับการรันโค้ดประมวลผลเอกสารในคอนเทนเนอร์ Linux

6. สร้าง Image ของแอปพลิเคชัน

คุณสามารถสร้าง Docker image ได้โดยใช้ Visual Studio หรือ Docker CLI

ใช้ Visual Studio

หากเปิดใช้งานการสนับสนุน Docker ขณะสร้างโปรเจกต์ ให้เลือกโปรไฟล์ Docker จากเมนูดรอปดาวน์ Debug หรือ Run แล้วเริ่มโปรเจกต์ Visual Studio จะสร้าง Docker image และรันแอปพลิเคชันในคอนเทนเนอร์ 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 และทำหน้าที่เป็น working directory ของคอนเทนเนอร์ ดังนั้นแอปจะอ่านไฟล์ต้นฉบับจาก

/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 ได้แล้ว

Licensing

หากไม่มีไลเซนส์ GroupDocs.Redaction for .NET จะทำงานในโหมดประเมินผล รุ่นประเมินมีข้อจำกัดการใช้งานและจะใส่ลายน้ำลงในเอกสารที่บันทึก

ไลเซนส์ชั่วคราว 30 วันพร้อมใช้งานได้จาก หน้าไลเซนส์ชั่วคราวของ GroupDocs ข้อมูลด้านราคาอยู่บนหน้า purchase page ของ GroupDocs.Redaction for .NET

Learn more