docx4j is a Java library for creating and manipulating Microsoft Open XML (Word docx, Powerpoint pptx, and Excel xlsx) files.
It is similar to Microsoft’s OpenXML SDK, but for Java.
docx4j uses JAXB to create the in-memory object representation.
It is available under the Apache License (v2).
Docx4j relies heavily on JAXB, the JCP standard for Java – XML binding. You can think of docx4j as a JAXB implementation of (amongst others):
- Open Packaging Conventions
- WordProcessingML (docx) part of Open XML
- Presentation ML (pptx) part of OpenXML
- SpreadsheetML (xlsx) part of Open XML.
The library is designed to round trip docx files with 100% fidelity, and supports all 2007 WordML. Support for new Word 2010 features will be added soon.