การประมวลผล PDF ด้วย Java: การค้นหาและไฮไลท์ด้วย GroupDocs

เคยรู้สึกว่าตัวเองจมอยู่ในทะเลของเอกสาร—PDF, ไฟล์ Word หรือรูปแบบอื่น ๆ และอยากหาคำหรือวลีเฉพาะได้อย่างง่ายดายหรือไม่? Java PDF processing ทำให้เป็นไปได้ ในคู่มือนี้คุณจะได้เรียนรู้วิธีค้นหาข้อความภายใน PDF และสร้างส่วนที่ไฮไลท์โดยใช้ GroupDocs.Parser for Java ไม่ว่าคุณจะสร้างเครื่องมือวิเคราะห์เอกสารหรืออัตโนมัติการตรวจทานเนื้อหา ขั้นตอนต่อไปนี้จะให้โซลูชันที่ชัดเจนและพร้อมใช้งานในผลิตภัณฑ์

คำตอบด่วน

  • ไลบรารีใดที่จัดการการค้นหาข้อความ PDF ใน Java? GroupDocs.Parser for Java.
  • ฉันต้องการไลเซนส์สำหรับการพัฒนาหรือไม่? ไลเซนส์ชั่วคราวทำงานสำหรับการทดสอบ; ไลเซนส์เต็มจำเป็นสำหรับการใช้งานจริง.
  • ฉันสามารถไฮไลท์หลายตำแหน่งพร้อมกันได้หรือไม่? ได้—ตั้งค่ารัศมีไฮไลท์และวนลูปผลลัพธ์.
  • การค้นหามีความแตกต่างตามตัวพิมพ์ใหญ่‑เล็กหรือไม่? โดยค่าเริ่มต้นเป็นการไม่แยกแยะตัวพิมพ์; คุณสามารถสลับได้ผ่าน SearchOptions.
  • รูปแบบใดบ้างที่รองรับ? มากกว่า 50 รูปแบบการนำเข้าและส่งออก รวมถึง PDF, DOCX, XLSX, PPTX, HTML, และรูปภาพ.

java pdf processing คืออะไร?

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

ทำไมต้องใช้ GroupDocs.Parser สำหรับ java pdf processing?

GroupDocs.Parser รองรับ ไฟล์รูปแบบกว่า 50 และสามารถประมวลผล PDF หลายร้อยหน้า ได้โดยไม่ต้องโหลดไฟล์ทั้งหมดเข้าสู่หน่วยความจำ ลดการใช้ RAM ได้ถึง 70 % เมื่อเทียบกับวิธีแบบง่าย ๆ เครื่องมือค้นหาของมันคืนค่า offset ที่แม่นยำ ทำให้คุณสร้างไฮไลท์ UI แบบกำหนดเองหรือส่งออกผลลัพธ์ไปยังระบบอื่นได้ ไลบรารีนี้ได้รับการบำรุงรักษาอย่างต่อเนื่อง เข้ากันได้กับ Java 8+ และมี artifacts ของ Maven และ Gradle เพื่อการรวมที่ง่าย

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

ก่อนที่เราจะเริ่มทำงาน โปรดตรวจสอบว่าคุณมีสิ่งจำเป็นต่อไปนี้พร้อมใช้งาน:

  • สภาพแวดล้อมการพัฒนา Java: ติดตั้ง JDK 8+ แล้ว.
  • Maven หรือ Gradle: สำหรับการจัดการ dependencies และการตั้งค่าโครงการ.
  • ไลบรารี GroupDocs.Parser for Java: ดาวน์โหลดหรือเพิ่มผ่าน dependency.
  • เอกสารตัวอย่าง: PDF หรือข้อความทดสอบสำหรับการค้นหา.
  • ความรู้พื้นฐาน Java: ความคุ้นเคยกับคลาส, เมธอด, และการจัดการไฟล์.

หากคุณยังไม่มีไลบรารี คุณสามารถดาวน์โหลดเวอร์ชันล่าสุดจาก ดาวน์โหลด GroupDocs หรือเพิ่มผ่าน Maven:

<dependency>
  <groupId>com.groupdocs</groupId>
  <artifactId>groupdocs-parser</artifactId>
  <version>21.12</version>
</dependency>

นำเข้าแพ็กเกจ

เพื่อเริ่มต้น ให้เรานำเข้าคลาสที่จำเป็นจาก GroupDocs.Parser: Parser คือคลาสหลักที่ใช้โหลดและโต้ตอบกับเอกสาร HighlightOptions กำหนดวิธีการไฮไลท์ข้อความที่ตรงกัน SearchOptions กำหนดพฤติกรรมการค้นหาเช่นการแยกแยะตัวพิมพ์ SearchResult แสดงผลการจับคู่แต่ละรายการในเอกสาร.

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.search.HighlightOptions;
import com.groupdocs.parser.search.SearchOptions;
import com.groupdocs.parser.search.SearchResult;

