ลงนาม PDF ด้วยบาร์โค้ดโดยใช้ HIBC ใน Java
หากคุณกำลังพัฒนาซอฟต์แวร์โลจิสติกส์ด้านเภสัชกรรมหรือการดูแลสุขภาพ คุณอาจเคยเจอปัญหาการติดตามด้วยกระดาษ การสูญเสียลายเซ็น และความยุ่งยากในการตรวจสอบ การลงนาม PDF ด้วยบาร์โค้ด—โดยเฉพาะ HIBC Data Matrix หรือ QR code—จะสร้างเส้นทางที่ตรวจจับการปลอมแปลงได้และอ่านโดยเครื่องจักร ซึ่งคงอยู่หลังการพิมพ์ การสแกน และการตรวจสอบตามกฎระเบียบ ในบทแนะนำนี้คุณจะได้เห็นวิธีเพิ่มบาร์โค้ด Data Matrix และ QR ทั้งสองลงใน PDF ด้วย GroupDocs.Signature for Java อย่างละเอียด
คำตอบอย่างรวดเร็ว
- ไลบรารีที่จัดการบาร์โค้ด HIBC ใน Java คืออะไร? GroupDocs.Signature for Java.
- รูปแบบบาร์โค้ดที่กะทัดรัดที่สุดคืออะไร? Data Matrix – เหมาะสำหรับป้ายขนาดเล็ก.
- ฉันสามารถเพิ่ม QR และ Data Matrix ทั้งสองลงใน PDF เดียวได้หรือไม่? Yes, just create separate
QrCodeSignOptions. - จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตขณะรันไทม์หรือไม่? No, the library works fully offline after installation.
- แนะนำเวอร์ชัน Java ใด? Java 11+ for production‑grade performance.
การลงนาม PDF ด้วยบาร์โค้ด HIBC คืออะไร?
Signature คือคลาสหลักของ GroupDocs.Signature ที่แทนเอกสาร PDF และเปิดใช้งานการฝังลายเซ็นดิจิทัล คลาส Signature ใน GroupDocs.Signature for Java มีเมธอดสำหรับฝังบาร์โค้ด HIBC เป็นลายเซ็นดิจิทัล โดยการลงนาม PDF ด้วยบาร์โค้ด HIBC คุณจะสร้างบันทึกที่ตรวจสอบได้และตรวจจับการปลอมแปลงได้ ซึ่งสามารถสแกนได้ตลอดห่วงโซ่อุปทาน
ทำไมต้องใช้ Data Matrix และ QR code ร่วมกัน?
Data Matrix มีขนาดพื้นที่เล็กที่สุดในขณะที่ยังสามารถบรรจุอักขระอัลฟานูเมอริกได้สูงสุด 2,335 ตัว ทำให้เหมาะกับพื้นที่ป้ายที่แออัด QR code มีความสามารถรองรับอักขระได้สูงสุด 4,296 ตัวและอ่านได้โดยสมาร์ทโฟนทั่วโลก การรวมทั้งสองเข้าด้วยกันให้สมดุลที่ดีที่สุดระหว่างประสิทธิภาพการใช้พื้นที่และความจุข้อมูล ทำให้ผู้มีส่วนได้ส่วนเสียทุกคน—ตั้งแต่สแกนเนอร์ในคลังสินค้าไปจนถึงแอปบนมือถือ—สามารถอ่านข้อมูลที่ต้องการได้
ข้อกำหนดเบื้องต้น
- JDK 11 หรือสูงกว่า (Java 8 ทำงานได้แต่แนะนำให้ใช้ Java 11+ เพื่อประสิทธิภาพที่ดีที่สุด).
- IDE เช่น IntelliJ IDEA, Eclipse หรือ VS Code พร้อมส่วนขยาย Java.
- Maven หรือ Gradle สำหรับการจัดการ dependencies (ตัวอย่างด้านล่าง).
- PDF ตัวอย่าง (เช่น
sample.pdf) เพื่อทดสอบการทำงาน. - ไลเซนส์ GroupDocs.Signature ที่ถูกต้อง (ทดลองใช้ฟรีสำหรับการพัฒนา, ไลเซนส์แบบชำระเงินสำหรับการผลิต).
การตั้งค่า GroupDocs.Signature สำหรับ Java
การกำหนดค่า Maven
เพิ่ม dependency นี้ในไฟล์ pom.xml ของคุณ:
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
การกำหนดค่า Gradle
สำหรับโครงการ Gradle ให้เพิ่มส่วนนี้ในไฟล์ build.gradle ของคุณ:
implementation 'com.groupdocs:groupdocs-signature:23.12'
ตัวเลือกการดาวน์โหลดโดยตรง
คุณสามารถดาวน์โหลดไฟล์ JAR โดยตรงจาก GroupDocs.Signature for Java releases แล้วเพิ่มลงใน classpath ของโครงการด้วยตนเอง วิธีนี้ทำงานได้ดีในสภาพแวดล้อมที่มีเครือข่ายจำกัด.
การรับไลเซนส์
ขอรับการทดลองใช้ฟรีหรือไลเซนส์ชั่วคราวจาก GroupDocs เพื่อเอา watermark ออกและเปิดใช้งานฟีเจอร์ทั้งหมด การใช้งานในสภาพแวดล้อมการผลิตต้องมีไลเซนส์ที่ซื้อแล้ว.
การเริ่มต้นพื้นฐาน
Signature คือจุดเริ่มต้นสำหรับการดำเนินการลงนามทั้งหมด มันโหลด PDF, ใส่บาร์โค้ด, และเขียนไฟล์ที่ลงนามแล้ว.
import com.groupdocs.signature.Signature;
class InitializeSignature {
public static void main(String[] args) {
Signature signature = new Signature("sample.pdf");
// Proceed with signing operations...
}
}
วิธีสร้าง PDF Data Matrix ด้วยบาร์โค้ด HIBC?
สร้างอินสแตนซ์ Signature ด้วย PDF ต้นฉบับของคุณ, ตั้งค่า QrCodeSignOptions เป็นรูปแบบ Data Matrix, ให้สตริง HIBC ที่จัดรูปแบบถูกต้อง, แล้วเรียก sign() ไลบรารีจะเขียน PDF ที่ลงนามไปยังปลายทาง, รักษาเลย์เอาต์และฝังบาร์โค้ดเป็นลายเซ็นที่ตรวจจับการปลอมแปลงได้.
QrCodeSignOptions ระบุประเภทบาร์โค้ด, เนื้อหา, ขนาด, และตำแหน่งสำหรับลายเซ็น.
- นำเข้าคลาสที่จำเป็น – เพื่อให้คุณเข้าถึงเอนจินลายเซ็นและตัวเลือก Data Matrix.
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
- สร้างอ็อบเจกต์
Signatureด้วยเส้นทางแบบ absolute สำหรับไฟล์ต้นฉบับและไฟล์ปลายทาง.
String sourceFilePath = "YOUR_DOCUMENT_DIRECTORY";
String destinFilePath = "YOUR_OUTPUT_DIRECTORY/SignWithHIBCLICQR.pdf";
final Signature signature = new Signature(sourceFilePath);
- กำหนดค่าตัวเลือก Data Matrix – ตั้งสตริง HIBC, เลือก
QrCodeTypes.HIBCLICDataMatrix, และกำหนดพิกัดตำแหน่งQrCodeTypesแสดงรายการรูปแบบบาร์โค้ดที่รองรับสำหรับลายเซ็น HIBC.
QrCodeSignOptions hibcLic_QR = new QrCodeSignOptions("A123PROD30917/75#422011907#GP293", QrCodeTypes.HIBCLICQR);
hibcLic_QR.setLeft(1); // Set the position from left
hibcLic_QR.setTop(1); // Set the position from top
hibcLic_QR.setReturnContent(true); // Return content after signing
hibcLic_QR.setReturnContentType(FileType.PNG); // Specify return content type as PNG
- ใช้ลายเซ็น กับ PDF.
signature.sign(destinFilePath, hibcLic_QR);
- ปล่อยทรัพยากร เพื่อปลดปล่อยไฟล์แฮนด์เลและป้องกันการรั่วของหน่วยความจำ.
finally {
if (signature != null) signature.dispose();
}
ตัวอย่างการทำงานเต็มรูปแบบ
นี่คือกระบวนการทั้งหมดในบล็อกเดียว (ตัวแทนที่อยู่เป็นโค้ดที่คุณจะวางจากส่วนก่อนหน้า):
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
public class HibcQrSigning {
public static void main(String[] args) {
String sourceFilePath = "sample.pdf";
String destinFilePath = "output/SignWithHIBCLICQR.pdf";
Signature signature = null;
try {
signature = new Signature(sourceFilePath);
QrCodeSignOptions hibcLic_QR = new QrCodeSignOptions(
"A123PROD30917/75#422011907#GP293",
QrCodeTypes.HIBCLICQR
);
hibcLic_QR.setLeft(1);
hibcLic_QR.setTop(1);
hibcLic_QR.setReturnContent(true);
hibcLic_QR.setReturnContentType(FileType.PNG);
signature.sign(destinFilePath, hibcLic_QR);
System.out.println("PDF signed successfully with HIBC QR code");
} catch (Exception e) {
System.err.println("Error signing PDF: " + e.getMessage());
e.printStackTrace();
} finally {
if (signature != null) signature.dispose();
}
}
}
คำตอบโดยตรง (40–70 คำ)
เพื่อ สร้าง PDF Data Matrix, สร้างอินสแตนซ์ Signature ด้วย PDF ต้นฉบับของคุณ, ตั้งค่า QrCodeSignOptions เป็น QrCodeTypes.HIBCLICDataMatrix และให้สตริง HIBC ที่จัดรูปแบบถูกต้อง, จากนั้นเรียก signature.sign(outputPath, options) ไลบรารีจะเขียน PDF ที่ลงนามไปยังปลายทาง, รักษาเลย์เอาต์และฝังบาร์โค้ดเป็นลายเซ็นที่ตรวจจับการปลอมแปลงได้.
วิธีเพิ่ม QR code ลงใน PDF ด้วย GroupDocs.Signature?
โหลด PDF, กำหนดค่า QrCodeSignOptions สำหรับรูปแบบ QR, และเรียก sign() ไลบรารีจะปรับขนาดภาพ QR เพื่อความอ่านง่ายและวางตำแหน่งตามพิกัดที่คุณตั้ง, ป้องกันการทับซ้อนกับเนื้อหาที่มีอยู่ ทำให้บาร์โค้ดยังคงสแกนได้หลังการพิมพ์และสอดคล้องกับมาตรฐาน HIBC.
QrCodeSignOptions กำหนดเนื้อหา, ขนาด, และตำแหน่งของ QR barcode.
- นำเข้าคลาสที่เฉพาะสำหรับ QR
QrCodeSignOptions hibcLic_AZ = new QrCodeSignOptions("A123PROD30917/75#422011907#GP293", QrCodeTypes.HIBCLICAztec);
hibcLic_AZ.setLeft(1); // Set the position from left
hibcLic_AZ.setTop(200); // Set the position from top
hibcLic_AZ.setReturnContent(true); // Return content after signing
hibcLic_AZ.setReturnContentType(FileType.PNG); // Specify return content type as PNG
- สร้างและกำหนดค่า QR options – สังเกตการใช้
QrCodeTypes.HIBCLICQR.
signature.sign(destinFilePath, hibcLic_AZ);
- ลงนามเอกสาร
QrCodeSignOptions hibcLic_DM = new QrCodeSignOptions("A123PROD30917/75#422011907#GP293", QrCodeTypes.HIBCLICDataMatrix);
hibcLic_DM.setLeft(1); // Set the position from left
hibcLic_DM.setTop(400); // Set the position from top
hibcLic_DM.setReturnContent(true); // Return content after signing
hibcLic_DM.setReturnContentType(FileType.PNG); // Specify return content type as PNG
คำตอบโดยตรง: ใช้
QrCodeTypes.HIBCLICQRในQrCodeSignOptions, ตั้งสตริงเนื้อหา HIBC, กำหนดตำแหน่งโค้ดด้วยsetLeft()และsetTop(), จากนั้นเรียกsignature.sign(outputPath, options)QR barcode จะถูกฝังทันที พร้อมสำหรับการจับภาพด้วยสมาร์ทโฟนหรือสแกนเนอร์.
ข้อผิดพลาดทั่วไปที่ควรหลีกเลี่ยง
1. ลืมปล่อยทรัพยากร
ผิด:
Signature signature = new Signature("sample.pdf");
signature.sign(destinFilePath, options);
// Oops, no dispose() call
แก้ไข: ห่อการใช้ Signature ด้วยบล็อก try‑with‑resources หรือเรียก close() อย่างชัดเจนในบล็อก finally.
2. ใช้สตริงรูปแบบ HIBC ที่ไม่ถูกต้อง
ผิด: ใช้สตริงทั่วไปเช่น “12345”.
แก้ไข: ปฏิบัติตามมาตรฐาน HIBCC (เช่น A123PROD30917/75#422011907#GP293). ตรวจสอบด้วย HIBCC online validator.
3. กำหนดค่าเส้นทางไฟล์แบบฮาร์ดโค้ด
ผิด:
String sourceFilePath = "C:/Users/John/Documents/test.pdf";
แก้ไข: เก็บเส้นทางในไฟล์การกำหนดค่า หรือในตัวแปรสภาพแวดล้อมและอ่านค่าในเวลารัน.
4. เพิกเฉยต่อความขัดแย้งของตำแหน่งบาร์โค้ด
วางบาร์โค้ดห่างจากข้อความหรือลายเซ็นที่มีอยู่ ใช้พิกัด PDF (จุดกำเนิดที่มุมล่างซ้าย) และทดสอบด้วยตัวอย่างที่พิมพ์ออกมา.
5. ไม่ทดสอบกับสแกนเนอร์จริง
พิมพ์ PDF ที่ลงนามและสแกนด้วยฮาร์ดแวร์เดียวกับที่ใช้ในกระบวนการของคุณ ตรวจสอบความอ่านได้ที่คุณภาพการพิมพ์ต่าง ๆ.
การประยุกต์ใช้ในด้านสุขภาพ
| สถานการณ์ | บาร์โค้ดที่แนะนำ | เหตุผลที่เหมาะสม |
|---|---|---|
| การจัดจำหน่ายยา | QR Code | ความจุข้อมูลสูง, สแกนได้โดยสมาร์ทโฟนอย่างกว้างขวาง |
| การจัดการสินค้าคงคลัง | Data Matrix | ขนาดเล็ก, เหมาะกับป้ายชั้นวางที่แออัด |
| การปฏิบัติตามกฎระเบียบ (FDA 21 CFR Part 11) | QR + Data Matrix | รูปแบบคู่ให้ความซ้ำซ้อนและตรวจสอบได้ |
| การติดตามอุปกรณ์การแพทย์ | Aztec Code | ขนาดกะทัดรัดทำงานได้บนบรรจุภัณฑ์ที่มีพื้นที่จำกัด |
การพิจารณาประสิทธิภาพและแนวปฏิบัติที่ดีที่สุด
รูปแบบการประมวลผลเป็นชุด
List<String> filesToSign = getFileList();
for (String filePath : filesToSign) {
Signature signature = null;
try {
signature = new Signature(filePath);
// Sign and save
} finally {
if (signature != null) signature.dispose();
}
}
- สร้างอินสแตนซ์
Signatureใหม่ต่อไฟล์เพื่อให้การใช้หน่วยความจำน้อย. - ใช้ fixed thread pool (
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() - 1)) สำหรับการประมวลผลแบบขนาน, แต่ต้องตรวจสอบขนาด heap เนื่องจากแต่ละSignatureเก็บ PDF ทั้งไฟล์ในหน่วยความจำ.
อัปเดตไลบรารีอย่างสม่ำเสมอ
การปล่อยอัปเดตของ GroupDocs ปรับปรุงความเร็วการประมวลผลได้ถึง 20 % และเพิ่มฟีเจอร์การปฏิบัติตาม HIBC ใหม่ ๆ กำหนดการตรวจสอบ dependencies ทุกไตรมาส.
แคชเทมเพลต
โหลดเทมเพลต PDF ครั้งเดียว, ทำสำเนาให้แต่ละรูปแบบบาร์โค้ด, แล้วลงนามสำเนาเหล่านั้น วิธีนี้ลด I/O และเร่งความเร็วของกระบวนการทำงานปริมาณมาก.
คำถามที่พบบ่อย
Q: GroupDocs.Signature สามารถลงนามไฟล์ประเภทอื่นนอกจาก PDF ได้หรือไม่?
A: ใช่, ยังรองรับ DOCX, XLSX, PPTX, PNG, JPEG, และ TIFF ด้วย API การลงนามบาร์โค้ดเดียวกัน.
Q: ฉันจะแก้ไขข้อผิดพลาด “Invalid barcode content” อย่างไร?
A: ตรวจสอบว่าสตริง HIBC ของคุณตรงตามไวยากรณ์ HIBCC, ใช้ตัวตรวจสอบออนไลน์, และตรวจสอบว่าคุณใช้ค่าคงที่ QrCodeTypes ที่ถูกต้องสำหรับรูปแบบที่เลือก.
Q: ความจุข้อมูลสูงสุดของแต่ละรูปแบบ HIBC คือเท่าไหร่?
A: QR ≈ 4,296 ตัวอักษรอัลฟานูเมอริก, Aztec ≈ 3,832 ตัวเลข / 3,067 ตัวอักษรอัลฟานูเมอริก, Data Matrix ≈ 3,116 ตัวเลข / 2,335 ตัวอักษรอัลฟานูเมอริก. ควรทำบาร์โค้ดไม่เกิน 200 ตัวอักษรเพื่อความน่าเชื่อถือในการสแกนสูงสุด.
Q: สามารถฝังบาร์โค้ดหลายประเภทใน PDF เดียวได้หรือไม่?
A: แน่นอน. สร้างอ็อบเจกต์ QrCodeSignOptions แยกกันโดยกำหนดตำแหน่งต่าง ๆ แล้วเรียก signature.sign() สำหรับแต่ละอ็อบเจกต์. เพียงตรวจสอบว่าไม่ทับซ้อนกัน.
Q: จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตสำหรับการลงนามขณะรันไทม์หรือไม่?
A: ไม่จำเป็น. หลังจากที่ JAR อยู่ใน classpath และไลเซนส์ถูกเปิดใช้งาน, การดำเนินการทั้งหมดทำงานในเครื่อง.
แหล่งข้อมูลเพิ่มเติม
- เอกสาร GroupDocs.Signature for Java
- คู่มืออ้างอิง API
- ดาวน์โหลดเวอร์ชันล่าสุด
- ซื้อไลเซนส์
- รับการทดลองใช้ฟรี
- ขอไลเซนส์ชั่วคราว
- ฟอรั่ม GroupDocs
อัปเดตล่าสุด: 2026-09-15
ทดสอบด้วย: GroupDocs.Signature 23.12 for Java
ผู้เขียน: GroupDocs