ดึงข้อความจาก docx ด้วย GroupDocs.Viewer สำหรับ Java

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

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

Document Analysis with GroupDocs.Viewer for 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.

การเริ่มต้นพื้นฐาน

  1. นำเข้าคลาสที่จำเป็น.
  2. สร้างอินสแตนซ์ Viewer ที่ชี้ไปยังไฟล์ DOCX ของคุณ.
  3. ใช้ 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 เดียวกัน.

การประยุกต์ใช้งานจริง

  1. Search Engine Indexing: เก็บหมายเลขหน้าพร้อมกับข้อความที่ดึงเพื่อให้สามารถดึงส่วนย่อยได้อย่างแม่นยำ.
  2. Legal Document Review: ดึงทุกบรรทัดสำหรับการตรวจจับข้อกำหนดอัตโนมัติหรือกระบวนการลบข้อมูล.
  3. Content Migration: ย้ายเนื้อหา DOCX เก่าเข้าสู่ CMS พร้อมรักษาโครงสร้าง.
  4. 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, และอื่น ๆ.

แหล่งข้อมูล


อัปเดตล่าสุด: 2026-04-13
ทดสอบด้วย: GroupDocs.Viewer for Java 25.2
ผู้เขียน: GroupDocs