เมื่อคุณต้องการทำการลบข้อมูลที่เป็นความลับจากไฟล์ PDF บน Linux คุณสามารถเรียกใช้ GroupDocs.Redaction for .NET ภายในคอนเทนเนอร์ Docker ได้ คู่มือฉบับนี้จะแสดงวิธีสร้างโปรเจกต์ตั้งแต่เริ่มต้น เพิ่มไฟล์ PDF ทำการลบข้อความที่ตรงกันด้วยกล่องสีดำ และรันแอปพลิเคชันในคอนเทนเนอร์ Linux ด้วย .NET 10
เวอร์ชันที่ทำงานได้สมบูรณ์ของโปรเจกต์ยังมีให้ดาวน์โหลดบน GitHub
1. สร้าง .NET Console Project พร้อมการสนับสนุน Docker
คุณสามารถสร้างโปรเจกต์ได้โดยใช้ Visual Studio หรือ .NET CLI
ใช้ Visual Studio
- สร้างโปรเจกต์ Console App ใหม่และเลือก .NET 10.0 เป็น target framework
- ในหน้าตัวเลือกเพิ่มเติม ให้เปิด Enable container support หรือ Add Docker support (ชื่อออปชันอาจแตกต่างกันตามเวอร์ชัน Visual Studio)
- เลือก Linux เป็นระบบปฏิบัติการเป้าหมายสำหรับคอนเทนเนอร์
- สร้างโปรเจกต์ 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
- คลิกขวาที่โปรเจกต์ใน Solution Explorer
- เลือก Manage NuGet Packages
- ค้นหา
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