متن را از مستندات ورد با استفاده از Java استخراج کنید.

در موارد خاص، ممکن است نیاز داشته باشید که متن را از اسناد Word خود برای اهداف مختلف استخراج کنید. به عنوان یک توسعه‌دهنده جاوا، می‌توانید به‌راحتی متن را به‌صورت برنامه‌نویسی از DOC یا DOCX استخراج کنید. در این مقاله، خواهید آموخت که چگونه متن را از اسناد Word با استفاده از Java استخراج کنید.

موضوعات زیر در این مقاله مورد بحث قرار گرفته‌اند:

Java API برای استخراج متن از اسناد ورد

برای استخراج متن از فایل‌های DOC یا DOCX، ما از API  GroupDocs.Parser for Java استفاده خواهیم کرد. این API امکان استخراج متن، متاداده و تصاویر از فرمت‌های فایل محبوب Word، PDF، Excel و PowerPoint را فراهم می‌کند. این API همچنین از استخراج متن خام، فرمت‌دار و ساختار یافته از فایل‌های supported formats پشتیبانی می‌کند.

شما می‌توانید download JAR API را دانلود کنید یا به سادگی پیکربندی pom.xml زیر را در برنامه Java مبتنی بر Maven خود اضافه کنید تا کدهای نمونه ذکر شده در زیر را تست کنید.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>21.2</version> 
</dependency>

متن را از اسناد ورد با استفاده از Java استخراج کنید

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

  • نخست، فایل DOCX را با استفاده از کلاس Parser بارگذاری کنید.
  • سپس، از متد Parser.getText() برای استخراج متن از سند بارگذاری شده استفاده کنید.
  • نتایج متد Parser.getText() را در شی کلاس TextReader بگیرید.
  • در نهایت، متد TextReader.readToEnd() را فراخوانی کنید تا تمام کاراکترها را از موقعیت فعلی تا پایان خواننده متن بخوانید و آنها را به عنوان یک رشته واحد بازگردانید.

قطعه کد زیر نشان می‌دهد که چگونه می‌توان متن را از یک فایل DOCX با استفاده از Java استخراج کرد.

// یک نمونه از کلاس Parser ایجاد کنید
Parser parser = new Parser("C:\\Files\\sample.docx");

// Extract a raw text into the reader
try (TextReader reader = parser.getText()) {
    // Print a text from the document
    // اگر استخراج متن پشتیبانی نمی‌شود، یک خواننده null است
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
متن را از مستندات ورد با استفاده از Java استخراج کنید.

متن را از اسناد ورد با استفاده از Java استخراج کنید

از اسناد ورد متن را از صفحات خاص استخراج کنید با استفاده از Java

شما می‌توانید یک سند ورد را تجزیه و تحلیل کنید و متن را از یک صفحه خاص استخراج کنید با دنبال کردن مراحل ساده زیر:

  • نخست، فایل DOCX را با استفاده از کلاس Parser بارگذاری کنید.
  • سپس از Parser.getFeatures().isText() استفاده کنید تا بررسی کنید آیا سند ویژگی استخراج متن را پشتیبانی می‌کند. اطلاعات بیشتری درباره supported features بخوانید.
  • اکنون، متد Parser.getDocumentInfo() را فراخوانی کنید تا اطلاعات کلی در مورد سند را دریافت کنید. مانند نوع فایل، تعداد صفحه، اندازه و غیره.
  • نتایج متد Parser.getDocumentInfo() را در شیء رابط IDocumentInfo دریافت کنید.
  • سپس بررسی کنید که آیا IDocumentInfo.getPageCount() صفر نیست. این متد تعداد کل صفحات سند را برمی‌گرداند.
  • تمام صفحات را پیمایش کنید و برای هر شاخص صفحه، متد Parser.getText() را فراخوانی کنید تا متن استخراج شود و نتایج در شیء کلاس TextReader دریافت شود.
  • در نهایت، نتایج را با فراخوانی متد TextReader.readToEnd() برای خواندن متن استخراج‌شده نشان دهید.

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

// یک نمونه از کلاس Parser ایجاد کنید
Parser parser = new Parser("C:\\Files\\sample.docx");

// چک کنید که آیا مدرک از استخراج متن پشتیبانی می‌کند.
if (!parser.getFeatures().isText()) {
    System.out.println("The document doesn't support text extraction.");
    return;
}

// Get the document info
IDocumentInfo documentInfo = parser.getDocumentInfo();

// بررسی کنید که آیا سند صفحات دارد
if (documentInfo.getPageCount() == 0) {
    System.out.println("The document has zero pages.");
    return;
}

// بر روی صفحات پیمایش کنید
for (int p = 0; p < documentInfo.getPageCount(); p++) {
    // Print a page number
    System.out.println(String.format("Page number: %d/%d", p + 1, documentInfo.getPageCount()));
    // Extract a text into the reader
    try (TextReader reader = parser.getText(p)) {
        // Print a text from the document
        // ما چک کردن مقدار خالی را نادیده می‌گیریم زیرا قبلاً پشتیبانی از ویژگی استخراج متن را بررسی کرده‌ایم.
        System.out.println(reader.readToEnd());
    }
}
متن را از صفحات خاصی از یک سند با استفاده از Java استخراج کنید

متن را از صفحات خاصی از یک سند با استفاده از Java استخراج کنید.

از اسناد ورد با استفاده از Java هایلایت بگیرید

یک هایلایت بخشی از متن است که معمولاً برای توضیح زمینه متن پیدا شده در قابلیت جستجو استفاده می‌شود. شما می‌توانید یک هایلایت را از یک سند استخراج کنید با دنبال کردن مراحل ساده زیر:

  • نخست، فایل DOCX را با استفاده از کلاس Parser بارگذاری کنید.
  • یک نمونه از شیء کلاس HighlightOptions ایجاد کنید و حداکثر طول را به عنوان پارامتر ورودی به سازنده آن منتقل کنید تا یک هایلایت با طول ثابت استخراج شود.
  • سپس با موقعیت شروع و شیء کلاس HighlightOptions متد Parser.getHighlight() را برای استخراج یک هایلایت از سند به عنوان شیء کلاس HighlightItem فراخوانی کنید.
  • در نهایت، متدهای Highlight.getPosition() و HighlightItem.getText() را صدا بزنید تا موقعیت و متن هایلایت را دریافت کنید.

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

// یک نمونه از کلاس Parser ایجاد کنید
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Extract a highlight:
    HighlightItem hl = parser.getHighlight(0, true, new HighlightOptions(8));
    // بررسی کنید که آیا استخراج هایلایت پشتیبانی می‌شود
    if (hl == null) {
        System.out.println("Highlight extraction isn't supported");
        return;
    }
    // Print an extracted highlight
    System.out.println(String.format("At %d: %s", hl.getPosition(), hl.getText()));
}
At 0: Overview

