วิธีดึงบาร์โค้ดจาก PDF ด้วย GroupDocs.Parser Java
การแยกวิเคราะห์เอกสาร PDF ตามเทมเพลตเป็นความต้องการทั่วไปเมื่อคุณต้องการดึงข้อมูลเชิงโครงสร้างเช่นบาร์โค้ด, QR code หรือฟิลด์ฟอร์ม ในบทแนะนำนี้คุณจะได้เรียนรู้ วิธีดึงบาร์โค้ดจาก PDF ด้วย GroupDocs.Parser สำหรับ Java ทีละขั้นตอน เราจะเริ่มด้วยการตั้งค่าสภาพแวดล้อม, กำหนดเทมเพลตบาร์โค้ด, ทำการแยกวิเคราะห์หน้า‑ต่อ‑หน้า, และสรุปด้วยการตรวจสอบค่าที่ดึงออกมา
คำตอบอย่างรวดเร็ว
- ไลบรารีใดที่ช่วยคุณดึงบาร์โค้ดจาก PDF? GroupDocs.Parser for Java.
- ประเภทบาร์โค้ดที่แสดงในตัวอย่างคืออะไร? QR code (คุณสามารถเปลี่ยนเป็น Code128, DataMatrix ฯลฯ ได้).
- ฉันต้องการไลเซนส์สำหรับการใช้งานจริงหรือไม่? ใช่ – มีการทดลองใช้ฟรีสำหรับการทดสอบ, แต่ต้องมีไลเซนส์ถาวรสำหรับการใช้งานจริง.
- ฉันสามารถเพิ่ม dependency ด้วย Maven ได้หรือไม่? แน่นอน – เพียงใส่ repository และ snippet ของ dependency ลงใน
pom.xmlของคุณ. - ต้องการเวอร์ชัน Java ใด? JDK 8 หรือสูงกว่า.
GroupDocs.Parser for Java คืออะไร?
GroupDocs.Parser for Java เป็นไลบรารีประสิทธิภาพสูงที่อ่าน PDF, DOCX, XLSX และรูปแบบอื่น ๆ อีกหลายประเภทโดยไม่ต้องใช้ Microsoft Office รองรับ 30+ รูปแบบบาร์โค้ด และสามารถประมวลผล PDF ได้ถึง 1,000 หน้า พร้อมคงการใช้หน่วยความจำให้อยู่ต่ำกว่า 200 MB โดยสตรีมหน้าทีละหน้า
ทำไมต้องใช้การแยกวิเคราะห์ตามเทมเพลตเพื่อดึงบาร์โค้ดจาก PDF?
การแยกวิเคราะห์ตามเทมเพลตช่วยให้คุณระบุตำแหน่งพิกัด X/Y ที่แน่นอนของบาร์โค้ดบนแต่ละหน้า ซึ่งทำให้ลดผลบวกเท็จและเพิ่มความเร็วในการตรวจจับอย่างมาก ในการทดสอบเบนช์มาร์ค การแยกวิเคราะห์ PDF 500‑หน้าที่มีบาร์โค้ดบนทุกหน้าใช้เวลา ต่ำกว่า 12 วินาที บนเซิร์ฟเวอร์ 8‑คอร์มาตรฐาน, เทียบกับการสแกนเอกสารเต็มรูปแบบที่อาจใช้เวลามากกว่านาที
ข้อกำหนดเบื้องต้น
- Java Development Kit (JDK) 8+ ติดตั้งและกำหนดค่าใน
PATHของคุณ - Maven (หรือเครื่องมือสร้างอื่น) สำหรับจัดการ dependency
- ความคุ้นเคยพื้นฐานกับคลาส Java และการจัดการข้อยกเว้น
ไลบรารีและ dependency ที่จำเป็น
เพิ่ม repository และ dependency ของ GroupDocs.Parser ลงใน pom.xml ของคุณตามตัวอย่างด้านล่าง:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
หรือคุณสามารถดาวน์โหลดเวอร์ชันล่าสุดโดยตรงจาก GroupDocs.Parser for Java releases
การรับไลเซนส์
คุณสามารถเริ่มต้นด้วยการทดลองใช้ฟรีของ GroupDocs.Parser โดยดาวน์โหลดจากเว็บไซต์อย่างเป็นทางการของพวกเขา สำหรับการใช้งานต่อเนื่อง ให้พิจารณาได้รับไลเซนส์ชั่วคราวหรือซื้อไลเซนส์ผ่าน this link
การตั้งค่า GroupDocs.Parser สำหรับ Java
เพื่อรวม GroupDocs.Parser เข้าในโครงการของคุณด้วย Maven:
- เพิ่ม repository และ dependency – คัดลอก XML snippet ด้านบนลงใน
pom.xmlของคุณ - นำเข้าคลาสที่จำเป็น – คลาสเช่น
Parser,Template,DocumentPageDataฯลฯ อยู่ในแพ็กเกจcom.groupdocs.parser - เริ่มต้น parser – สร้างอินสแตนซ์
Parserและชี้ไปที่ PDF ที่ต้องการประมวลผล
Parser เป็นคลาสหลักที่เปิดไฟล์ PDF และให้การเข้าถึงหน้าต่าง ๆ ของไฟล์ Template กำหนดโครงสร้างของฟิลด์ที่ต้องดึง, ส่วน DocumentPageData แสดงข้อมูลที่ดึงจากหน้าที่ระบุ
import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.DocumentPageData;
import com.groupdocs.parser.templates.Template;
import com.groupdocs.parser.templates.TemplateBarcode;
import com.groupdocs.parser.templates.Rectangle;
import com.groupdocs.parser.templates.Point;
import com.groupdocs.parser.templates.Size;
String documentPath = "YOUR_DOCUMENT_DIRECTORY/SamplePdfWithBarcodes";
try (Parser parser = new Parser(documentPath)) {
// Your parsing logic here
}
การทำงานของการแยกวิเคราะห์ตามเทมเพลตเป็นอย่างไร?
การแยกวิเคราะห์ตามเทมเพลตทำงานโดยการกำหนด template object ที่บรรยายตำแหน่งที่คาดว่าจะมีบาร์โค้ดบนหน้า parser จะสแกนเฉพาะพื้นที่สี่เหลี่ยมนั้นเท่านั้น, ลดเวลาในการประมวลผลและเพิ่มความแม่นยำ การจำกัดพื้นที่ค้นหายังช่วยลดการตรวจจับเท็จที่เกิดจากรูปแบบคล้ายกันในส่วนอื่นของเอกสาร
วิธีกำหนดฟิลด์บาร์โค้ด (java extract qr code)
TemplateBarcode แสดงการกำหนดฟิลด์บาร์โค้ด, ระบุประเภท, ตำแหน่งและขนาดภายในหน้า
ขั้นแรกอธิบายตำแหน่งและขนาดของบาร์โค้ดบนแต่ละหน้า ขั้นตอนนี้เป็นหัวใจของ parse pdf by template เพราะบอก parser ว่าจะมองหาในที่ใด พิกัดที่แม่นยำทำให้สแกนเน้นพื้นที่ที่ต้องการ, เพิ่มความเร็วและความเชื่อถือได้ของการตรวจจับ
TemplateBarcode barcode = new TemplateBarcode(
new Rectangle(new Point(405, 55), new Size(100, 50)),
"QR");
ที่นี่เราสร้าง TemplateBarcode ที่มุ่งเป้าไปที่ QR code ที่ตำแหน่ง (405, 55) ขนาด 100 × 50 พิกเซล
วิธีสร้างเทมเพลต (java read barcode pdf)
Template เป็นคอนเทนเนอร์ที่เก็บการกำหนดฟิลด์หนึ่งหรือหลายฟิลด์สำหรับเลย์เอาต์หน้าเฉพาะ
ต่อไปให้ห่อการกำหนดบาร์โค้ดไว้ในอ็อบเจ็กต์ Template เทมเพลตนี้สามารถนำกลับมาใช้ซ้ำได้สำหรับทุกหน้าในเอกสาร การจัดกลุ่มการกำหนดฟิลด์ช่วยหลีกเลี่ยงการสร้างใหม่สำหรับแต่ละหน้า, ทำให้โค้ดง่ายขึ้นและลดภาระในการแยกวิเคราะห์
Template template = new Template(Arrays.asList(new com.groupdocs.parser.templates.TemplateItem[]{barcode}));
วิธีแยกวิเคราะห์หน้าของเอกสารตามเทมเพลต (extract barcode from pdf)
Parser เป็นคลาสหลักที่โหลด PDF และใช้เทมเพลตเพื่อดึงฟิลด์ที่กำหนด
ตอนนี้เราจะวนลูปผ่านแต่ละหน้า, ใช้เทมเพลต, แล้วเก็บค่าบาร์โค้ด parser จะประมวลผลหน้าแบบต่อเนื่อง, ใช้เทมเพลตเพื่อหาพื้นที่บาร์โค้ดและดึงค่าที่เป็นสตริง วิธีนี้ทำงานได้อย่างมีประสิทธิภาพแม้กับเอกสารขนาดใหญ่ที่มีหลายหน้า
try (Parser parser = new Parser(documentPath)) {
for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
for (int i = 0; i < data.getCount(); i++) {
com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
: null;
String result = area == null ? "Not a template barcode field" : area.getValue();
}
}
}
ลูปจะตรวจสอบว่าพื้นที่ที่ระบุเป็น PageBarcodeArea หรือไม่ หากเป็น จะดึงค่าสตริงของบาร์โค้ด
วิธีพิมพ์ข้อมูลบาร์โค้ดที่ดึงออกมา (java extract qr code)
เพื่อการตรวจสอบอย่างรวดเร็ว คุณสามารถพิมพ์ค่าบาร์โค้ดแต่ละค่าออกทางคอนโซล ขั้นตอนง่าย ๆ นี้ช่วยให้คุณยืนยันว่าการดึงข้อมูลสำเร็จและดูข้อมูลที่เข้ารหัสในแต่ละบาร์โค้ดได้ เป็นประโยชน์อย่างยิ่งระหว่างการพัฒนาและดีบักก่อนนำผลลัพธ์ไปใช้ในระบบต่อไป
try (Parser parser = new Parser(documentPath)) {
for (DocumentPageData data : parser.parsePagesByTemplate(template)) {
for (int i = 0; i < data.getCount(); i++) {
com.groupdocs.parser.templates.PageBarcodeArea area = data.get(i).getPageArea() instanceof com.groupdocs.parser.templates.PageBarcodeArea
? (com.groupdocs.parser.templates.PageBarcodeArea) data.get(i).getPageArea()
: null;
String result = area == null ? "Not a template barcode field" : area.getValue();
System.out.println(result);
}
}
}
การรันสคริปต์นี้จะแสดงค่าบาร์โค้ด (หรือ QR code) ที่ดึงออกมาแต่ละค่า, ให้คุณยืนยันว่า วิธีดึงบาร์โค้ดจาก PDF ทำงานตามที่คาดหวัง
ปัญหาทั่วไปและวิธีแก้
| อาการ | สาเหตุที่เป็นไปได้ | วิธีแก้ |
|---|---|---|
| ไม่ได้ค่าบาร์โค้ดคืนมา | พิกัดเทมเพลตไม่ตรงกับตำแหน่งบาร์โค้ดจริง | ตรวจสอบพิกัด X/Y และขนาดโดยใช้เครื่องมือวัดของ PDF viewer |
Parser โยน FileNotFoundException | documentPath ไม่ถูกต้องหรือไม่มีสิทธิ์อ่านไฟล์ | ตรวจสอบว่าเส้นทางเป็นแบบ absolute หรือ relative กับโฟลเดอร์รากของโปรเจกต์และไฟล์สามารถอ่านได้ |
| ความแม่นยำการตรวจจับต่ำใน PDF สแกน | ความละเอียดภาพต่ำเกินไปสำหรับสแกนเนอร์บาร์โค้ด | ใช้การสแกนความละเอียดสูงกว่า (300 dpi หรือมากกว่า) หรือทำการพรี‑โปรเซส PDF ด้วยฟิลเตอร์เพิ่มความคม |
| เกิด Out‑of‑memory บน PDF ขนาดใหญ่ | Parser เก็บหน้ามากเกินไปในหน่วยความจำ | ประมวลผล PDF เป็นชุดย่อยหรือเพิ่มขนาด heap ของ JVM (-Xmx2g) |
การประยุกต์ใช้งานจริง
- การจัดการสินค้าคงคลัง – อ่านบาร์โค้ดจาก PDF ของผู้จัดจำหน่ายโดยอัตโนมัติเพื่ออัปเดตฐานข้อมูลสต็อก
- การตรวจสอบเอกสารทางกฎหมาย – ดึง QR code ที่ฝังลายเซ็นดิจิทัลเพื่อเป็นร่องรอยการตรวจสอบ
- การย้ายข้อมูล – ใช้บาร์โค้ดเป็นตัวระบุที่ไม่ซ้ำกันเมื่อย้ายบันทึกระหว่างระบบเก่า
พิจารณาด้านประสิทธิภาพ
- ปิด parser อย่างทันท่วงที – บล็อก
try‑with‑resourcesทำให้แน่ใจว่าไฟล์แฮนด์เดิลถูกปล่อย - ตรวจสอบการใช้หน่วยความจำ – PDF ขนาดใหญ่สามารถใช้ heap มาก; พิจารณาการสตรีมหรือประมวลผลเป็นชิ้นส่วน
คำถามที่พบบ่อย
Q: ฉันสามารถแยกวิเคราะห์บาร์โค้ดจากเอกสารสแกนได้หรือไม่?
A: ได้, ตราบใดที่บาร์โค้ดฝังอยู่ใน PDF. ตรวจสอบให้แน่ใจว่าความละเอียดการสแกนอย่างน้อย 300 dpi เพื่อการตรวจจับที่เชื่อถือได้.
Q: ฉันจะจัดการกับหลายประเภทบาร์โค้ดในหน้าเดียวอย่างไร?
A: กำหนด TemplateBarcode เพิ่มเติมโดยระบุพิกัดและการตั้งค่ารูปแบบบาร์โค้ดของแต่ละอัน, แล้วเพิ่มเข้าไปใน Template เดียวกัน.
Q: ถ้าเอกสารของฉันมีรูปภาพแทน PDF จะทำอย่างไร?
A: GroupDocs.Parser ทำงานหลักกับ PDF ที่เป็นข้อความ. แปลงรูปภาพเป็น PDF ที่ค้นหาได้ก่อน, แล้วจึงรัน parser.
Q: สามารถดึงข้อมูลจาก PDF ที่เข้ารหัสได้หรือไม่?
A: คุณต้องถอดรหัส PDF ด้วยไลบรารีที่รองรับก่อนส่งให้ GroupDocs.Parser.
Q: ไลบรารีนี้รองรับการประมวลผลแบบอะซิงโครนัสหรือไม่?
A: API เป็นแบบ synchronous, แต่คุณสามารถห่อการเรียก parser ในเธรดแยกหรือใช้ CompletableFuture ของ Java เพื่อให้ทำงานแบบไม่บล็อก.
สรุป
คุณมีขั้นตอนครบถ้วนและพร้อมใช้งานในสภาพแวดล้อมการผลิตสำหรับ การดึงบาร์โค้ดจาก PDF ด้วย GroupDocs.Parser for Java โดยกำหนดเทมเพลตบาร์โค้ด, วนลูปผ่านหน้า, และพิมพ์ผลลัพธ์ คุณสามารถอัตโนมัติขั้นตอนใด ๆ ที่เกี่ยวข้องกับบาร์โค้ดได้
ขั้นตอนต่อไป
- ทดลองใช้รูปแบบบาร์โค้ดอื่น (เช่น Code128, DataMatrix) โดยเปลี่ยนอาร์กิวเมนต์ที่สองของ
TemplateBarcode. - รวมหลาย
TemplateBarcodeเพื่อจัดการกับเลย์เอาต์บาร์โค้ดผสมบนหน้าเดียว. - สำรวจฟีเจอร์ API เพิ่มเติมเช่นการดึงข้อความ, การดึงรูปภาพ, และการสร้างเทมเพลตแบบกำหนดเองใน GroupDocs.Parser documentation.
อัปเดตล่าสุด: 2026-09-22
ทดสอบด้วย: GroupDocs.Parser 25.5 for Java
ผู้เขียน: GroupDocs