สร้างลายเซ็นบาร์โค้ดใน Java – ปรับปรุงบาร์โค้ด PDF

บทนำ

เคยต้องการย้ายตำแหน่งบาร์โค้ดบนฉลากการจัดส่งหลายพันฉลากหลังจากการออกแบบบรรจุภัณฑ์ใหม่หรือไม่? หรืออัปเดตตำแหน่งบาร์โค้ดในเทมเพลตสัญญาต่าง ๆ เมื่อทีมกฎหมายของคุณเปลี่ยนแปลงรูปแบบเอกสาร? คุณไม่ได้อยู่คนเดียว—สถานการณ์เหล่านี้เกิดขึ้นบ่อยในกระบวนการอัตโนมัติของเอกสาร

การอัปเดต barcode signature ด้วยตนเองนั้นน่าเบื่อและเสี่ยงต่อข้อผิดพลาด ด้วย GroupDocs.Signature for Java คุณสามารถ create barcode signature objects และแก้ไขได้ด้วยไม่กี่บรรทัดของโค้ด ไม่ว่าคุณจะสร้างระบบสินค้าคงคลัง, ทำอัตโนมัติเอกสารโลจิสติกส์, หรือจัดการสัญญากฎหมาย การอัปเดตบาร์โค้ดแบบโปรแกรมช่วยประหยัดเวลาการทำงานด้วยมือหลายชั่วโมง

สิ่งที่คุณจะเรียนรู้ในบทแนะนำนี้:

  • ตั้งค่าและเริ่มต้น Signature API กับเอกสารของคุณ
  • ค้นหา barcode signature ที่มีอยู่อย่างมีประสิทธิภาพ
  • อัปเดตตำแหน่ง, ขนาด, และคุณสมบัติอื่น ๆ ของบาร์โค้ด (รวมถึงวิธี change barcode size)
  • จัดการข้อผิดพลาดและกรณีขอบต่าง ๆ
  • เพิ่มประสิทธิภาพการทำงานสำหรับการประมวลผลเป็นชุด

มาเริ่มกันโดยตรวจสอบว่าคุณมีทุกอย่างที่ต้องการก่อนเขียนโค้ด

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

ก่อนที่คุณจะอัปเดตโค้ด Java ของ barcode signature ในโปรเจกต์ของคุณ ให้แน่ใจว่าคุณมีสิ่งจำเป็นต่อไปนี้ครบถ้วน:

ไลบรารีที่จำเป็น

  • GroupDocs.Signature for Java: เวอร์ชัน 23.12 หรือใหม่กว่า (เวอร์ชันก่อนหน้าอาจไม่มีเมธอดอัปเดตที่เราจะใช้)

การตั้งค่าสภาพแวดล้อม

  • Java Development Kit (JDK) ที่ทำงานได้ (แนะนำ JDK 8 หรือสูงกว่า)
  • IDE เช่น IntelliJ IDEA, Eclipse, หรือ VS Code

ความรู้พื้นฐานที่ต้องมี

  • Java เบื้องต้น (คลาส, อ็อบเจ็กต์, การจัดการข้อยกเว้น)
  • การจัดการไฟล์ใน Java (เส้นทาง, ไดเรกทอรี)
  • ตัวเลือก: ความเข้าใจโครงสร้าง PDF และแนวคิดบาร์โค้ด

มีครบหรือยัง? ดีมาก! มาเริ่มติดตั้งไลบรารีกัน

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

การเพิ่ม GroupDocs.Signature ไปยังโปรเจกต์ Java ของคุณทำได้ง่าย เลือกเครื่องมือสร้างที่คุณใช้:

Maven

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Gradle

implementation 'com.groupdocs:groupdocs-signature:23.12'

Direct Download: หากคุณไม่ได้ใช้เครื่องมือสร้างใด ๆ ให้ดาวน์โหลดไฟล์ JAR ล่าสุดจาก GroupDocs.Signature for Java releases แล้วเพิ่มลงใน classpath ของโปรเจกต์ด้วยตนเอง

การรับใบอนุญาต

GroupDocs.Signature ทำงานได้ทั้งแบบทดลองและแบบเต็ม:

  • Free Trial – เหมาะสำหรับการทดสอบและงาน proof‑of‑concept
  • Temporary License – สำหรับการประเมินผลระยะยาวในโครงการเฉพาะ
  • Full License – ลบลายน้ำและข้อจำกัดการใช้งานสำหรับการผลิต

