استخراج متن از اسناد MS Word در C#

اسناد Microsoft Word برای ایجاد و به اشتراک‌گذاری محتوای متنی ضروری هستند. اگر در حال توسعه برنامه‌های C# هستید که با اسناد Word تعامل دارند، ممکن است نیاز به استخراج متن از اسناد Word با استفاده از C# در ASP.NET داشته باشید در حالی که اطمینان حاصل کنید که فرمت حفظ می‌شود. چه در حال تحلیل متن، استخراج بخش‌های خاص، یا ترکیب محتوا به یک سند واحد باشید، این راهنما به شما نشان می‌دهد که چگونه به طور کارآمد متن را از اسناد Word با استفاده از بهترین کتابخانه C# برای استخراج متن از اسناد Word استخراج کنید.

فهرست مطالب

کتابخانه C# برای استخراج متن از اسناد Word

Aspose.Words for .NET یک کتابخانه غنی از ویژگی‌ها و آسان برای استفاده است که برای کار با اسناد Word طراحی شده است. این کتابخانه مجموعه‌ای جامع از قابلیت‌ها، از جمله استخراج متن از اسناد Word در .NET، ایجاد، دستکاری و تبدیل اسناد را فراهم می‌کند. Aspose.Words for .NET ابزاری ارزشمند برای توسعه‌دهندگانی است که به دنبال استخراج متن کارآمد C# از کلمات هستند.

شما می‌توانید DLL را دانلود کنید یا کتابخانه را به طور مستقیم از NuGet با استفاده از کنسول مدیریت بسته نصب کنید:

PM> Install-Package Aspose.Words

درک استخراج متن در اسناد Word

یک سند MS Word شامل عناصر مختلفی مانند پاراگراف‌ها، جداول و تصاویر است. بنابراین، نیازهای استخراج متن ممکن است بسته به سناریو متفاوت باشد. به عنوان مثال، ممکن است نیاز به استخراج متن از یک سند Word اسکن شده در C# یا استخراج متن از یک فایل Word با استفاده از C# .NET داشته باشید. هر عنصر در یک سند Word به عنوان یک گره نمایان می‌شود که در طول فرآیند استخراج با آن تعامل خواهید داشت. بیایید بررسی کنیم که چگونه می‌توان متن را از اسناد Word استخراج کرد در حالی که به طور مؤثر فرمت کلمات را در حین استخراج متن در C# مدیریت می‌کنید.

استخراج متن از یک سند Word

در این بخش، ما یک استخراج‌کننده متن C# برای اسناد Word پیاده‌سازی خواهیم کرد. روند استخراج متن شامل:

  1. تعریف گره‌ها برای گنجاندن در فرآیند استخراج متن.
  2. استخراج محتوا بین گره‌های مشخص شده (شامل یا بدون گره‌های شروع و پایان).
  3. کلون کردن گره‌های استخراج شده برای ایجاد یک سند Word جدید حاوی محتوای استخراج شده.

بیایید یک متد به نام ExtractContent ایجاد کنیم که گره‌ها و سایر پارامترها را برای استخراج متن قبول می‌کند. این متد سند را تجزیه کرده و گره‌ها را کلون می‌کند. در اینجا پارامترهایی که به متد خواهیم داد آورده شده است:

  1. StartNode و EndNode به عنوان نقاط شروع و پایان برای استخراج محتوا عمل می‌کنند. این‌ها می‌توانند گره‌های سطح بلوک (مانند Paragraph، Table) یا گره‌های سطح خطی (مانند Run، FieldStart، BookmarkStart و غیره) باشند.
    • برای فیلدها، شیء FieldStart مربوطه را پاس دهید.
    • برای نشانه‌ها، از گره‌های BookmarkStart و BookmarkEnd استفاده کنید.
    • برای نظرات، از گره‌های CommentRangeStart و CommentRangeEnd استفاده کنید.
  2. IsInclusive مشخص می‌کند که آیا نشانه‌ها در استخراج گنجانده شده‌اند یا خیر. اگر به false تنظیم شود و همان یا گره‌های متوالی پاس داده شوند، یک لیست خالی بازگردانده خواهد شد.

پیاده‌سازی کامل متد ExtractContent که به طور دقیق متن را از اسناد Word محافظت شده در C# استخراج می‌کند به شرح زیر است:

علاوه بر این، برخی از متدهای کمکی مورد نیاز متد ExtractContent برای تسهیل عملیات استخراج متن هستند:

حالا ما آماده‌ایم که از این متدها استفاده کنیم و متن را از اسناد Word با استفاده از C# استخراج کنیم.

استخراج متن بین پاراگراف‌های یک سند Word

