إبراز الحرف في ملف PDF

مقدمة

عندما يتعلق الأمر بالعمل مع ملفات PDF، غالبًا ما تنشأ الحاجة إلى تمييز النص أو الأحرف - سواء لأغراض أكاديمية أو تحرير أو مجرد تحسين قابلية القراءة. تخيل أن لديك مستندًا جميلًا، ولكنك تريد التأكيد على أجزاء معينة. هنا يأتي التمييز في الصورة! في هذا البرنامج التعليمي، سنتعمق في كيفية تمييز الأحرف في ملف PDF باستخدام مكتبة Aspose.PDF القوية لـ .NET.

المتطلبات الأساسية

قبل أن ننتقل إلى الكود، دعنا نتأكد من أن لدينا كل ما نحتاجه. إليك ما ستحتاج إليه:

  1. بيئة التطوير: يفترض هذا البرنامج التعليمي أنك تعمل في Visual Studio أو بيئة تطوير متكاملة مماثلة لـ .NET.
  2. مكتبة Aspose.PDF لـ .NET: إذا لم تكن قد قمت بذلك بالفعل، فيمكنكتحميله هنا وأضفها إلى مشروعك.
  3. المعرفة الأساسية بلغة C#: ستساعدك المعرفة الأساسية في برمجة C# على فهم التنفيذ بسهولة.
  4. مستند PDF: يجب أن يكون لديك ملف PDF نموذجي جاهز للعمل عليه. يمكنك إنشاء ملف أو استخدام مستند موجود.

استيراد الحزم

للبدء، نحتاج إلى استيراد مساحات الأسماء الضرورية. للقيام بذلك، ستحتاج إلى تضمينها في أعلى ملف C# الخاص بك:

using System.IO;
using Aspose.Pdf;
using Aspose.Pdf.Facades;
using Aspose.Pdf.Devices;
using Aspose.Pdf.Text;
using System;
using System.Drawing;

تعد هذه الحزم ضرورية لإنشاء مستندات PDF ومعالجتها ومعالجتها باستخدام مكتبة Aspose.

الآن، دعنا نقوم بتقسيم العملية إلى خطوات سهلة الفهم لتسليط الضوء على الأحرف في ملف PDF الخاص بك.

الخطوة 1: تهيئة مستند PDF

الخطوة الأولى هي تهيئة مستند PDF الخاص بك. يتضمن ذلك تحميل ملف PDF الذي ستعمل عليه. وإليك كيفية القيام بذلك:

string dataDir = "YOUR DOCUMENT DIRECTORY"; // تأكد من تعيين المسار الصحيح.
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(dataDir + "input.pdf");

في هذه القطعة، استبدلYOUR DOCUMENT DIRECTORY مع المسار الفعلي على جهازك حيث يوجد ملف PDF المدخل.Aspose.Pdf.Document يتم إنشاء الفئة لتحميل ملف PDF الخاص بك.

الخطوة 2: إعداد عملية العرض

بعد ذلك، نحتاج إلى إعداد عملية عرض المستند. وهذا أمر ضروري لتسليط الضوء بدقة على الأحرف الموجودة على الصفحة.