Pro Tip: เริ่มต้นด้วยการทดลองฟรีเพื่อยืนยันว่า API ตรงตามความต้องการของคุณ แล้วอัปเกรดเมื่อพร้อมใช้งานจริง

เมื่อไลบรารีติดตั้งแล้ว มาเริ่มลงลึกในขั้นตอนการทำงานจริงกัน

คำตอบด่วน

  • What does “create barcode signature” mean? หมายถึงการสร้างอ็อบเจ็กต์บาร์โค้ดที่สามารถวาง, ย้าย, หรือแก้ไขภายในเอกสารผ่าน API.
  • Can I change barcode size after it’s created? ได้ – ใช้เมธอด setWidth และ setHeight หรือปรับพิกัด Left/Top.
  • Do I need a license to update barcodes? การทดลองใช้ทำงานสำหรับการพัฒนา; ใบอนุญาตเต็มจำเป็นสำหรับการผลิต.
  • Is this works only with PDFs? ไม่ – โค้ดเดียวกันทำงานกับ Word, Excel, PowerPoint, และไฟล์รูปภาพ.
  • How many documents can I process at once? รองรับการประมวลผลเป็นชุด; เพียงจัดการหน่วยความจำด้วย try‑with‑resources.

วิธีสร้าง barcode signature ใน Java

ขั้นตอนที่ 1: เริ่มต้นอินสแตนซ์ Signature

ทำไมขั้นตอนนี้สำคัญ

ให้คิดว่าอ็อบเจ็กต์ Signature เป็นประตูสู่เอกสารของคุณ มันโหลด PDF (หรือรูปแบบที่รองรับอื่น) เข้าไปในหน่วยความจำและให้คุณเข้าถึงการดำเนินการที่เกี่ยวกับลายเซ็นทั้งหมด หากไม่มีการเริ่มต้นนี้ คุณไม่สามารถค้นหาหรือแก้ไขอะไรได้

การใช้งาน

First, import the required class and define the file path:

import com.groupdocs.signature.Signature;
import java.nio.file.Paths;
String filePath = "YOUR_DOCUMENT_DIRECTORY/your_document.pdf";
Signature signature = new Signature(filePath);

What’s happening? คอนสตรัคเตอร์อ่านไฟล์และเตรียมพร้อมสำหรับการจัดการ เส้นทางสามารถเป็นแบบเต็มหรือแบบสัมพันธ์—เพียงตรวจสอบให้แน่ใจว่ากระบวนการ Java มีสิทธิ์อ่าน

Pro tip: ตรวจสอบความถูกต้องของเส้นทางก่อนสร้างอินสแตนซ์ Signature เพื่อหลีกเลี่ยง FileNotFoundException.

ขั้นตอนที่ 2: ค้นหา Barcode Signatures

ทำไมการค้นหาก่อนจึงสำคัญ

คุณไม่สามารถอัปเดตสิ่งที่คุณหาไม่เจอ GroupDocs.Signature มี API การค้นหาที่ทรงพลังซึ่งกรองลายเซ็นตามประเภท

การใช้งาน

Import the search‑related classes:

import com.groupdocs.signature.options.search.BarcodeSearchOptions;
import com.groupdocs.signature.domain.signatures.BarcodeSignature;
import java.util.List;

Configure the search options (default searches all pages):

BarcodeSearchOptions options = new BarcodeSearchOptions();

Execute the search:

List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);

ตอนนี้คุณมีรายการของอ็อบเจ็กต์ BarcodeSignature ซึ่งแต่ละอ็อบเจ็กต์มีคุณสมบัติเช่น Left, Top, Width, Height, Text, และ EncodeType

Performance note: สำหรับ PDF ขนาดใหญ่มาก พิจารณาจำกัดการค้นหาให้แคบลงไปที่หน้าหรือประเภทบาร์โค้ดเฉพาะเพื่อเร่งความเร็ว

ขั้นตอนที่ 3: อัปเดตคุณสมบัติของ Barcode

เหตุการณ์หลัก: การแก้ไข Barcode Signatures

ตอนนี้คุณสามารถ change barcode size หรือย้ายตำแหน่งได้ตามต้องการ

การใช้งาน

First, import exception handling classes:

import java.io.File;
import com.groupdocs.signature.exception.GroupDocsSignatureException;