การนำเข้าเหล่านี้ครอบคลุมฟังก์ชันหลักสำหรับการแยกเอกสาร, การตั้งค่าไฮไลท์, และการดำเนินการค้นหา.

การทำงานของกระบวนการค้นหาและไฮไลท์เป็นอย่างไร?

โหลด PDF ของคุณ, ตั้งค่าอ็อบเจ็กต์ HighlightOptions, เรียกใช้ parser.search แล้ววนลูปผ่านคอลเลกชัน SearchResult เพื่อสร้างส่วนที่ไฮไลท์ กระบวนการทั้งหมดทำงานเป็นสองขั้นตอน: ขั้นแรก parser อ่านโครงสร้างเอกสาร; ขั้นที่สองเครื่องมือค้นหาสแกนสตรีมข้อความโดยใช้ตัวเลือกที่คุณกำหนด วิธีนี้ทำให้ประสิทธิภาพสูงแม้กับไฟล์ขนาดใหญ่.

คู่มือขั้นตอนต่อขั้นในการค้นหาข้อความพร้อมไฮไลท์

เราจะเดินผ่านกระบวนการที่แบ่งเป็นขั้นตอนที่จัดการได้และชัดเจน แต่ละขั้นมีคำอธิบายของตนเองเพื่อช่วยให้คุณเข้าใจเหตุผลและวิธีการ

ขั้นตอนที่ 1: เริ่มต้น Parser ด้วยเอกสารของคุณ

เกิดอะไรขึ้นที่นี่?
การสร้างอินสแตนซ์ของคลาส Parser ที่เชื่อมโยงกับไฟล์เอกสารของคุณทำให้คุณสามารถเข้าถึงและวิเคราะห์เนื้อหาได้

Parser โหลดเอกสารและให้เมธอดสำหรับการสกัดข้อความและการค้นหา.

try (Parser parser = new Parser("path/to/your/document.pdf")) {
    // your code here
}

ในความเป็นจริง:
คำสั่ง try-with-resources ทำให้แน่ใจว่าไฟล์ของคุณถูกปิดอย่างถูกต้องหลังการประมวลผล ป้องกันการรั่วของทรัพยากร แทนที่ "path/to/your/document.pdf" ด้วยเส้นทางไฟล์หรือ URL ที่แม่นยำของคุณ.

ขั้นตอนที่ 2: ตั้งค่า Highlight Options

ทำไมต้องกำหนด Highlight Options?
คุณอาจต้องการควบคุมลักษณะหรือพฤติกรรมของการไฮไลท์ผลการค้นหา—เช่นจำนวนอักขระที่แสดงรอบการจับคู่หรือสี (หากรองรับ)

ในตัวอย่างนี้ เราตั้งรัศมีไฮไลท์เป็น 15 อักขระ:

HighlightOptions ระบุรัศมีบริบทและการตั้งค่าภาพสำหรับผลการค้นหาที่ไฮไลท์.

HighlightOptions highlightOptions = new HighlightOptions(15);

นี่จะห่อหุ้มข้อความที่พบด้วยบริบทรอบ ๆ—เหมือนแว่นขยายรอบคีย์เวิร์ดของคุณ—ทำให้ง่ายต่อการเห็นตำแหน่งที่ตรงกัน.

ขั้นตอนที่ 3: ดำเนินการค้นหาในเอกสาร

การค้นหาทำงานอย่างไร?
โดยใช้ parser.search คุณระบุคีย์เวิร์ดหรือวลี, ตัวเลือกการค้นหา, แล้วรับคอลเลกชันที่สามารถวนได้ของอ็อบเจ็กต์ SearchResult

SearchOptions ตั้งค่าพารามิเตอร์การค้นหาเช่นการแยกแยะตัวพิมพ์ SearchResult เก็บรายละเอียดของแต่ละการจับคู่ รวมถึงข้อความที่ตรงและตำแหน่งของมัน.

Iterable<SearchResult> results = parser.search("lorem", new SearchOptions(true, false, false, highlightOptions));

อธิบายคอนสตรัคเตอร์ของ SearchOptions:

  • true: เปิดการค้นหาแบบไม่แยกแยะตัวพิมพ์.
  • false: ไม่จำกัดให้ตรงกับคำเต็มเท่านั้น.
  • false: ไม่ค้นหาแบบ regex.
  • highlightOptions: ส่งค่าการตั้งค่าไฮไลท์ของเรา.