برای استخراج محتوا بین دو پاراگراف در یک سند DOCX Word، مراحل زیر را دنبال کنید:

  1. سند Word را با استفاده از کلاس Document بارگذاری کنید.
  2. پاراگراف‌های شروع و پایان را با استفاده از متد Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean) مرجع‌دهی کنید.
  3. متد ExtractContent(startPara, endPara, true) را برای استخراج گره‌ها به یک شیء فراخوانی کنید.
  4. از متد کمکی GenerateDocument(Document, extractedNodes) برای ایجاد یک سند حاوی محتوای استخراج شده استفاده کنید.
  5. در نهایت، سند بازگشتی را با استفاده از متد Document.Save(string) ذخیره کنید.

در اینجا یک نمونه کد وجود دارد که نشان می‌دهد چگونه می‌توان متن را از فایل‌های بزرگ Word با استخراج محتوا بین پاراگراف‌های ۷ و ۱۱ استخراج کرد:

استخراج متن بین انواع مختلف گره‌ها

شما همچنین می‌توانید محتوا را بین انواع مختلف گره‌ها استخراج کنید. به عنوان مثال، بیایید محتوا را بین یک پاراگراف و یک جدول استخراج کرده و آن را در یک سند Word جدید ذخیره کنیم. مراحل زیر را دنبال کنید:

  1. سند Word را با استفاده از کلاس Document بارگذاری کنید.
  2. گره‌های شروع و پایان را با استفاده از متد Document.FirstSection.Body.GetChild(NodeType, int, boolean) مرجع‌دهی کنید.
  3. متد ExtractContent(startPara, endPara, true) را برای استخراج گره‌ها به یک شیء فراخوانی کنید.
  4. از متد کمکی GenerateDocument(Document, extractedNodes) برای ایجاد یک سند حاوی محتوای استخراج شده استفاده کنید.
  5. سند بازگشتی را با استفاده از متد Document.Save(string) ذخیره کنید.

در اینجا یک نمونه کد وجود دارد که نشان می‌دهد چگونه می‌توان متن را بین یک پاراگراف و یک جدول در C# استخراج کرد:

استخراج متن بین پاراگراف‌ها بر اساس سبک‌ها

حالا بیایید بررسی کنیم که چگونه می‌توان محتوا را بین پاراگراف‌ها بر اساس سبک‌ها استخراج کرد. در این مثال، ما محتوا را بین اولین “Heading 1” و اولین “Heading 3” در سند Word استخراج خواهیم کرد. مراحل زیر را دنبال کنید:

  1. سند Word را با استفاده از کلاس Document بارگذاری کنید.
  2. پاراگراف‌ها را به یک شیء با استفاده از متد کمکی ParagraphsByStyleName(Document, “Heading 1”) استخراج کنید.
  3. پاراگراف‌ها را به یک شیء دیگر با استفاده از متد کمکی ParagraphsByStyleName(Document, “Heading 3”) استخراج کنید.
  4. متد ExtractContent(startPara, endPara, true) را فراخوانی کنید و اولین عناصر در هر دو آرایه پاراگراف را به عنوان پارامترها پاس دهید.
  5. از متد کمکی GenerateDocument(Document, extractedNodes) برای ایجاد یک سند حاوی محتوای استخراج شده استفاده کنید.
  6. در نهایت، سند بازگشتی را با استفاده از متد Document.Save(string) ذخیره کنید.

در اینجا یک نمونه کد وجود دارد که نشان می‌دهد چگونه می‌توان محتوا را بین پاراگراف‌ها بر اساس سبک‌ها استخراج کرد:

بیشتر درباره استخراج متن بخوانید

سایر سناریوهای API .NET برای استخراج متن از اسناد Word را در این مقاله مستندات کشف کنید.

دریافت کتابخانه استخراج متن Word رایگان

شما می‌توانید یک مجوز موقت رایگان برای استخراج متن بدون محدودیت‌های ارزیابی دریافت کنید.

نتیجه‌گیری

Aspose.Words for .NET یک کتابخانه چندمنظوره است که فرآیند استخراج متن C# از Word در حالی که فرمت را حفظ می‌کند ساده می‌کند. با ویژگی‌های گسترده و API کاربرپسند آن، می‌توانید به طور مؤثر با اسناد Word کار کنید و سناریوهای مختلفی را که شامل مدیریت کاراکترهای خاص در حین استخراج متن کلمات C# است، خودکار کنید. چه در حال توسعه برنامه‌هایی باشید که نیاز به پردازش اسناد Word دارند و چه صرفاً استخراج متن، Aspose.Words for .NET ابزاری ارزشمند برای توسعه‌دهندگان است.

ویژگی‌های اضافی Aspose.Words for .NET را از طریق مستندات کشف کنید. اگر سوالی دارید، لطفاً از طریق فروم ما با ما تماس بگیرید.

همچنین ببینید

نکته: شما همچنین ممکن است بخواهید مبدل Aspose PowerPoint به Word را بررسی کنید که فرآیند تبدیل ارائه به سند Word محبوب را نشان می‌دهد.