Set up the output path where the modified document will be saved:

String fileName = Paths.get(filePath).getFileName().toString();
String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY/UpdateBarcode/" + fileName).getPath();
checkDir(outputFilePath);

Now, locate the first barcode (or iterate over the list) and apply the changes:

if (signatures.size() > 0) {
    BarcodeSignature barcodeSignature = signatures.get(0);
    
    // Update the barcode's position and size
    barcodeSignature.setLeft(100);
    barcodeSignature.setTop(100);
    
    // Apply the changes to the document
    boolean result = signature.update(outputFilePath, barcodeSignature);
    
    if (result) {
        System.out.println("Signature with Barcode '" +
            barcodeSignature.getText() + "' and encode type '"+
            barcodeSignature.getEncodeType().getTypeName() + "' was updated in the document ['" +
            fileName + "'].");
    }
} catch (GroupDocsSignatureException e) {
    System.err.println("Error updating signature: " + e.getMessage());
}

Key points:

  • setLeft / setTop ย้ายบาร์โค้ด (พิกัดวัดจากมุมบน‑ซ้าย)
  • เมธอด update เขียนไฟล์ใหม่; ไฟล์ต้นฉบับยังคงไม่ถูกแก้ไข
  • ห่อการเรียกใช้ในบล็อก try‑catch เพื่อจัดการ GroupDocsSignatureException ที่อาจเกิด

ควรอัปเดต Barcode Signatures เมื่อใด?

การเข้าใจสถานการณ์ที่เหมาะสมช่วยให้คุณออกแบบกระบวนการทำงานที่มีประสิทธิภาพ

การรีแบรนด์เอกสารและอัปเดตเทมเพลต

หัวจดหมายหรือเลย์เอาต์ฉลากใหม่มักหมายถึงบาร์โค้ดต้องย้ายตำแหน่ง การทำอัตโนมัติด้วย Java ดีกว่าการแก้ไขหลายร้อยไฟล์ด้วยมือ

การประมวลผลเป็นชุดหลังการย้ายข้อมูล

PDF ที่ย้ายมานั้นอาจไม่สอดคล้องกับมาตรฐานการวางบาร์โค้ดปัจจุบันของคุณ การอัปเดตเป็นชุดช่วยคืนความสอดคล้องโดยไม่ต้องสร้างเอกสารใหม่แต่ละไฟล์

การปรับเปลี่ยนเพื่อให้สอดคล้องกับกฎระเบียบ

อุตสาหกรรมเช่นโลจิสติกส์หรือสุขภาพอาจเปลี่ยนกฎการวางบาร์โค้ด สคริปต์สั้น ๆ ช่วยให้คุณปฏิบัติตามกฎได้

การสร้างเอกสารแบบไดนามิก

หากความยาวของเนื้อหาเอกสารเปลี่ยนแปลง คุณอาจต้องปรับพิกัดบาร์โค้ดแบบเรียลไทม์

เมื่อไม่ควรใช้การอัปเดต: หากคุณกำลังสร้างเอกสารใหม่ทั้งหมด ให้วางบาร์โค้ดให้ถูกต้องตั้งแต่แรก แทนการเพิ่มแล้วอัปเดตภายหลัง

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

ปัญหา 1: “ไม่พบ Barcode Signatures”

Symptom: การค้นหาส่งคืนรายการว่างแม้ว่าคุณจะเห็นบาร์โค้ดใน PDF

Possible Causes

  • บาร์โค้ดฝังเป็นภาพหรือฟิลด์ฟอร์ม ไม่ใช่อ็อบเจ็กต์ลายเซ็น
  • เอกสารถูกป้องกันด้วยรหัสผ่าน
  • คุณกำลังกรองตามประเภทบาร์โค้ดเฉพาะที่ไม่ตรงกัน

Solution

BarcodeSearchOptions options = new BarcodeSearchOptions();
options.setAllPages(true); // Search all pages, not just the first
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);

if (signatures.isEmpty()) {
    System.out.println("No barcode signatures found. The barcodes might be images, not signature objects.");
}

ปัญหา 2: เอกสารที่อัปเดตดูเสียหาย

Symptom: PDF ไม่สามารถเปิดได้หลังการอัปเดต

Possible Causes

  • พื้นที่ดิสก์ไม่เพียงพอ
  • โฟลเดอร์ปลายทางไม่มีอยู่
  • สิทธิ์ของระบบไฟล์บล็อกการเขียน

