วิธีดึงรูปทรงจากเอกสาร Word ด้วย GroupDocs.Watermark ใน Java

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

คำตอบอย่างรวดเร็ว

  • ไลบรารีใดที่จัดการการดึงรูปทรง? GroupDocs.Watermark for Java.
  • เวอร์ชัน Java ขั้นต่ำ? JDK 8 หรือสูงกว่า.
  • ฉันต้องการไลเซนส์สำหรับการพัฒนาหรือไม่? ไลเซนส์ทดลองฟรีทำงานได้สำหรับการทดสอบ; ไลเซนส์เต็มจำเป็นสำหรับการใช้งานจริง.
  • ฉันสามารถประมวลผลเอกสารขนาดใหญ่ได้หรือไม่? ได้—ประมวลผลส่วนต่าง ๆ อย่างต่อเนื่องเพื่อรักษาการใช้หน่วยความจำให้ต่ำ.
  • Maven เป็นวิธีการตั้งค่าที่แนะนำหรือไม่? Maven ทำให้การจัดการ dependencies ง่ายขึ้นและแนะนำสำหรับโครงการส่วนใหญ่.

การดึงรูปทรงในเอกสาร Word คืออะไร?

การดึงรูปทรงคือกระบวนการอ่านไฟล์ Word โดยโปรแกรมและดึงรายละเอียดของแต่ละวัตถุกราฟิก—รูปภาพ, ภาพวาด, SmartArt, แผนภูมิ, หรือกล่องข้อความ—เพื่อให้คุณสามารถวิเคราะห์หรือจัดการกับพวกมันในโค้ดได้ เมตาดาต้าที่ดึงมามีประเภทของรูปทรง, มิติ, ตำแหน่ง, และข้อความที่เกี่ยวข้อง, ทำให้สามารถประมวลผลต่อได้เช่น การแปลงหรือการวิเคราะห์.

ทำไมต้องใช้ GroupDocs.Watermark สำหรับ Java?

GroupDocs.Watermark รองรับ 30+ รูปแบบเอกสาร และสามารถจัดการ ไฟล์หลายร้อยหน้า ได้โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ, ขอบคุณ API การสตรีมของมัน ไลบรารีประมวลผลเมตาดาต้ารูปทรงภายใน 200 ms ต่อเอกสาร 100 หน้า บนเซิร์ฟเวอร์ทั่วไป, ให้ผลลัพธ์ที่เร็วและเชื่อถือได้สำหรับการดำเนินการแบบแบตช์.

ข้อกำหนดเบื้องต้น

  • Java Development Kit (JDK) 8 หรือสูงกว่า.
  • IDE เช่น IntelliJ IDEA หรือ Eclipse.
  • ความคุ้นเคยพื้นฐานกับ Java I/O และ Maven.

เราจะใช้ GroupDocs.Watermark สำหรับ Java, SDK ที่แข็งแรงซึ่งมุ่งเน้นการใส่น้ำหนักแต่ยังให้ความสามารถในการตรวจสอบเอกสารอย่างลึกซึ้ง.

การตั้งค่า GroupDocs.Watermark สำหรับ Java

รวม SDK ผ่าน Maven หรือการดาวน์โหลดโดยตรง.

การใช้ Maven

เพิ่มการกำหนดค่าต่อไปนี้ในไฟล์ pom.xml ของคุณ:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/watermark/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-watermark</artifactId>
      <version>24.11</version>
   </dependency>
</dependencies>

ดาวน์โหลดโดยตรง

หรือดาวน์โหลดเวอร์ชันล่าสุดจาก GroupDocs.Watermark for Java releases.

การรับไลเซนส์

ไลเซนส์ทดลองฟรีช่วยให้คุณสำรวจคุณสมบัติทั้งหมดได้ สำหรับการใช้งานจริง, รับคีย์ไลเซนส์ถาวรจากพอร์ทัลของ GroupDocs.

คู่มือการใช้งาน

เราจะแบ่งการใช้งานออกเป็นสองส่วนหลัก: การโหลดเอกสารและการดึงข้อมูลรูปทรง.

