Apache POI: استخراج النص من ملف Word في Java

في هذا البرنامج التعليمي ، سنلقي نظرة على طريقتين مختلفتين لقراءة ملف Word في java يحتوي على امتداد doc أو docx ، وكيفية استخراج محتوياته النصية.

قبل أن تبدأ ، تحتاج إلى تنزيل واجهة برمجة تطبيقات Apache POI.

قراءة ملف Word .doc باستخدام WordExtractor

Apache POI يستخدم فئة WordExtractor  والذي يسمح باستخراج محتويات ملف Word بأكمله في كل صفحة من ملف المستند. تأكد من أن الملف له ملحق .doc وتواريخ MS-Word 97-2003. تسمح لك فئة WordExtractor باستخراج كل النص في مستند Word ، بما في ذلك الفقرات والجداول والرؤوس والتذييلات في كل صفحة.

يجب عليك استخدام النمط getParagraphText ()< / span >< / b> أو < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getText() لاسترداد النص من ملف Word ، في شكل مصفوفة يحتوي فيها كل مربع في الصفيف على فقرة من النوع String.

The class  < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" ><ب>HWPFDocument
  يقبل دفق تشغيل إلى الملف كمعامل. تلعب هذه الفئة دور دلو حيث نضع الهيكل الكامل للمستند في.

import java.io.*; 
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;

الطبقة العامة LireDoc
{
الفراغ العام الثابت الرئيسي (سلسلة [] args)
{
try
{
ملف = ملف جديد ("nouveaudoc.doc") ؛
FileInputStream fis = جديد FileInputStream (file.getAbsolutePath ());
وثيقة HWPFوثيقة = HWPFDocument (fis) الجديدة ؛ < فرع / >   مستخرج WordExtractor = مستخرج WordExtractor جديد (مستند) ؛
سلسلة [] نص = extractor.getParagraphText ();
ل (int i = 0 ؛ i < texte.length ؛ i ++)
{
if (texte [i] != null)
System.out.println (texte [i]) ؛
}
}
catch (باستثناء e)
{
e.printStackTrace();
}
}
}

قراءة ملف Word .docx باستخدام XWPFWordExtractor

يستخدم مستند Microsoft Office 2007 تنسيق .docx ويخزن المعلومات (النص والنمط واللون والخط وما إلى ذلك) في ملف XML. الطبقة  XWPFWordExtractor لاستخراج النص من هذا الملف المسمى OOXML.

للحصول على نص السلسلة، اتصل ب XWPFWordExtractor.getText(). من الواضح أن تنسيق .docx أسهل في القراءة من التنسيق القديم .doc.

import java.io.*; 
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;

الفئة العامة ReadDocx
{
الفراغ العام الثابت الرئيسي (سلسلة [] args)
{
try
{
ملف = ملف جديد ("nouveaudoc.docx") ؛
FileInputStream fis = جديد FileInputStream (file.getAbsolutePath ());
وثيقة XWPFوثيقة = XWPFDocument (fis) جديدة; < فرع / >   XWPFWordExtractor مستخرج = جديد XWPFWordExtractor (وثيقة);
نص السلسلة = extractor.getText ();
System.out.println (نص) ؛
}
الصيد (باستثناء ه) < br / > {
e.printStackTrace ();
}
}
} < / قبل >