用于 Word DOCX 文档的开源 Java API
创建、阅读、编辑和转换 Microsoft Word DOCX 文件,通过 Java 库添加文本和表格。
DOCX4J 入门
首先,您需要在系统上安装 Java 开发工具包 (JDK)。在基于 Maven 的 Java 项目中引用 DOCX4J 更加简单。您只需在 pom.xml 中添加以下依赖项,并让您的 IDE 获取并引用 DOCX4J Jar 文件。
DOCX4J Maven 依赖
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-Internal</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-MOXy</artifactId>
<version>8.0.0</version>
</dependency>
将段落、图像和表格添加到 Word 文档
DOCX4J 允许开发人员将段落和图像添加到 Word 文档中。 API 还提供了将表格添加到 DOCX 文档的功能,同时可以使用用户定义的数据创建简单的嵌套表格。
使用 DOCX4J 创建 DOCX Free - Java
// Create word package
WordprocessingMLPackage wordPackage = WordprocessingMLPackage.createPackage();
// Create main document part
MainDocumentPart mainDocumentPart = wordPackage.getMainDocumentPart();
// Add Paragraph
mainDocumentPart.addParagraphOfText("Open Source Java API for Word DOCX Documents");
// Save file
wordPackage.save(new File("FileFormat.docx"));
从 DOCX 中提取文本
DOCX4J 提供了专门的类,只需几行代码即可从 Microsoft Word DOCX 文档中提取数据。同样,它还可以从Word文件中提取标题、脚注、表格数据等。
从 DOCX Free 中提取文本 - Java
// Load document
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(new File("FileFormat.docx"));
// Load main document part
MainDocumentPart mainDocumentPart = wordMLPackage.getMainDocumentPart();
// Extract nodes
String textNodesXPath = "//w:t";
List<Object> textNodes= mainDocumentPart.getJAXBNodesViaXPath(textNodesXPath, true);
// Print text
for (Object obj : textNodes) {
Text text = (Text) ((JAXBElement) obj).getValue();
String textValue = text.getValue();
System.out.println(textValue);
}
使用 Java API 生成和编辑 Word 文档
DOCX4J 使软件程序员能够以 DOCX 文件格式创建新的 Word 文档。开发人员还可以加载现有的 Microsoft Word DOCX 文件以根据他们的应用程序需要对其进行编辑。它允许您添加新段落、插入文本、应用文本对齐和边框、更改文本样式等。
将 Microsoft Word Docx 文档转换为 PDF
开源 Java 库 docx4j 为 Microsoft Word docx 文档生成和转换为各种流行格式提供了完整的支持。 docx4j 提供了 3 种不同的方式将 Microsoft Word docx 文档转换为 PDF。以下示例使用documents4j(远程运行)将docx 文件转换为PDF。
通过 Java 将 EWord Docx 文档转换为 PDF
public class DocxFileToPDF {
public static void main(String[] args) throws IOException, Docx4JException {
File output = new File(System.getProperty("user.dir")+"/result.pdf");
FileOutputStream fos = new FileOutputStream(output);
Documents4jRemoteServices exporter = new Documents4jRemoteServices();
exporter.export(new File(System.getProperty("user.dir")+"/../docx4j-samples-docx4j/sample-docs/sample-docx.docx") , fos, DocumentType.MS_WORD);
fos.close();
}
}