متن فرمت‌دار را از DOCX با استفاده از Java استخراج کنید

شما می‌توانید اسناد Word را تجزیه و تحلیل کرده و متن را بدون از دست دادن قالب‌بندی سبک استخراج کنید با دنبال کردن مراحل ساده ذکر شده در زیر:

  • نخست، فایل DOCX را با استفاده از کلاس Parser بارگذاری کنید.
  • تعریف کنید FormattedTextOptions و FormattedTextMode را به HTML تنظیم کنید. این امکان را به شما می‌دهد که متن فرمت شده HTML را از سند استخراج کنید.
  • سپس، متد Parser.getFormattedText() را برای استخراج متن فرمت شده فراخوانی کنید.
  • نتایج متد Parser.getText() را در شی کلاس TextReader بگیرید.
  • بالاخره، متد TextReader.readToEnd() را فراخوانی کنید تا تمام متن را بخوانید.

نمونه کد زیر نشان می‌دهد که چگونه می‌توان متن فرمت‌بندی شده را از یک فایل DOCX با استفاده از Java استخراج کرد.

// یک نمونه از کلاس Parser ایجاد کنید
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Extract a formatted text into the reader
    try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
        // Print a formatted text from the document
        // اگر استخراج متن فرمت شده پشتیبانی نشود، یک خواننده null است
        System.out.println(reader == null ? "Formatted text extraction isn't suppported" : reader.readToEnd());
    }
}
Extract Formatted Text from DOCX using Java

متن فرمت دار را از DOCX با استفاده از Java استخراج کنید

متن را با استفاده از فهرست مطالب استخراج کنید با Java

شما می‌توانید متن را از سند با استفاده از فهرست مطالب با دنبال کردن مراحل ساده ذکر شده در زیر استخراج کنید:

  • نخست، فایل DOCX را با استفاده از کلاس Parser بارگذاری کنید.
  • سپس، متد Parser.getToc() را فراخوانی کنید تا یک فهرست مطالب به عنوان یک مجموعه از اشیاء کلاس TocItem استخراج شود. TocItem نمایانگر آیتمی است که در قابلیت استخراج فهرست مطالب استفاده می‌شود.
  • حالا بررسی کنید که آیا مجموعه نال نیست.
  • سپس، بر روی مجموعه TocItem’ها تکرار کنید و متد TocItem.extractText() را برای استخراج متن از سندی که شیء TocItem به آن اشاره دارد، فراخوانی کنید.
  • نتایج را در شیء کلاس TextReader بگیرید.
  • بالاخره، متد TextReader.readToEnd() را فراخوانی کنید تا تمام متن را بخوانید.

نمونه کد زیر نشان می‌دهد که چگونه می‌توان متن را از فهرست مطالب در اسناد Word با استفاده از Java استخراج کرد.

// یک نمونه از کلاس Parser ایجاد کنید
try (Parser parser = new Parser("C:\\Files\\sampleTOC.docx")) {
    // فهرست مطالب را دریافت کنید
    Iterable<TocItem> tocItems = parser.getToc();
    // Check if toc extraction is supported
    if (tocItems == null) {
        System.out.println("Table of contents extraction isn't supported");
    }
    else
    {
        // آیتم‌ها را تکرار کنید
       for (TocItem tocItem : tocItems) {
            // متن فصل را چاپ کنید
            try (TextReader reader = tocItem.extractText()) {
                System.out.println("----");
                System.out.println(reader.readToEnd());
            }
        }
    }
}
متن را با استفاده از فهرست مطالب استخراج کنید و بوسیله جاوا

متن را با استفاده از فهرست مطالب استخراج کنید با جاوا

مجوز رایگان دریافت کنید

شما می‌توانید API را بدون محدودیت‌های ارزیابی با درخواست a free temporary license امتحان کنید.

نتیجه گیری

در این مقاله، شما یاد گرفته‌اید که چگونه می‌توان متن را از اسناد ورد با استفاده از Java استخراج کرد. علاوه بر این، شما دیده‌اید که چگونه به‌صورت برنامه‌نویسی متن فرمت‌شده را از یک فایل DOCX استخراج کنید. این مقاله همچنین توضیح داد که چگونه می‌توان متن را طبق فهرست مطالب استخراج کرد و یک هایلایت را از یک سند استخراج کرد. علاوه بر این، می‌توانید اطلاعات بیشتری درباره GroupDocs.Parser برای API Java با استفاده از documentation بیاموزید. در صورت هر گونه ابهام، لطفاً احساس راحتی کنید و با ما در forum تماس بگیرید.

See Also