كيفية استخراج النص من PDFs في .NET

كيفية استخراج النص من PDFs في .NET

يظهر هذا المقال كيفية استخراج النص من مستندات PDF باستخدام Aspose.PDF Text Extractor for .NET. سوف تتعلم كيف تستخدم جميع أنماط الاستخراج المدعومة – Pure, Raw, and Plain – وتتلقى تدفقات العمل التلقائية لملفات PDF الفردية أو المتعددة.

مشكلة العالم الحقيقي

نسخ النص اليدوي من ملفات PDF غير فعال ومخالفة للخطأ.في التطبيقات في تحليل البيانات، ونقل المستندات، أو الأرشيف، استخراج النص الآلي يضمن التماسك، وسرعة، ودقة.

نظرة عامة على الحل

Aspose.PDF Text Extractor for .NET يوفر واجهة نظيفة قابلة للبرمجة لاستخراج النص في تنسيقات مختلفة.اختر بين الوضع النقي، الخام، والسلس لتناسب حالة الاستخدام الخاصة بك - سواء كنت بحاجة إلى النتيجة المنسوجة، البيانات الخام أو المحتوى السلس.

المتطلبات

  • Visual Studio 2019 أو أحدث
  • .NET 6.0 أو أحدث
  • Aspose.PDF for .NET متوفر عبر NuGet
PM> Install-Package Aspose.PDF

تنفيذ خطوة بخطوة

الخطوة 1: تثبيت وتكوين Aspose.PDF

using Aspose.Pdf.Plugins;
using System.IO;

الخطوة 2: استخراج النص باستخدام الوضع الافتراضي (Raw)

using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(); // Raw mode by default
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

الخطوة 3: استخراج النص في وضع نظيف أو مسطح

  • **الوضع النقي: ** يحافظ على المواقف النسبية ويضيف مساحات للتكيف.
  • وضع التخطيط: الشرائح تنسيق، والنص الخروج مع الحد الأدنى من المساحات.
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure); // Or .Plain
    options.AddInput(new FileDataSource("input.pdf"));
    var resultContainer = extractor.Process(options);
    string textExtracted = resultContainer.ResultCollection[0].ToString();
    Console.WriteLine(textExtracted);
}

استخدام الحالات والتطبيقات (مع تعديلات الرمز)

1. Batch استخراج النص من PDFs متعددة

string[] files = Directory.GetFiles(@"C:\PDFs", "*.pdf");
using (var extractor = new TextExtractor())
{
    var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Pure);
    foreach (var file in files)
        options.AddInput(new FileDataSource(file));
    var resultContainer = extractor.Process(options);
    for (int i = 0; i < resultContainer.ResultCollection.Count; i++)
    {
        string extracted = resultContainer.ResultCollection[i].ToString();
        // Save to disk, process, or analyze as needed
        File.WriteAllText($@"C:\PDFs\out\{Path.GetFileNameWithoutExtension(files[i])}.txt", extracted);
    }
}

2. اختيار وضع الاستخراج استنادا إلى حالة الاستخدام

  • استخدم Pure لتصميمات مثل الجدول أو تنسيق الفضاء.
  • استخدم Plain لاستخراج البيانات النظيفة أو التحليل.
  • استخدم Raw للحصول على نص غير معالج.

3. العملية البريدية النص المستخرج

بعد الاستخراج ، قم بتطبيق regex ، وتنظيف النص ، أو إرسال النتائج إلى خدمات أخرى (بحث ، أنابيب ML ، إلخ).

4. دمج الاستخراج مع أنابيب البيانات

استخراج تلقائي كجزء من تدفق عمل أوسع ETL أو الإبلاغ أو إدارة المستندات باستخدام ممارسات .NET القياسية.

التحديات والحلول المشتركة

التحدي: النتيجة غير المتسقة بسبب بنية PDF المعقدةالحل: جرب طرق الاستخراج المختلفة (نقي، مسطح، خام) ومقارنة النتائج.

التحدي: سرعة استخراج الحزامالحل: استخدم واحد TextExtractor مثال ومعالجة العديد من الملفات في سلسلة واحدة للحصول على أفضل الأداء.

التحدي: شخصيات خاصة أو مشاكل التشفيرالحل: استخدم وضع مسطح للحصول على الحد الأدنى من التنسيق، ثم قم بتطبيق معالجة الشرائح المخصصة حسب الحاجة.

أداء وأفضل الممارسات

  • اختبار جميع أنماط الاستخراج الثلاثة لتحديد النتائج المثلى لنوع المستند الخاص بك
  • حفظ الملفات الأصلية قبل العمليات المزودة
  • التعامل مع أسماء المنتجات والتنظيم في وظائف المجموعة
  • التعامل مع الأخطاء المتكاملة والتسجيل للحصول على قوة

نموذج تنفيذ كامل

using Aspose.Pdf.Plugins;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (var extractor = new TextExtractor())
        {
            var options = new TextExtractorOptions(TextExtractorOptions.TextFormattingMode.Plain);
            options.AddInput(new FileDataSource(@"C:\PDFs\input.pdf"));
            var resultContainer = extractor.Process(options);
            string textExtracted = resultContainer.ResultCollection[0].ToString();
            File.WriteAllText(@"C:\PDFs\output.txt", textExtracted);
        }
    }
}

استنتاجات

يتيح لك Aspose.PDF Text Extractor for .NET أدوات قوية ومرنة لاستخراج النص في تنسيقات متعددة – مناسبة لمعالجة البيانات أو الأرشيف أو التحليل.

 عربي