การตั้งค่านี้จะค้นหาทุกการปรากฏของ "lorem" โดยไม่สนใจตัวพิมพ์ และสร้างส่วนที่ไฮไลท์.

ขั้นตอนที่ 4: จัดการการสนับสนุนการค้นหาและผลลัพธ์

ตรวจสอบว่าการค้นหาถูกสนับสนุนหรือไม่
บางรูปแบบอาจไม่รองรับการค้นหา — ควรตรวจสอบเสมอ:

parser.isSearchSupported() คืนค่า boolean ที่บ่งบอกว่ารูปแบบเอกสารที่โหลดรองรับการค้นหาข้อความหรือไม่.

if (results == null) {
    System.out.println("Search isn't supported in this document format.");
    return;
}

ประมวลผลแต่ละผลการค้นหา
วนลูปผ่านผลลัพธ์เพื่อสกัดและแสดงส่วนที่ตรงกับไฮไลท์:

อ็อบเจ็กต์ SearchResult ให้เข้าถึงวลีที่ตรงและบริบทรอบ ๆ

for (SearchResult result : results) {
    String snippet = String.format("%s%s%s", 
        result.getLeftHighlightItem().getText(), 
        result.getText(), 
        result.getRightHighlightItem().getText());
    System.out.println(snippet);
}

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

ปัญหาสาเหตุวิธีแก้
ไม่มีผลลัพธ์คืนค่ารูปแบบเอกสารไม่รองรับการค้นหาตรวจสอบว่า parser.isSearchSupported() คืนค่า true.
รัศมีไฮไลท์ดูเหมือนเล็กเกินไปรัศมีเริ่มต้นคือ 10 อักขระเพิ่มรัศมีใน HighlightOptions (เช่น new HighlightOptions(20)).
ข้อผิดพลาด Out‑of‑memory บน PDF ขนาดใหญ่ไฟล์ทั้งหมดถูกโหลดเข้าสู่หน่วยความจำใช้ Parser ในโหมดสตรีมมิ่งหรือประมวลผลไฟล์เป็นชิ้นส่วน; GroupDocs.Parser มีการสตรีมไฟล์ขนาดใหญ่อย่างมีประสิทธิภาพแล้ว.
การแยกแยะตัวพิมพ์ไม่ทำงานตามที่คาดหวังแฟล็ก caseSensitive ตั้งค่าไม่ถูกต้องตรวจสอบว่า SearchOptions(true, …) ตั้งค่า boolean ที่ถูกต้องสำหรับการไม่แยกแยะตัวพิมพ์.

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

Q: ฉันสามารถค้นหาคำหลายคำพร้อมกันได้หรือไม่?
A: ไม่โดยตรง; ให้วนลูปแต่ละคีย์เวิร์ดหรือสร้างแพทเทิร์น regex ที่จับคำที่ต้องการทั้งหมด.

Q: รัศมีไฮไลท์มีผลต่อรูปแบบเอกสารทั้งหมดหรือไม่?
A: สำหรับรูปแบบที่รองส่วนใหญ่ รัศมีทำงานสม่ำเสมอ; บางรูปแบบที่เป็นภาพจะละเลยเนื่องจากไม่มีเลเยอร์ข้อความพื้นฐาน.

Q: ฉันสามารถเปลี่ยนสีไฮไลท์ได้หรือไม่?
A: HighlightOptions ควบคุมรัศมีบริบท; สีภาพขึ้นอยู่กับโปรแกรมดู PDF ที่คุณใช้ ไม่ได้มาจาก parser เอง.

Q: การค้นหาแยกแยะตัวพิมพ์โดยค่าเริ่มต้นหรือไม่?
A: ไม่. โดยการตั้งค่า caseSensitive เป็น false ใน SearchOptions การค้นหาจะไม่แยกแยะตัวพิมพ์.

Q: วิธีนี้ทำงานกับภาพสแกนหรือเฉพาะไฟล์ที่เป็นข้อความเท่านั้น?
A: การค้นหาทำงานกับเอกสารที่เป็นข้อความ. สำหรับภาพสแกนต้องใช้ความสามารถ OCR ซึ่ง GroupDocs OCR มีเป็นโมดูลแยก.

แหล่งข้อมูล


อัปเดตล่าสุด: 2026-06-12
ทดสอบด้วย: GroupDocs.Parser 23.9 (Java)
ผู้เขียน: GroupDocs

บทเรียนที่เกี่ยวข้อง