API Java nguồn mở cho tài liệu Word DOCX
Tạo, đọc, chỉnh sửa và chuyển đổi tệp Microsoft Word DOCX, thêm văn bản và bảng thông qua thư viện Java.
DOCX4J là thư viện mã nguồn mở (Apache v2) dựa trên JAXB để thao tác các định dạng tệp Microsoft Office. Nó cung cấp chức năng đọc, viết, chỉnh sửa và lưu định dạng tệp DOCX của Microsoft Word 2007.
DOCX4J tương tự như OpenXML SDK của Microsoft, nhưng dành cho Java. Nó sử dụng JAXB để tạo biểu diễn đối tượng trong bộ nhớ. Sử dụng API, bạn có thể tạo tài liệu Mircosoft Office, chỉnh sửa chúng, định dạng văn bản và đoạn văn, chèn bảng và hình ảnh và quản lý các thành phần biểu mẫu khác, v.v. Về cơ bản, nó nhấn mạnh vào sức mạnh, nếu định dạng hỗ trợ nó, bạn có thể làm điều đó bằng cách sử dụng API.
Bắt đầu với DOCX4J
Trước hết, bạn cần cài đặt Bộ phát triển Java (JDK) trên hệ thống của mình. Tham chiếu DOCX4J trong dự án Java dựa trên Maven của bạn thậm chí còn đơn giản hơn. Tất cả những gì bạn cần là thêm phần phụ thuộc sau vào pom.xml của bạn và để IDE của bạn tìm nạp và tham chiếu các tệp DOCX4J Jar.
DOCX4J Maven phụ thuộc
<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>
Thêm Đoạn văn, Hình ảnh & Bảng vào Tài liệu Word
DOCX4J cho phép các nhà phát triển thêm đoạn văn và hình ảnh vào tài liệu Word. API cũng cung cấp tính năng thêm bảng vào tài liệu DOCX trong khi vẫn có thể tạo các bảng đơn giản và lồng nhau với dữ liệu do người dùng xác định.
Tạo DOCX miễn phí bằng DOCX4J - 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"));
Trích xuất văn bản từ DOCX
DOCX4J cung cấp lớp chuyên dụng để trích xuất dữ liệu từ tài liệu Microsoft Word DOCX chỉ với một vài dòng mã. Theo cách tương tự, nó cũng có thể trích xuất các tiêu đề, chú thích cuối trang, dữ liệu bảng, v.v. từ tệp Word.
Trích xuất văn bản từ DOCX Miễn phí - 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);
}
Tạo và chỉnh sửa tài liệu Word bằng Java API
DOCX4J cho phép các lập trình viên phần mềm tạo Tài liệu Word mới ở định dạng tệp DOCX. Các nhà phát triển cũng có thể tải tệp Microsoft Word DOCX hiện có để chỉnh sửa theo nhu cầu ứng dụng của họ. Nó cho phép bạn thêm đoạn văn mới, chèn văn bản, áp dụng căn chỉnh và đường viền văn bản, thay đổi kiểu văn bản, v.v.
Chuyển đổi tài liệu Microsoft Word Docx sang PDF
Thư viện Java mã nguồn mở docx4j cung cấp hỗ trợ hoàn chỉnh cho việc tạo và chuyển đổi tài liệu Microsoft Word docx sang các định dạng phổ biến khác nhau. Ở đó docx4j cung cấp 3 cách khác nhau để chuyển đổi tài liệu Microsoft Word docx sang PDF. Ví dụ sau đây sử dụng Documents4j (chạy từ xa) để chuyển đổi tệp docx sang PDF.
EWord Docx Documents Converion sang PDF qua Java
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();
}
}