Apache POI HWPF

 
 

معالجة مستندات Microsoft Word الثنائية

إنشاء وقراءة ومعالجة وتحويل ملفات DOC عبر مكتبة جافا مفتوحة المصدر.

Apache POI HWPF هو منفذ Apache POI لتنسيق ملف Microsoft Word DOC. يوفر وظائف لقراءة ملفات DOC وكتابتها دون الحاجة إلى أي مكتبات إضافية. كما يوفر دعمًا محدودًا للقراءة فقط لتنسيقات ملفات Word 6 و Word 95 الأقدم. في هذه المرحلة ، يهتم HWPF بشكل أساسي بالنص المنسق. يوفر استخراج النص الأساسي ، واستخراج نص محدد ، والوصول إلى الرأس والتذييلات ، وتغيير ميزات النص.

يسهل على المطورين إنشاء مستندات MS-Word مع القدرة على معالجة الفقرات وإضافة أنماط مختلفة إلى النص وإضافة جدول واستخراج النص وغير ذلك الكثير.

Previous Next

الشروع في العمل مع Apache POI HWPF

بادئ ذي بدء ، تحتاج إلى تثبيت Java Development Kit (JDK) على نظامك. إذا كان لديك بالفعل ، فانتقل إلى تنزيل صفحة Apache POI للحصول على أحدث إصدار ثابت في أرشيف. قم باستخراج محتويات ملف ZIP في أي دليل حيث يمكن ربط المكتبات المطلوبة ببرنامج Java الخاص بك. هذا كل شيء!

تعتبر الإشارة إلى Apache POI في مشروع Java المستند إلى Maven أبسط. كل ما تحتاجه هو إضافة التبعية التالية في ملف pom.xml الخاص بك والسماح لـ IDE بجلب ملفات Apache POI Jar والإشارة إليها.

تبعية Apache POI Maven

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.0.0</version>
  </dependency>
  

إنشاء وتعديل مستندات Word باستخدام Java APIs

يتيح Apache POI HWPF للمبرمجين إنشاء مستندات Word جديدة بتنسيقات ملفات DOC. تسمح API أيضًا للمطورين بتعديل مستندات Word الحالية وفقًا لاحتياجاتهم الخاصة. تدعم واجهة برمجة التطبيقات أيضًا إضافة فقرة في مستند Word ، وتطبيق محاذاة النص وأنماط الخطوط ، وغير ذلك الكثير.

تعديل ملف DOC - جافا

// open an empty doc file, using APACHE POI we cannot create .doc file format from scratch
HWPFDocument doc = new HWPFDocument(new FileInputStream("empty.doc"));
Range range = doc.getRange();
// inset text
CharacterRun run = range.insertAfter("File Format Developer Guide - " +
"Learn about computer files that you come across in " +
"your daily work at: www.fileformat.com ");
OutputStream out = new FileOutputStream("document.pdf");
// save document
doc.write(out);
out.close();

تحويل مستندات Word إلى تنسيقات أخرى باستخدام Java

يتيح pache POI HWPF لمطوري البرامج تحويل مستندات Microsoft Word إلى أي تنسيقات ملفات مدعومة بسهولة. في الوقت الحالي ، يمكن لمطوري Java تحويل مستندات Word إلى تنسيق HTML و FO و Text. تحتوي حزمة org.apache.poi.hwpf.converter على محولات Word-to-HTML و Word-to-FO.

تحويل DOC إلى HTML

// load document
HWPFDocumentCore wordDocument = WordToHtmlUtils.loadDoc(new FileInputStream("document.doc"));
Document newDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
// initialize WordToHtmlConverter
WordToHtmlConverter wordToHtmlConverter = new WordToHtmlConverter(newDocument );
// process document
wordToHtmlConverter.processDocument( wordDocument );
StringWriter stringWriter = new StringWriter();
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty( OutputKeys.INDENT, "yes" );
transformer.setOutputProperty( OutputKeys.ENCODING, "utf-8" );
transformer.setOutputProperty( OutputKeys.METHOD, "html" );
transformer.transform(
    new DOMSource( wordToHtmlConverter.getDocument() ),
    new StreamResult( stringWriter ) );
// get html
String html = stringWriter.toString();

قراءة النص من ملف DOC

يوفر Apache POI HWPF فئة WordExtractor لقراءة النص من تنسيق ملف Microsoft Word DOC. يمكنك استخراج نص من الملف ببضعة أسطر فقط من التعليمات البرمجية.

استخراج نص من ملف DOC

// load DOC file
FileInputStream fis = new FileInputStream(new File("document.doc"));
// open file
HWPFDocument doc = new HWPFDocument(fis);
// read text
WordExtractor extractor = new WordExtractor(doc);
// display text
System.out.println(extractor.getText());

إضافة رأس وتذييل مخصص إلى DOC

يتيح Apache POI HWPF لمطوري Java إنشاء رؤوس وتذييلات مخصصة داخل مستندات Word. يوصف Apache POI HWPF بأنه "وظيفي بشكل معتدل". يوفر دعمًا لاستخراج النص الأساسي ، واستخراج نص محدد ، والوصول إلى رأس الصفحة وتذييلاتها ، وتغيير ميزات النص. يمكن استخدام طريقة getText () للحصول على النص من جميع الفقرات ، أو يمكن استخدام getParagraphText () لجلب النص من كل فقرة على التوالي. 

إدارة رأس وتذييل مخصص في ملف Word DOC


// The path to the documents directory.
String dataDir = Utils.getDataDir(ApacheHeaders.class);
POIFSFileSystem fs = null;
fs = new POIFSFileSystem(new FileInputStream(dataDir + "MyHeader.doc"));
HWPFDocument doc = new HWPFDocument(fs);
int pageNumber = 1;
HeaderStories headerStore = new HeaderStories(doc);
String header = headerStore.getHeader(pageNumber);
System.out.println("Header Is: " + header);
 عربي