วิธีดึงรูปทรงจากเอกสาร Word ด้วย GroupDocs.Watermark?

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

ขั้นตอนที่ 1: กำหนดค่า load options

WordProcessingLoadOptions ให้คุณปรับแต่งวิธีการแยกไฟล์ (เช่น เพิกเฉยส่วนหัว, เปิดโหมดเร็ว).

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.options.WordProcessingLoadOptions;

public void loadDocument() {
    // Configure load options for loading a Word document
    WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    
    // Create an instance of Watermarker with the specified document and load options
    Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.docx", loadOptions);
    
    // Close the watermarker to release resources
    watermarker.close();
}

ส่วนโค้ดนี้สร้าง Watermarker ที่เก็บเอกสารในหน่วยความจำและเตรียมพร้อมสำหรับการตรวจสอบ.

ขั้นตอนที่ 2: เข้าถึงเนื้อหา word‑processing

วนลูปผ่านส่วนและรูปทรง, พิมพ์รายละเอียดสำคัญเช่น ประเภท, มิติ, การจัดแนว, และว่ารูปทรงอยู่ในส่วนหัว/ส่วนท้ายหรือไม่.

import com.groupdocs.watermark.contents.WordProcessingContent;

public void extractShapeInformation() {
    // Load the Word document as configured previously
    WordProcessingLoadOptions loadOptions = new WordProcessingLoadOptions();
    Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.docx", loadOptions);

    // Obtain WordProcessingContent from the watermarker
    WordProcessingContent content = watermarker.getContent(WordProcessingContent.class);

    // Iterate over each section in the document's content
    for (var section : content.getSections()) {
        // Iterate over each shape within the current section
        for (var shape : section.getShapes()) {
            // Check if the shape is part of a header or footer
            if (shape.getHeaderFooter() != null) {
                System.out.println("In header/footer");
            }
            
            // Output details about each shape, such as type and dimensions
            System.out.println(shape.getShapeType());
            System.out.println(shape.getWidth());
            System.out.println(shape.getHeight());
            System.out.println(shape.isWordArt());
            System.out.println(shape.getRotateAngle());
            System.out.println(shape.getAlternativeText());
            System.out.println(shape.getName());
            System.out.println(shape.getX());
            System.out.println(shape.getY());
            System.out.println(shape.getText());

            // If the shape contains an image, output its details
            if (shape.getImage() != null) {
                System.out.println(shape.getImage().getWidth());
                System.out.println(shape.getImage().getHeight());
                System.out.println(shape.getImage().getBytes().length);
            }
            
            // Output alignment information of the shape
            System.out.println(shape.getHorizontalAlignment());
            System.out.println(shape.getVerticalAlignment());
            System.out.println(shape.getRelativeHorizontalPosition());
            System.out.println(shape.getRelativeVerticalPosition());
        }
    }

    // Close the watermarker to release resources
    watermarker.close();
}

ลูปนี้ครอบคลุมทุกวัตถุรูปทรง, ทำให้คุณไม่พลาดกราฟิกที่ซ่อนอยู่ในส่วนหัวหรือส่วนท้าย.

ปัญหาทั่วไปและวิธีแก้

  • ไฟล์ไม่พบ – ตรวจสอบเส้นทางแบบ absolute หรือ relative อีกครั้ง; ใช้ Paths.get(...).toAbsolutePath() เพื่อความชัดเจน.
  • คอขวดด้านประสิทธิภาพ – สำหรับเอกสารที่มีขนาดใหญ่กว่า 300 หน้า, ประมวลผลส่วนหนึ่งต่อหนึ่งและเรียก watermarker.close() หลังจากแต่ละชุดเพื่อปล่อยหน่วยความจำ.
  • ประเภทรูปทรงที่ไม่รองรับ – GroupDocs.Watermark ปัจจุบันรองรับ 25 ประเภทรูปทรงพื้นฐาน; สำหรับวัตถุ OfficeArt ที่กำหนดเอง, พิจารณาใช้ OpenXML SDK เป็นทางเลือก.

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

  1. การสร้างรายงานอัตโนมัติ – ดึงแผนภูมิเพื่อฝังในแดชบอร์ด.
  2. การตรวจสอบการปฏิบัติตาม – ตรวจสอบว่ากราฟิกที่ห้ามไม่ปรากฏในเอกสารที่ควบคุม.
  3. กระบวนการย้ายข้อมูล – แปลงรูปทรงเป็น SVG ก่อนย้ายเนื้อหาไปยังแพลตฟอร์มการเผยแพร่บนเว็บ.

