
بیشتر دادهها به صورت متن بصری در اسناد، تصاویر و در وب نمایش داده میشوند، بنابراین استخراج دادههای متنی گاهی اوقات مهمترین نیاز است. شما ممکن است بخواهید متن یا تصاویر را از اسناد Word یا PDF استخراج کنید. به عنوان یک توسعهدهنده C#، میتوانید به راحتی به صورت برنامهنویسی متن را از اسناد استخراج کنید. در این مقاله، شما یاد خواهید گرفت که چگونه از اسناد DOC یا DOCX با استفاده از C# متن استخراج کنید.
موضوعات زیر در این مقاله بحث و بررسی شده است:
- C# API برای استخراج متن
- متن را از DOCX با استفاده از C# استخراج کنید
- متن فرمت شده را از DOCX با استفاده از C# دریافت کنید
- متن فرمتدار را از صفحات با استفاده از C# استخراج کنید
C# API برای استخراج متن
من از API GroupDocs.Parser for .NET برای استخراج متن از مدارک DOCX استفاده خواهم کرد. این API امکان استخراج متن، متاداده و تصاویر را از مدارک فرمتهای پشتیبانی شده مانند ورد، PDF، اکسل و پاورپوینت فراهم میکند. همچنین از استخراج متن خام، قالببندی شده و ساختار یافته و همچنین متاداده از فایلهای فرمتهای پشتیبانی شده پشتیبانی میکند.
شما میتوانید یا download DLL API را دانلود کنید یا آن را با استفاده از NuGet نصب کنید.
Install-Package GroupDocs.Parser
متن را از DOCX با استفاده از C# استخراج کنید
شما میتوانید به راحتی هر سندی را تجزیه و تحلیل کرده و متن را با دنبال کردن مراحل ساده ذکر شده در زیر استخراج کنید:
- یک نمونه از Parser کلاس ایجاد کنید
- مسیر فایل را مشخص کنید.
- متد GetText کلاس Parser را برای استخراج متن فراخوانی کنید
- نتایج را در شیء کلاس TextReader دریافت کنید
- نتایج را با فراخوانی متد ReadToEnd از کلاس TextReader نشان دهید
کد نمونه زیر نشان میدهد که چگونه میتوان متن را از یک پرونده DOCX با استفاده از C# استخراج کرد.
// یک نمونه از کلاس Parser ایجاد کنید
Parser parser = new Parser(@"C:\Files\sample.docx");
// Extract a text into the reader
using (TextReader reader = parser.GetText())
{
// Print a text from the document
// اگر استخراج متن پشتیبانی نشود، یک خواننده null است
Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}

متن را از DOCX با استفاده از C# استخراج کنید
کلاس Parser کلاس اصلی است که قابلیت تجزیه و تحلیل و استخراج متن و تصاویر را فراهم میکند. من مسیر فایل ورودی را در constructor این کلاس مشخص کردم.
روش GetText() کلاس Parser متن را از سند مشخص شده استخراج میکند.
از C# برای گرفتن متن فرمتبندیشده از DOCX استفاده کنید
شما میتوانید به راحتی اسناد ورد را تجزیه و تحلیل کرده و متن را بدون از دست دادن قالب بندی سبک استخراج کنید با دنبال کردن مراحل سادهای که در زیر ذکر شده است:
- یک نمونه از Parser کلاس ایجاد کنید
- مسیر فایل را مشخص کنید.
- تعریف FormattedTextOptions
- Set FormattedTextMode to HTML
- متد GetFormattedText کلاس Parser را برای استخراج متن فراخوانی کنید
- نتایج را در شیء کلاس TextReader دریافت کنید
- نتایج را با فراخوانی متد ReadToEnd کلاس TextReader نمایش دهید
کد نمونه زیر نشان میدهد که چگونه متن قالببندیشده را از یک فایل DOCX با استفاده از C# استخراج کنیم.
// یک نمونه از کلاس Parser ایجاد کنید
Parser parser = new Parser(@"C:\Files\sample.docx");
// Extract a formatted text into the reader
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
// Print a formatted text from the document
// اگر استخراج متنی فرمت شده پشتیبانی نمیشود، یک خواننده نال است
Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}

متن فرمت شده را از DOCX با استفاده از C# استخراج کنید
کلاس FormattedTextOptions گزینههایی را فراهم میکند که برای استخراج متن فرمت شده استفاده میشوند، مانند Mode استخراج. من حالت استخراج را به HTML تنظیم کردم که با HTML متن یک سند را استخراج میکند.
متد GetFormattedText() کلاس Parser یک متن فرمتبندی شده را از سند مشخص شده استخراج میکند.
متن فرمتبندی شده را از صفحات با استفاده از C# استخراج کنید
شما میتوانید بهراحتی فایل ورد را تجزیه و تحلیل کرده و متن فرمتدار را از یک صفحه خاص از سند استخراج کنید با دنبال کردن مراحل سادهای که در زیر ذکر شده است:
- یک نمونه از Parser کلاس ایجاد کنید
- مسیر فایل را مشخص کنید.
- بررسی کنید که FormattedText صحیح است
- Call the GetDocumentInfo to get pages count
- بررسی کنید که PageCount صفر نیست
- تعریف FormattedTextOptions
- Set FormattedTextMode to HTML
- متد GetFormattedText را برای هر ایندکس صفحه فراخوانی کنید تا متن استخراج شود
- نتایج را در شیء کلاس TextReader دریافت کنید
- نتایج را با فراخوانی متد ReadToEnd کلاس TextReader نمایش دهید
کد نمونه زیر نشان میدهد که چگونه میتوان متن فرمت شده را از صفحات به صورت یک به یک با استفاده از C# استخراج کرد.
// یک نمونه از کلاس Parser ایجاد کنید
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
// بررسی کنید که آیا سند از استخراج متن فرمت بندی شده پشتیبانی می کند
if (!parser.Features.FormattedText)
{
Console.WriteLine("Document isn't supports formatted text extraction.");
return;
}
// Get the document info
IDocumentInfo documentInfo = parser.GetDocumentInfo();
// بررسی کنید که آیا سند صفحات دارد
if (documentInfo.PageCount == 0)
{
Console.WriteLine("Document hasn't pages.");
return;
}
// بر روی صفحات تکرار کنید
for (int p = 0; p < documentInfo.PageCount; p++)
{
// Print a page number
Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
// Extract a formatted text into the reader
using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
{
// Print a formatted text from the document
// ما بررسی نال چکینگ را نادیده میگیریم زیرا ویژگی استخراج متن قالببندی شده را قبلاً بررسی کردهایم.
Console.WriteLine(reader.ReadToEnd());
}
}
}

متن فرمتدار را از صفحات با استفاده از C# استخراج کنید
کلاس Parser دارای ویژگی Features است که نمایانگر کلاس Features میباشد. از آن میتوان برای بررسی اینکه آیا ویژگیای برای سند پشتیبانی میشود، استفاده کرد. میتوانید اطلاعات بیشتری در مورد ویژگیهای پشتیبانی شده در بخش “Get Supported Features” بخوانید.
یک مجوز رایگان دریافت کنید
شما میتوانید API را بدون محدودیتهای ارزیابی با درخواست یک مجوز موقت رایگان امتحان کنید.
نتیجه گیری
در این مقاله، شما یاد گرفتید که چگونه متن را از اسناد ورد با استفاده از C# استخراج کنید. میتوانید اطلاعات بیشتری در مورد GroupDocs.Parser برای API .NET با استفاده از documentation بیابید. در صورت بروز هرگونه ابهام، لطفاً با ما در forum تماس بگیرید.