כאשר יש צורך למחוק טקסט רגיש מקובץ PDF בלינוקס, ניתן להריץ GroupDocs.Redaction for .NET בתוך מכולת Docker. מדריך זה מציג כיצד ליצור את הפרויקט מאפס, להוסיף קובץ PDF, למחוק ביטוי מדויק עם תיבה שחורה, ולהפעיל את היישום במכולת לינוקס עם .NET 10.
גרסה מלאה עובדת של הפרויקט זמינה גם ב-GitHub.
1. יצירת פרויקט קונסול .NET עם תמיכת Docker
ניתן ליצור את הפרויקט באמצעות Visual Studio או באמצעות .NET CLI.
באמצעות Visual Studio
- צור פרויקט Console App חדש ובחר .NET 10.0 כ‑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 כוללת את הספריות הטבעיות, תמיכת הגופנים ותלויות נוספות הנדרשות להפעלת קוד עיבוד מסמכים במכולת Linux.
6. בניית תמונת היישום
ניתן לבנות את תמונת Docker באמצעות Visual Studio או Docker CLI.
באמצעות Visual Studio
אם תמיכת Docker הופעלה בעת יצירת הפרויקט, בחר בפרופיל Docker בתפריט Debug או Run והפעל את הפרויקט. 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 המחוק מופיע לצד הקובץ המקורי.
ב‑PowerShell של Windows, ${PWD} מתרחב לתיקייה הפעילה הנוכחית. הפעל את הפקודה מתיקיית הפרויקט.
8. בדיקת קובץ ה‑PDF המחוק
לאחר שהיישום מסתיים, פתח:
document_Redacted.pdf
הביטוי שצוין צריך להיות מכוסה בריבוע שחור, בעוד שהקובץ המקורי document.pdf נשאר ללא שינוי.
כעת ניתן להשתמש בגישה זו כדי לשלב PDF text redaction with GroupDocs.Redaction for .NET ביישום Docker מבוסס Linux.
רישוי
ללא רישיון, GroupDocs.Redaction for .NET פועל במצב הערכה. גרסת ההערכה כוללת מגבלות שימוש ומוסיפה סימן מים למסמך השמור.
רישיון זמני של 30 יום זמין ב‑דף הרישיון הזמני של GroupDocs. מידע על תמחור ניתן למצוא ב‑דף הרכישה של GroupDocs.Redaction for .NET.