1. 产品
  2.   字处理
  3.   Java
  4.   Apache POI HWPF

Apache POI HWPF

 
 

处理 Microsoft Word 二进制文档

通过开源 Java 库创建、读取、操作和转换 DOC 文件。

Apache POI HWPF 是 Microsoft Word DOC 文件格式的 Apache POI 端口。它提供了无需任何额外库即可读取和写入 DOC 文件的功能。它还为较旧的 Word 6 和 Word 95 文件格式提供有限的只读支持。在这个阶段,HWPF 主要关注格式化文本。它提供基本文本提取、特定文本提取、访问页眉和页脚以及更改文本功能。

它有助于开发人员创建具有操作段落、向文本添加不同样式、添加表格、提取文本等功能的 MS-Word 文档。

Previous Next

Apache POI HWPF 入门

首先,您需要在系统上安装 Java 开发工具包 (JDK)。如果您已经拥有它,请继续访问 Apache POI 的 下载 页面以获取存档中的最新稳定版本。将 ZIP 文件的内容提取到可以将所需库链接到 Java 程序的任何目录中。就这些!

在基于 Maven 的 Java 项目中引用 Apache POI 更加简单。您只需在 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>
  

使用 Java API 创建和修改 Word 文档

Apache POI HWPF 使程序员能够以 DOC 文件格式创建新的 Word 文档。该 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();

使用 Java 将 Word 文档转换为其他格式

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);
 中国人