Trích xuất văn bản từ docx bằng GroupDocs.Viewer cho Java
Bạn có đang muốn trích xuất văn bản từ docx một cách lập trình không? Cho dù bạn cần lấy số trang, nắm bắt từng dòng văn bản, hoặc xây dựng các chỉ mục có thể tìm kiếm, việc thực hiện thủ công có thể tốn thời gian và dễ gây lỗi. GroupDocs.Viewer for Java làm cho quá trình này trở nên đơn giản bằng cách cung cấp các API hiệu suất cao đọc cấu trúc tài liệu và trả về dữ liệu văn bản sạch.
Trong hướng dẫn này, bạn sẽ học cách thiết lập GroupDocs.Viewer, trích xuất siêu dữ liệu trang, và lấy từng dòng văn bản từ một tệp DOCX. Khi kết thúc, bạn sẽ có một giải pháp sẵn sàng sử dụng mà bạn có thể tích hợp vào bất kỳ backend nào dựa trên Java.

Câu trả lời nhanh
- “extract text from docx” có nghĩa là gì? Nó có nghĩa là đọc một tệp DOCX một cách lập trình và lấy nội dung văn bản thuần dòng theo dòng.
- Thư viện nào xử lý việc này? GroupDocs.Viewer for Java cung cấp lớp
Viewervà các API liên quan. - Tôi có cần giấy phép không? Bản dùng thử miễn phí đủ cho việc đánh giá; giấy phép trả phí là bắt buộc cho môi trường sản xuất.
- Yêu cầu phiên bản Java nào? Bất kỳ JDK 8+ nào tương thích với Maven.
- Tôi có thể xử lý các lô lớn không? Có — bằng cách tái sử dụng các thể hiện
Viewervà xử lý các trang trong luồng.
“extract text from docx” là gì?
Việc trích xuất văn bản từ một tệp DOCX có nghĩa là đọc cấu trúc XML nội bộ của tài liệu và trả về văn bản có thể đọc được cho con người mà không có định dạng. Điều này hữu ích cho việc lập chỉ mục, tìm kiếm, hoặc đưa nội dung vào các pipeline phân tích downstream.
Tại sao nên sử dụng GroupDocs.Viewer cho Java?
- Độ chính xác: Xử lý các bố cục phức tạp, bảng và tài liệu đa cột.
- Tốc độ: Động cơ render được tối ưu hoạt động nhanh ngay cả với các tệp lớn.
- Hỗ trợ đa định dạng: Cùng một API hoạt động cho PDF, PPTX, XLSX và nhiều định dạng khác, vì vậy bạn có thể tái sử dụng mã.
- Không phụ thuộc bên ngoài: Thuần Java, không cần thư viện gốc.
Yêu cầu trước
- Java Development Kit (JDK) 8 hoặc mới hơn.
- Maven đã được cài đặt để quản lý phụ thuộc.
- Một tệp DOCX mà bạn muốn phân tích (đặt nó trong một thư mục đã biết).
Cài đặt GroupDocs.Viewer cho Java
Thêm repository và phụ thuộc GroupDocs vào pom.xml của bạn:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/viewer/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-viewer</artifactId>
<version>25.2</version>
</dependency>
</dependencies>
Các bước lấy giấy phép
- Free Trial: Download a free trial from the trang tải xuống GroupDocs.
- Temporary License: Obtain a temporary license for extended testing through the trang giấy phép tạm thời.
- Purchase: For full access and support, consider purchasing a license via the cổng mua GroupDocs.
Khởi tạo cơ bản
- Nhập các lớp cần thiết.
- Tạo một thể hiện
Viewertrỏ tới tệp DOCX của bạn. - Sử dụng
ViewInfoOptions.forPngView(true)để yêu cầu thông tin cấp trang (siêu dữ liệu và các dòng văn bản).
Cách trích xuất văn bản từ docx – Hướng dẫn từng bước
1. Trích xuất siêu dữ liệu trang
Siêu dữ liệu trang như số trang là cần thiết khi bạn cần xây dựng cấu trúc điều hướng hoặc tham chiếu các phần cụ thể.
try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(true);
ViewInfo viewInfo = viewer.getViewInfo(viewInfoOptions);
for (Page page : viewInfo.getPages()) {
int pageNumber = page.getNumber();
System.out.println("Page: " + pageNumber); // Outputs the page number
}
}
ViewInfoOptions.forPngView(true): Hướng dẫn API thu thập thông tin trang trong khi chuẩn bị render PNG.viewInfo.getPages(): Trả về một collection trong đó mỗi đối tượngPagechứa số trang và các siêu dữ liệu khác.
Mẹo: Hủy đối tượng Viewer bên trong khối try‑with‑resources để giải phóng tài nguyên gốc tự động.
2. Trích xuất các dòng văn bản từ các trang
Bây giờ bạn đã có thể xác định mỗi trang, hãy lấy các dòng văn bản thực tế.
try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(true);
ViewInfo viewInfo = viewer.getViewInfo(viewInfoOptions);
for (Page page : viewInfo.getPages()) {
System.out.println("Page: " + page.getNumber());
System.out.println("Text lines:");
for (Line line : page.getLines()) {
String lineText = line.getValue();
System.out.print(lineText + "\t");
}
}
}
page.getLines(): Trả về một danh sách các đối tượngLine, mỗi đối tượng đại diện cho một dòng văn bản như nó xuất hiện trên trang.- Vòng lặp bên trong in mỗi dòng, ngăn cách bằng tab để dễ đọc.
Các vấn đề thường gặp & Giải pháp
| Triệu chứng | Nguyên nhân khả dĩ | Cách khắc phục |
|---|---|---|
null số trang | Tài liệu không được tải đúng cách | Kiểm tra đường dẫn tệp và đảm bảo tệp tồn tại. |
| Không có dòng văn bản nào được trả về | Định dạng tệp không được hỗ trợ | Kiểm tra xem phiên bản DOCX có được hỗ trợ không; nâng cấp GroupDocs nếu cần. |
OutOfMemoryError trên tệp lớn | Viewer giữ quá nhiều trang trong bộ nhớ | Xử lý các trang theo lô nhỏ hơn hoặc tái sử dụng cùng một thể hiện Viewer. |
Ứng dụng thực tiễn
- Lập chỉ mục công cụ tìm kiếm: Lưu trữ số trang cùng với văn bản đã trích xuất để cho phép truy xuất đoạn trích chính xác.
- Đánh giá tài liệu pháp lý: Lấy mọi dòng để tự động phát hiện điều khoản hoặc quy trình xóa nhạy cảm.
- Di chuyển nội dung: Di chuyển nội dung DOCX cũ vào CMS trong khi giữ nguyên cấu trúc.
- Bảng điều khiển báo cáo: Tóm tắt các phần chính bằng cách trích xuất tiêu đề và các điểm bullet.
Các cân nhắc về hiệu năng
- Giải phóng đúng cách: Luôn đóng
Viewer(sử dụng try‑with‑resources). - Xử lý theo lô: Khi xử lý nhiều tài liệu, tái sử dụng một thể hiện
Viewerduy nhất cho mỗi luồng để giảm chi phí. - Tùy chọn render: Nếu bạn chỉ cần văn bản, bạn có thể bỏ qua việc render PNG bằng cách sử dụng
ViewInfoOptions.forTextView()(không được hiển thị ở đây) để giảm thời gian xử lý.
Kết luận
Bạn đã biết cách trích xuất văn bản từ docx bằng GroupDocs.Viewer cho Java, lấy số trang và lặp qua từng dòng văn bản. Những khối xây dựng này cho phép bạn tạo các pipeline xử lý tài liệu mạnh mẽ, nhanh chóng, đáng tin cậy và dễ bảo trì.
Các bước tiếp theo
- Thử nghiệm với các định dạng khác (PDF, PPTX) bằng cùng một API.
- Kết hợp văn bản đã trích xuất với công cụ tìm kiếm toàn văn như Elasticsearch.
- Khám phá các tùy chọn định dạng cho hình ảnh đã render nếu bạn cũng cần bản xem trước trực quan.
Câu hỏi thường gặp
Q: GroupDocs.Viewer hỗ trợ những định dạng tệp nào?
A: Nó hỗ trợ nhiều định dạng, bao gồm DOCX, PDF, XLSX, PPTX và nhiều hơn nữa.
Q: Tôi có thể tùy chỉnh định dạng đầu ra khi trích xuất các dòng không?
A: Có, bằng cách cấu hình ViewInfoOptions (ví dụ, forTextView() để lấy văn bản thuần).
Q: Có giới hạn số trang có thể xử lý không?
A: Không có giới hạn cứng, nhưng các tài liệu rất lớn có thể yêu cầu xử lý theo lô để tiết kiệm bộ nhớ.
Q: Làm thế nào để xử lý ngoại lệ trong GroupDocs.Viewer?
A: Bao quanh mã Viewer của bạn bằng khối try‑catch và xử lý ViewerException hoặc IOException chung khi cần.
Q: Công cụ này có thể tích hợp với các framework Java khác không?
A: Chắc chắn! Nó hoạt động liền mạch với Spring, Hibernate, Jakarta EE và nhiều hơn nữa.
Tài nguyên
- Tài liệu GroupDocs
- Tham khảo API
- Tải xuống GroupDocs.Viewer
- Mua giấy phép
- Tải xuống bản dùng thử
- Yêu cầu giấy phép tạm thời
Last Updated: 2026-04-13
Tested With: GroupDocs.Viewer for Java 25.2
Author: GroupDocs