Apache POI 是純 Java 實作的 Office 格式操作庫,支援 .docx (OOXML) 與 .doc (OLE2) 互讀寫,無需安裝 OpenOffice/LibreOffice。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.3.0</version>
</dependency>
public void docxToDoc(String srcPath, String destPath) throws Exception {
try (XWPFDocument docx = new XWPFDocument(new FileInputStream(srcPath));
FileOutputStream out = new FileOutputStream(destPath)) {
// POI 直接寫入 .doc 格式 (HWPFDocument) 功能有限
// 建議:讀取 docx 內容 → 建立 HWPFDocument → 寫入
// 實務上常改用「docx 轉 PDF」或「docx 轉 HTML」再轉 doc
// 簡易示範:僅提取段落文字
HWPFDocument doc = new HWPFDocument();
for (XWPFParagraph p : docx.getParagraphs()) {
doc.createParagraph().insertText(p.getText());
}
doc.write(out);
}
}
.doc 輸出支援有限docx → PDF (iText/pdfbox) → doc (LibreOffice headless) 或雲端轉換服務docx4j + OpenXML 操作