Solution

File outputDir = new File("YOUR_OUTPUT_DIRECTORY/UpdateBarcode/");
if (!outputDir.exists()) {
    outputDir.mkdirs(); // Create directories if they don't exist
}

// Check write permissions
if (!outputDir.canWrite()) {
    throw new IOException("Cannot write to output directory: " + outputDir.getAbsolutePath());
}

ปัญหา 3: ประสิทธิภาพลดลงกับเอกสารขนาดใหญ่

Symptom: การประมวลผลช้าลงอย่างมากสำหรับ PDF ที่มีหน้ามากกว่า ~50 หน้า

Solution

BarcodeSearchOptions options = new BarcodeSearchOptions();
options.setPageNumber(1); // Start with page 1
options.setPagesSetup(new PagesSetup());
options.getPagesSetup().setFirstPage(true);
options.getPagesSetup().setLastPage(false);

เคล็ดลับการเพิ่มประสิทธิภาพ

การจัดการหน่วยความจำสำหรับการประมวลผลเป็นชุด

ประมวลผลหนึ่งเอกสารต่อครั้งและให้ Java ทำความสะอาดทรัพยากรโดยอัตโนมัติ:

List<String> documentPaths = getDocumentList();
for (String path : documentPaths) {
    try (Signature sig = new Signature(path)) {
        // Process one document at a time
        // Signature instance is auto‑closed after each iteration
    }
}

การแคชผลการค้นหา

หากต้องการแก้ไขหลายคุณสมบัติของบาร์โค้ดเดียวกัน ค้นหาเพียงครั้งเดียวและใช้รายการซ้ำ:

List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, options);

// Update multiple properties
for (BarcodeSignature barcode : signatures) {
    barcode.setLeft(100);
    barcode.setTop(100);
    barcode.setWidth(200);
    barcode.setHeight(50);
}

// Single update call with all changes
signature.update(outputPath, signatures);

การประมวลผลแบบขนานสำหรับชุดขนาดใหญ่

ใช้ Java streams เพื่อเร่งการประมวลผลหลายพันเอกสาร:

documentPaths.parallelStream().forEach(path -> {
    try (Signature sig = new Signature(path)) {
        List<BarcodeSignature> barcodes = sig.search(BarcodeSignature.class, new BarcodeSearchOptions());
        if (!barcodes.isEmpty()) {
            BarcodeSignature barcode = barcodes.get(0);
            barcode.setLeft(50);  // New position for smaller boxes
            barcode.setTop(10);
            sig.update(generateOutputPath(path), barcode);
        }
    } catch (Exception e) {
        logError(path, e);
    }
});

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

กรณีใช้ 1: การอัปเดตฉลากโลจิสติกส์อัตโนมัติ

บริษัทขนส่งเปลี่ยนขนาดกล่อง ทำให้ต้องย้ายตำแหน่งบาร์โค้ดบนฉลากที่มีอยู่ 50,000 ฉลาก โค้ดการประมวลผลแบบขนานข้างต้นลดเวลางานจากหลายวันเหลือไม่กี่ชั่วโมง

กรณีใช้ 2: การทำมาตรฐานเทมเพลตสัญญา

ที่ปรึกษากฎหมายกำหนดตำแหน่งบาร์โค้ดคงที่สำหรับการสแกน ด้วยการค้นหาและอัปเดต PDF สัญญาทั้งหมดในชุดเดียว ทีมงานหลีกเลี่ยงการพิมพ์ซ้ำที่มีค่าใช้จ่ายสูง

กรณีใช้ 3: การรวมระบบสินค้าคงคลัง

หลังจากอัปเกรด ERP บาร์โค้ดสินค้าต้องสอดคล้องกับเครื่องพิมพ์ฉลากใหม่ การอัปเดตขนาดและตำแหน่งบาร์โค้ดโดยโปรแกรมช่วยประหยัดทั้งเวลาและต้นทุนวัสดุ

รายการตรวจสอบการแก้ไขปัญหา

