สร้างลายเซ็นบาร์โค้ดใน 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