int resolution = 150; // ضبط الدقة لالتقاط الصورة.
using (MemoryStream ms = new MemoryStream())
{
    PdfConverter conv = new PdfConverter(pdfDocument);
    conv.Resolution = new Resolution(resolution, resolution);
    conv.GetNextImage(ms, System.Drawing.Imaging.ImageFormat.Png);
    Bitmap bmp = (Bitmap)Bitmap.FromStream(ms);

نحن نحدد دقة من أجل الوضوح، مما يسمح بعرض النص بشكل صحيح.PdfConverterيحول صفحات PDF إلى صور حتى نتمكن من الرسم عليها.

الخطوة 3: إنشاء كائن رسومي للرسم

بعد إعداد عملية الرسم، نحتاج إلى إنشاء كائن رسومي سنقوم فيه بتنفيذ عملية التمييز:

using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp))
{
    float scale = resolution / 72f; // عامل المقياس.
    gr.Transform = new System.Drawing.Drawing2D.Matrix(scale, 0, 0, -scale, 0, bmp.Height);

هنا، نقوم بإنشاء كائن رسومي من صورة الخريطة النقطية. تساعد عملية التحويل في ضبط العرض بحيث يتطابق مع الدقة المطلوبة بشكل صحيح.

الخطوة 4: قم بالتنقل عبر كل صفحة وتمييز النص

الآن، دعنا ننتقل عبر كل صفحة في ملف PDF ونبحث عن أجزاء النص التي نريد تسليط الضوء عليها:

for (int i = 0; i < pdfDocument.Pages.Count; i++)
{
    Page page = pdfDocument.Pages[i + 1]; // تتم فهرسة الصفحات برقم 1 في Aspose.
    TextFragmentAbsorber textFragmentAbsorber = new TextFragmentAbsorber(@"[\S]+");
    textFragmentAbsorber.TextSearchOptions.IsRegularExpressionUsed = true;
    page.Accept(textFragmentAbsorber);

نقوم بالوصول إلى كل صفحة والبحث عن كل النص باستخدامTextFragmentAbsorber . نمط التعبير العادي@"[\S]+" يلتقط جميع الأحرف غير المسافات البيضاء.

الخطوة 5: استخراج أجزاء من النص وتسليط الضوء عليها

الآن حان الوقت لاستخراج أجزاء النص وتمييزها. تتضمن هذه العملية رسم مستطيلات حول الأحرف التي نريد تمييزها:

TextFragmentCollection textFragmentCollection = textFragmentAbsorber.TextFragments;

foreach (TextFragment textFragment in textFragmentCollection)
{
    // تسليط الضوء على المنطق هنا
    for (int segNum = 1; segNum <= textFragment.Segments.Count; segNum++)
    {
        TextSegment segment = textFragment.Segments[segNum];
        for (int charNum = 1; charNum <= segment.Characters.Count; charNum++)
        {
            CharInfo characterInfo = segment.Characters[charNum];
            gr.DrawRectangle(Pens.Black, 
                (float)characterInfo.Rectangle.LLX, 
                (float)characterInfo.Rectangle.LLY, 
                (float)characterInfo.Rectangle.Width, 
                (float)characterInfo.Rectangle.Height);
        }
    }
}

نقوم بالمرور على كل جزء من النص، وأجزاءه، والحروف الفردية، ونرسم مستطيلات حولها باستخدام كائن الرسوم الذي تم إنشاؤه مسبقًا.

الخطوة 6: احفظ الصورة المعدلة

بعد التحديد، ستحتاج إلى حفظ الصورة الناتجة كملف PNG جديد:

dataDir = dataDir + "HighlightCharacterInPDF_out.png";
bmp.Save(dataDir, System.Drawing.Imaging.ImageFormat.Png);

يحفظ هذا الخط صورة الخريطة المعدلة الخاصة بك كملف PNG في الدليل المحدد.

الخطوة 7: اختتام عملية معالجة الاستثناءات

أخيرًا، من الجيد أن تقوم بتغليف الكود الخاص بك في كتلة try-catch، مما يضمن أننا نتعامل مع أي أخطاء غير متوقعة بسلاسة:

catch (Exception ex)
{
    Console.WriteLine(ex.Message + "\nThis example will only work if you apply a valid Aspose License. You can purchase full license or get a 30-day temporary license from [here](https://buy.aspose.com/temporary-license/).");
}

تلتقط هذه الكتلة أي استثناءات قد تحدث أثناء العملية وتقدم ملاحظات إعلامية للمستخدم.

خاتمة

والآن، لقد نجحت في إبراز الأحرف في ملف PDF باستخدام Aspose.PDF لـ .NET. تفتح هذه المكتبة القوية الأبواب أمام إمكانيات لا حصر لها في التعامل مع ملفات PDF—سواء كنت تعمل مع التعليقات التوضيحية أو ملء النماذج أو حتى تحويل المستندات. وبينما تستمر في رحلتك مع Aspose، تذكر أن الممارسة هي المفتاح. استمر في تجربة ميزات مختلفة، وستصبح سريعًا محترفًا في التعامل مع ملفات PDF!

الأسئلة الشائعة

ما هو Aspose.PDF لـ .NET؟

Aspose.PDF for .NET هي مكتبة تسمح بإنشاء مستندات PDF ومعالجتها وتحويلها برمجيًا في تطبيقات .NET.

هل يمكنني تسليط الضوء على أجزاء نصية متعددة في وقت واحد؟

نعم، يمكن تعديل الكود المقدم لتسليط الضوء على أجزاء متعددة من خلال التكرار عبر النص بأكمله داخل ملف PDF.

هل هناك نسخة مجانية من Aspose.PDF؟

نعم، تقدم Aspose نسخة تجريبية مجانية، حتى تتمكن من اختبار المكتبة قبل الشراء.

هل أحتاج إلى أي تراخيص لاستخدام Aspose.PDF؟

نعم، يلزم الحصول على ترخيص صالح للاستخدام التجاري، ولكن يمكنك الحصول على ترخيص مؤقت لمدة 30 يومًا للاختبار.

أين يمكنني العثور على مزيد من الوثائق؟

يمكنك الرجوع إلىتوثيق Aspose.PDF لمزيد من المعلومات التفصيلية حول التنفيذ والميزات.