ก่อนขอรับการสนับสนุน ให้ตรวจสอบรายการต่อไปนี้:

  • File path is correct และไฟล์มีอยู่
  • Read/write permissions ได้รับการมอบให้กับแหล่งที่มาและปลายทาง
  • GroupDocs.Signature version เป็นเวอร์ชัน 23.12 หรือใหม่กว่า
  • License is properly configured (หากใช้ใบอนุญาตเต็ม)
  • Output directory exists หรือสร้างโดยโปรแกรม
  • Sufficient disk space สำหรับไฟล์ผลลัพธ์
  • No other process กำลังล็อกไฟล์ต้นฉบับ
  • Exception handling ถูกตั้งค่าเพื่อจับข้อผิดพลาด

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

Q: ฉันสามารถอัปเดตโค้ด Java ของ barcode signature สำหรับหลายบาร์โค้ดในเอกสารเดียวได้หรือไม่?
A: ได้เลย. วนลูปผ่าน List<BarcodeSignature> ที่ได้จากการค้นหาและเรียก signature.update() สำหรับแต่ละรายการ, หรือส่งรายการทั้งหมดไปยังเมธอด update ครั้งเดียว

Q: GroupDocs.Signature รองรับประเภทบาร์โค้ดใดบ้าง?
A: มีหลายสิบประเภท รวมถึง Code 128, QR Code, EAN‑13, UPC‑A, DataMatrix, PDF417 และอื่น ๆ ใช้ barcodeSignature.getEncodeType() เพื่อตรวจสอบประเภท

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

Q: ฉันจะจัดการเอกสารที่มีบาร์โค้ดหลายหน้าอย่างไร?
A: แต่ละ BarcodeSignature มี getPageNumber() ให้กรองหรือประมวลผลบาร์โค้ดตามหน้าที่ต้องการ

Q: สิ่งที่เกิดขึ้นกับเอกสารต้นฉบับหลังการอัปเดตคืออะไร?
A: ไฟล์ต้นฉบับจะไม่ถูกแก้ไข GroupDocs จะเขียนการเปลี่ยนแปลงไปยังเส้นทางผลลัพธ์ที่คุณระบุ, รักษาไฟล์ต้นฉบับไว้เพื่อความปลอดภัย

Q: ฉันสามารถอัปเดตบาร์โค้ดใน PDF ที่ป้องกันด้วยรหัสผ่านได้หรือไม่?
A: ได้. ใช้ overload ของคอนสตรัคเตอร์ Signature ที่รับ LoadOptions เพื่อใส่รหัสผ่าน

Q: ฉันจะประมวลผลเป็นชุดหลายพันเอกสารอย่างมีประสิทธิภาพอย่างไร?
A: ผสานการใช้ parallel streams กับ try‑with‑resources (ตามตัวอย่างการประมวลผลแบบขนาน) และตรวจสอบการใช้หน่วยความจำ

Q: การทำงานนี้รองรับรูปแบบอื่นนอกจาก PDF หรือไม่?
A: ใช่. API เดียวกันทำงานกับ Word, Excel, PowerPoint, รูปภาพ, และรูปแบบอื่น ๆ ที่ GroupDocs.Signature รองรับ

สรุป

ตอนนี้คุณมีคู่มือครบถ้วนพร้อมใช้งานในขั้นตอนการ create barcode signature ใน Java และอัปเดตตำแหน่ง, ขนาด, และคุณสมบัติอื่น ๆ เราได้ครอบคลุมการเริ่มต้น, การค้นหา, การแก้ไข, การแก้ไขปัญหา, และการปรับประสิทธิภาพสำหรับทั้งเอกสารเดี่ยวและการประมวลผลเป็นชุดขนาดใหญ่

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

  • ทดลองอัปเดตหลายคุณสมบัติ (เช่น การหมุน, ความทึบ) ในครั้งเดียว
  • สร้างบริการ REST รอบโค้ดนี้เพื่อเปิดให้บริการอัปเดตบาร์โค้ดเป็น API
  • สำรวจประเภทลายเซ็นอื่น ๆ (ข้อความ, รูปภาพ, ดิจิทัล) ด้วยรูปแบบเดียวกัน

API ของ GroupDocs.Signature มีมากกว่าการอัปเดตบาร์โค้ด—สำรวจการตรวจสอบ, การจัดการเมตาดาต้า, และการสนับสนุนหลายรูปแบบเพื่อทำให้กระบวนการทำงานเอกสารของคุณเป็นอัตโนมัติเต็มรูปแบบ

Resources


Last Updated: 2026-01-16
Tested With: GroupDocs.Signature 23.12
Author: GroupDocs