عند الحاجة إلى إخفاء النصوص الحساسة من ملف PDF على نظام Linux، يمكنك تشغيل GroupDocs.Redaction for .NET داخل حاوية Docker. يوضح هذا الدليل كيفية إنشاء المشروع من الصفر، إضافة ملف PDF، إخفاء عبارة محددة باستخدام صندوق أسود، وتشغيل التطبيق في حاوية Linux باستخدام .NET 10.
نسخة كاملة تعمل من المشروع متوفرة أيضًا على GitHub.
1. إنشاء مشروع .NET Console مع دعم Docker
يمكنك إنشاء المشروع باستخدام Visual Studio أو سطر أوامر .NET CLI.
باستخدام Visual Studio
- أنشئ مشروع تطبيق Console جديد واختر .NET 10.0 كإطار الهدف.
- في شاشة الخيارات الإضافية، فعّل Enable container support أو Add Docker support (قد يختلف اسم الخيار حسب نسخة Visual Studio).
- اختر Linux كنظام تشغيل الهدف للحاوية.
- أنشئ المشروع. سيقوم Visual Studio بإنشاء ملفات تكوين Docker اللازمة، بما في ذلك Dockerfile.
باستخدام .NET CLI
dotnet new console -n PdfRedactionDocker
cd PdfRedactionDocker
إذا استخدمت سطر الأوامر، أضف 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.
يتضمن المثال الخطوات اللازمة لتثبيت المكتبات والخطوط المطلوبة من قبل 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 temporary license page. تتوفر معلومات التسعير على صفحة شراء GroupDocs.Redaction for .NET purchase page.