ดึงข้อความจาก docx ด้วย GroupDocs.Viewer สำหรับ Java
คุณกำลังมองหา extract text from docx ไฟล์แบบโปรแกรมหรือไม่? ไม่ว่าคุณจะต้องการดึงหมายเลขหน้า, บันทึกทุกบรรทัดของข้อความ, หรือสร้างดัชนีที่ค้นหาได้, การทำด้วยตนเองอาจใช้เวลานานและเกิดข้อผิดพลาดได้. GroupDocs.Viewer for Java ทำให้กระบวนการง่ายขึ้นโดยให้ API ที่มีประสิทธิภาพสูงที่อ่านโครงสร้างของเอกสารและคืนค่าข้อความที่สะอาด.
ในบทเรียนนี้คุณจะได้เรียนรู้วิธีตั้งค่า GroupDocs.Viewer, ดึงเมตาดาต้าของหน้า, และดึงแต่ละบรรทัดข้อความจากไฟล์ DOCX. เมื่อจบคุณจะมีโซลูชันพร้อมใช้งานที่สามารถผสานรวมกับแบ็กเอนด์ที่ใช้ Java ใดก็ได้.

คำตอบด่วน
- What does “extract text from docx” mean? หมายความว่าเป็นการอ่านไฟล์ DOCX แบบโปรแกรมและดึงเนื้อหาข้อความธรรมดาเป็นบรรทัดต่อบรรทัด.
- Which library handles this? GroupDocs.Viewer for Java ให้คลาส
Viewerและ API ที่เกี่ยวข้อง. - Do I need a license? การทดลองใช้ฟรีทำงานสำหรับการประเมิน; จำเป็นต้องมีใบอนุญาตแบบชำระเงินสำหรับการใช้งานจริง.
- What Java version is required? JDK 8 + ใดก็ได้ที่เข้ากันได้กับ Maven.
- Can I process large batches? ใช่—โดยการใช้ซ้ำอินสแตนซ์
Viewerและจัดการหน้าผ่านสตรีม.
“extract text from docx” คืออะไร?
การดึงข้อความจากไฟล์ DOCX หมายถึงการอ่านโครงสร้าง XML ภายในของเอกสารและคืนค่าข้อความที่มนุษย์อ่านได้โดยไม่มีการจัดรูปแบบ. สิ่งนี้มีประโยชน์สำหรับการทำดัชนี, การค้นหา, หรือการส่งเนื้อหาไปยังกระบวนการวิเคราะห์ต่อไป.
ทำไมต้องใช้ GroupDocs.Viewer สำหรับ Java?
- Accuracy: รองรับการจัดวางที่ซับซ้อน, ตาราง, และเอกสารหลายคอลัมน์.
- Speed: เครื่องยนต์การเรนเดอร์ที่ปรับแต่งให้ทำงานเร็วแม้ไฟล์ขนาดใหญ่.
- Cross‑format support: API เดียวกันทำงานกับ PDF, PPTX, XLSX, และอื่น ๆ, ทำให้คุณสามารถใช้โค้ดซ้ำได้.
- No external dependencies: Java แท้, ไม่ต้องใช้ไลบรารีเนทีฟ.
ข้อกำหนดเบื้องต้น
- Java Development Kit (JDK) 8 หรือใหม่กว่า.
- Maven ที่ติดตั้งไว้สำหรับการจัดการ dependencies.
- ไฟล์ DOCX ที่คุณต้องการวิเคราะห์ (วางไว้ในโฟลเดอร์ที่รู้จัก).
การตั้งค่า GroupDocs.Viewer สำหรับ Java
เพิ่มรีโพซิทอรีของ GroupDocs และ dependency ลงใน pom.xml ของคุณ:
<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>
ขั้นตอนการรับใบอนุญาต
- Free Trial: ดาวน์โหลดการทดลองใช้ฟรีจาก GroupDocs downloads page.
- Temporary License: รับใบอนุญาตชั่วคราวสำหรับการทดสอบต่อเนื่องผ่าน temporary license page.
- Purchase: สำหรับการเข้าถึงเต็มรูปแบบและการสนับสนุน, พิจารณาซื้อใบอนุญาตผ่าน GroupDocs purchase portal.
การเริ่มต้นพื้นฐาน
- นำเข้าคลาสที่จำเป็น.
- สร้างอินสแตนซ์
Viewerที่ชี้ไปยังไฟล์ DOCX ของคุณ. - ใช้
ViewInfoOptions.forPngView(true)เพื่อขอข้อมูลระดับหน้า (เมตาดาต้าและบรรทัดข้อความ).
วิธีดึงข้อความจาก docx – คำแนะนำขั้นตอนต่อขั้นตอน
1. การดึงเมตาดาต้าหน้า
เมตาดาต้าหน้าเช่นหมายเลขหน้ามีความสำคัญเมื่อคุณต้องการสร้างโครงสร้างการนำทางหรืออ้างอิงส่วนเฉพาะ.
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): สั่งให้ API เก็บข้อมูลหน้าขณะเตรียมการเรนเดอร์ PNG.viewInfo.getPages(): คืนค่าคอลเลกชันที่แต่ละอ็อบเจ็กต์Pageมีหมายเลขและเมตาดาต้าอื่น ๆ.
Pro tip: ปิดการใช้งาน Viewer ภายในบล็อก try‑with‑resources เพื่อปล่อยทรัพยากรเนทีฟโดยอัตโนมัติ.
2. การดึงบรรทัดข้อความจากหน้า
ตอนนี้คุณสามารถระบุแต่ละหน้าแล้ว, ให้ดึงบรรทัดข้อความจริงออกมา.
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(): คืนค่ารายการของอ็อบเจ็กต์Line, แต่ละอ็อบเจ็กต์แสดงบรรทัดข้อความเดียวตามที่ปรากฏบนหน้า.- ลูปภายในพิมพ์แต่ละบรรทัด, แยกด้วยแท็บเพื่อความอ่านง่าย.
ปัญหาทั่วไป & วิธีแก้
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ |
|---|---|---|
หมายเลขหน้าเป็น null | เอกสารไม่ได้โหลดอย่างถูกต้อง | ตรวจสอบเส้นทางไฟล์และให้แน่ใจว่าไฟล์มีอยู่. |
| ไม่มีบรรทัดข้อความที่คืนค่า | รูปแบบไฟล์ไม่รองรับ | ตรวจสอบว่าเวอร์ชัน DOCX รองรับ; อัปเกรด GroupDocs หากจำเป็น. |
OutOfMemoryError บนไฟล์ขนาดใหญ่ | Viewer เก็บหน้าจำนวนมากในหน่วยความจำ | ประมวลผลหน้าเป็นชุดเล็ก ๆ หรือใช้ซ้ำอินสแตนซ์ Viewer เดียวกัน. |
การประยุกต์ใช้งานจริง
- Search Engine Indexing: เก็บหมายเลขหน้าพร้อมกับข้อความที่ดึงเพื่อให้สามารถดึงส่วนย่อยได้อย่างแม่นยำ.
- Legal Document Review: ดึงทุกบรรทัดสำหรับการตรวจจับข้อกำหนดอัตโนมัติหรือกระบวนการลบข้อมูล.
- Content Migration: ย้ายเนื้อหา DOCX เก่าเข้าสู่ CMS พร้อมรักษาโครงสร้าง.
- Reporting Dashboards: สรุปส่วนสำคัญโดยการดึงหัวข้อและรายการหัวข้อย่อย.
ข้อควรพิจารณาด้านประสิทธิภาพ
- Dispose Properly: ปิด
Viewerเสมอ (ใช้ try‑with‑resources). - Batch Processing: เมื่อจัดการเอกสารหลายไฟล์, ใช้อินสแตนซ์
Viewerเดียวต่อเธรดเพื่อ ลดภาระ. - Render Options: หากต้องการเฉพาะข้อความ, คุณสามารถข้ามการเรนเดอร์ PNG โดยใช้
ViewInfoOptions.forTextView()(ไม่ได้แสดงที่นี่) เพื่อลดเวลาในการประมวลผล.
สรุป
ตอนนี้คุณรู้วิธี extract text from docx ไฟล์โดยใช้ GroupDocs.Viewer for Java, ดึงหมายเลขหน้า, และวนลูปผ่านแต่ละบรรทัดของข้อความ. ส่วนประกอบเหล่านี้ทำให้คุณสร้าง pipeline การประมวลผลเอกสารที่มีประสิทธิภาพ, เชื่อถือได้, และง่ายต่อการบำรุงรักษา.
ขั้นตอนต่อไป
- ทดลองใช้รูปแบบอื่น (PDF, PPTX) ด้วย API เดียวกัน.
- ผสานข้อความที่ดึงกับเครื่องมือค้นหาแบบเต็มข้อความเช่น Elasticsearch.
- สำรวจตัวเลือกการจัดรูปแบบสำหรับภาพที่เรนเดอร์หากคุณต้องการตัวอย่างภาพ.
คำถามที่พบบ่อย
Q: GroupDocs.Viewer รองรับรูปแบบไฟล์อะไรบ้าง?
A: รองรับหลายรูปแบบรวมถึง DOCX, PDF, XLSX, PPTX, และอื่น ๆ อีกมาก.
Q: ฉันสามารถปรับแต่งรูปแบบผลลัพธ์เมื่อดึงบรรทัดได้หรือไม่?
A: ได้, โดยกำหนดค่า ViewInfoOptions (เช่น forTextView() สำหรับข้อความบริสุทธิ์).
Q: มีขีดจำกัดจำนวนหน้าที่สามารถประมวลผลได้หรือไม่?
A: ไม่มีขีดจำกัดที่แน่นอน, แต่เอกสารขนาดใหญ่มากอาจต้องประมวลผลเป็นชุดเพื่อประหยัดหน่วยความจำ.
Q: ฉันจะจัดการข้อยกเว้นใน GroupDocs.Viewer อย่างไร?
A: ห่อโค้ด Viewer ของคุณในบล็อก try‑catch และจัดการ ViewerException หรือ IOException ทั่วไปตามความต้องการ.
Q: เครื่องมือนี้สามารถผสานรวมกับเฟรมเวิร์ก Java อื่น ๆ ได้หรือไม่?
A: แน่นอน! ทำงานอย่างราบรื่นกับ Spring, Hibernate, Jakarta EE, และอื่น ๆ.
แหล่งข้อมูล
- เอกสาร GroupDocs
- อ้างอิง API
- ดาวน์โหลด GroupDocs.Viewer
- ซื้อใบอนุญาต
- ดาวน์โหลดการทดลองใช้ฟรี
- ขอใบอนุญาตชั่วคราว
อัปเดตล่าสุด: 2026-04-13
ทดสอบด้วย: GroupDocs.Viewer for Java 25.2
ผู้เขียน: GroupDocs