วิธีดึงบาร์โค้ดจาก 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:

  1. เพิ่ม repository และ dependency – คัดลอก XML snippet ด้านบนลงใน pom.xml ของคุณ
  2. นำเข้าคลาสที่จำเป็น – คลาสเช่น Parser, Template, DocumentPageData ฯลฯ อยู่ในแพ็กเกจ com.groupdocs.parser
  3. เริ่มต้น 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 โยน FileNotFoundExceptiondocumentPath ไม่ถูกต้องหรือไม่มีสิทธิ์อ่านไฟล์ตรวจสอบว่าเส้นทางเป็นแบบ absolute หรือ relative กับโฟลเดอร์รากของโปรเจกต์และไฟล์สามารถอ่านได้
ความแม่นยำการตรวจจับต่ำใน PDF สแกนความละเอียดภาพต่ำเกินไปสำหรับสแกนเนอร์บาร์โค้ดใช้การสแกนความละเอียดสูงกว่า (300 dpi หรือมากกว่า) หรือทำการพรี‑โปรเซส PDF ด้วยฟิลเตอร์เพิ่มความคม
เกิด Out‑of‑memory บน PDF ขนาดใหญ่Parser เก็บหน้ามากเกินไปในหน่วยความจำประมวลผล PDF เป็นชุดย่อยหรือเพิ่มขนาด heap ของ JVM (-Xmx2g)

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

  1. การจัดการสินค้าคงคลัง – อ่านบาร์โค้ดจาก PDF ของผู้จัดจำหน่ายโดยอัตโนมัติเพื่ออัปเดตฐานข้อมูลสต็อก
  2. การตรวจสอบเอกสารทางกฎหมาย – ดึง QR code ที่ฝังลายเซ็นดิจิทัลเพื่อเป็นร่องรอยการตรวจสอบ
  3. การย้ายข้อมูล – ใช้บาร์โค้ดเป็นตัวระบุที่ไม่ซ้ำกันเมื่อย้ายบันทึกระหว่างระบบเก่า

พิจารณาด้านประสิทธิภาพ

  • ปิด 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

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