Apache POI HWPF

 
 

ประมวลผลเอกสารไบนารี Microsoft Word

สร้าง อ่าน จัดการ และแปลงไฟล์ DOC ผ่าน Open Source Java Library

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 Dependency

<!-- 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 ที่มีอยู่ได้ตามความต้องการของตนเอง API ยังรองรับการเพิ่มย่อหน้าในเอกสาร Word การใช้การจัดแนวข้อความและรูปแบบฟอนต์ และอื่นๆ อีกมากมาย

แก้ไขไฟล์ DOC - Java

// 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);
 ไทย