ข้อควรพิจารณาด้านประสิทธิภาพ

  • ปล่อยอ็อบเจ็กต์ Watermarker อย่างรวดเร็วด้วย watermarker.close() เพื่อปล่อยทรัพยากรเนทีฟ.
  • เปิดใช้แฟล็ก fastLoad ใน WordProcessingLoadOptions เมื่อคุณต้องการเมตาดาต้ารูปทรงเท่านั้น, ไม่ต้องเรนเดอร์เนื้อหาเต็ม.
  • ประมวลผลเอกสารใน parallel streams เฉพาะเมื่อเซิร์ฟเวอร์ของคุณมีคอร์ CPU เพียงพอ; หลีกเลี่ยงอ็อบเจ็กต์ที่แชร์ที่ไม่ปลอดภัยต่อเธรด.

สรุป

ตอนนี้คุณรู้ วิธีดึงรูปทรง จากเอกสาร Word ด้วย GroupDocs.Watermark สำหรับ Java แล้ว โดยการโหลดเอกสารด้วย Watermarker, กำหนดค่า load options, และวนลูปผ่านแต่ละรูปทรง, คุณสามารถสร้างกระบวนการอัตโนมัติที่ทรงพลังซึ่งจัดการไฟล์ที่ซับซ้อนได้.

ขั้นตอนต่อไป

  • ทดลองใช้เมธอด getImageData() ของอ็อบเจ็กต์ Shape เพื่อส่งออกรูปภาพเป็น PNG.
  • สำรวจคุณลักษณะอื่นของ GroupDocs.Watermark เช่น การตรวจจับและการลบลายน้ำ.
  • รวมการดึงรูปทรงกับไลบรารี GroupDocs.Parser เพื่อดึงข้อความรอบ ๆ สำหรับการวิเคราะห์ที่ลึกซึ้งยิ่งขึ้น.

คำถามที่พบบ่อย

Q: GroupDocs.Watermark for Java คืออะไร?
A: GroupDocs.Watermark for Java เป็น SDK ครบวงจรที่ทำให้สามารถสร้าง, ตรวจจับ, และตรวจสอบเอกสารได้ในกว่า 30 รูปแบบไฟล์, รวมถึง DOCX, PDF, และ PPTX.

Q: ฉันสามารถดึงรูปทรงจากไฟล์ Word ที่ป้องกันด้วยรหัสผ่านได้หรือไม่?
A: ได้—ส่งรหัสผ่านไปยัง WordProcessingLoadOptions เมื่อสร้างอินสแตนซ์ Watermarker.

Q: ไลบรารีทำงานบนเซิร์ฟเวอร์ Linux หรือไม่?
A: แน่นอน; GroupDocs.Watermark ไม่จำกัดแพลตฟอร์มและทำงานบน OS ใดก็ได้ที่รองรับ Java 8+.

Q: สามารถประมวลผลรูปทรงได้กี่รูปในเอกสารเดียว?
A: SDK สามารถจัดการรูปทรงหลายพันรูป; การทดสอบแสดงประสิทธิภาพที่เสถียรบนเอกสารที่มีรูปทรงแยกกันสูงสุด 5,000 รูป.

Q: จำเป็นต้องมีไลเซนส์แยกสำหรับการดึงรูปทรงหรือไม่?
A: ไม่, การดึงรูปทรงรวมอยู่ในไลเซนส์มาตรฐานของ GroupDocs.Watermark.


อัปเดตล่าสุด: 2026-09-06
ทดสอบด้วย: GroupDocs.Watermark 23.12 for Java
ผู้เขียน: GroupDocs

บทแนะนำที่เกี่ยวข้อง