วิธีสร้างลายเซ็นบาร์โค้ด Java สำหรับเอกสาร PDF

บทนำ

ในบทแนะนำนี้คุณจะได้เรียนรู้วิธี create barcode signature Java สำหรับไฟล์ PDF ด้วย GroupDocs.Signature ไม่ว่าคุณจะต้องฝังรหัสสินค้า, ID การตรวจสอบ, หรือข้อมูลโครงสร้างใด ๆ ลงในสัญญา ลายเซ็นบาร์โค้ดช่วยให้คุณเพิ่มข้อมูลที่เครื่องอ่านได้ซึ่งสามารถสแกนได้ทันทีในขณะที่ยังคงรักษาความปลอดภัยของเอกสารด้วยการเข้ารหัส เราจะพาคุณผ่านการตั้งค่า, โค้ด, การปรับแต่ง, และเคล็ดลับการปฏิบัติที่ดีที่สุด เพื่อให้คุณเริ่มเพิ่มลายเซ็นบาร์โค้ดใน PDF ของคุณได้ในไม่กี่นาที.

คำตอบอย่างรวดเร็ว

  • ไลบรารีใดที่เพิ่มลายเซ็นบาร์โค้ดใน Java? GroupDocs.Signature for Java.
  • ประเภทบาร์โค้ดใดที่ดีที่สุดสำหรับการค้าปลีก? GS1CompositeBar (มาตรฐานอุตสาหกรรมสำหรับการติดตามสินค้า).
  • ฉันต้องการใบอนุญาตสำหรับการผลิตหรือไม่? ใช่ – จำเป็นต้องมีใบอนุญาต GroupDocs ที่ซื้อแล้ว.
  • ฉันสามารถเพิ่มลายเซ็นดิจิทัลและบาร์โค้ดพร้อมกันได้หรือไม่? แน่นอน; ผสานรวมเพื่อความปลอดภัยและการสแกน.
  • โค้ดนี้เข้ากันได้กับ Java 11 และรุ่นต่อไปหรือไม่? ใช่, API ทำงานกับ JDK 8+.

create barcode signature java คืออะไร?

create barcode signature java หมายถึงกระบวนการฝังบาร์โค้ดลงใน PDF อย่างโปรแกรมโดยใช้โค้ด Java. GroupDocs.Signature มี API ที่ง่ายต่อการสร้างภาพบาร์โค้ด, วางตำแหน่งบนหน้า, และบันทึกเอกสารที่ลงลายเซ็นในหนึ่งขั้นตอนที่ต่อเนื่อง.

ทำไมต้องใช้ลายเซ็นบาร์โค้ด?

ลายเซ็นบาร์โค้ดให้คุณ metadata ที่เครื่องอ่านได้ ภายใน PDF ที่ลงลายเซ็นตามกฎหมาย พวกมันทำให้การตรวจสอบแบบภาพได้ทันที, ปรับปรุงการสแกนห่วงโซ่อุปทาน, และให้ระบบต่อไปสามารถดึงข้อมูลโครงสร้างได้โดยไม่ต้องเปิดไฟล์ มีการสนับสนุนรูปแบบบาร์โค้ดมากกว่า 60 แบบ, และ GS1CompositeBar สามารถเข้ารหัสตัวระบุสินค้า, หมายเลขซีเรียล, และรหัสล็อตในสัญลักษณ์กะทัดรัดเดียว—เหมาะอย่างยิ่งสำหรับการค้าปลีก, การดูแลสุขภาพ, และการเงิน.

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

  • Java Development Kit: JDK 8 หรือใหม่กว่า (Java 11, 17, 21 ทั้งหมดทำงานได้).
  • Build Tool: Maven หรือ Gradle – เลือกตามที่คุณต้องการ.
  • IDE: IntelliJ IDEA, Eclipse, หรือ VS Code.
  • GroupDocs.Signature library: เพิ่ม dependency ตามที่แสดงด้านล่าง.
  • License: ทดลองใช้ฟรีสำหรับการพัฒนา; ใบอนุญาตที่ซื้อสำหรับการผลิต.

การเพิ่ม GroupDocs.Signature ไปยังโปรเจคของคุณ

สำหรับผู้ใช้ Maven, เพิ่มสิ่งนี้ลงใน pom.xml ของคุณ:

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

สำหรับผู้ใช้ Gradle, เพิ่มสิ่งนี้ลงใน build.gradle ของคุณ:

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

เกี่ยวกับการให้ลิขสิทธิ์: GroupDocs มีการทดลองใช้ฟรีที่เหมาะสำหรับการทดสอบและพัฒนา คุณสามารถดาวน์โหลดได้จาก releases page. เมื่อคุณพร้อมสำหรับการผลิต คุณจะต้องซื้อใบอนุญาตหรือขอใบชั่วคราวจาก GroupDocs website. สำหรับการใช้ API อย่างละเอียดดูที่ API Reference, ปรึกษา Developer Guide สำหรับขั้นตอนทีละขั้นตอน, และถามคำถามใน GroupDocs Forum. ลิงก์การซื้อเดียวกันนี้ยังแสดงเป็น purchase page.

วิธีตั้งค่า GroupDocs.Signature ใน Java?

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

import com.groupdocs.signature.Signature;

// Point to your PDF file
Signature signature = new Signature("path/to/your/document.pdf");

สำคัญ: ควรทำการ dispose อินสแตนซ์ Signature หลังการใช้งานเสมอ—จะปล่อยไฟล์แฮนด์เดิลและคืนหน่วยความจำ.

วิธีกำหนดค่า Barcode Sign Options?

BarcodeSignOptions class กำหนดทุกแง่มุมของบาร์โค้ดที่คุณกำลังจะฝัง, ตั้งแต่ข้อมูล payload ไปจนถึงสไตล์ภาพ มันทำหน้าที่เป็นคอนเทนเนอร์สำหรับการตั้งค่าที่เกี่ยวข้องกับบาร์โค้ดทั้งหมด เช่น ประเภท, ขนาด, สี, และตำแหน่ง ด้านล่างเป็นการกำหนดค่าขั้นต่ำที่สร้างบาร์โค้ด GS1CompositeBar ที่มี GTIN และหมายเลขซีเรียล, และยังแสดงวิธีตั้งค่าขอบและสีพื้นหลังเพื่อความอ่านง่ายสูงสุด.

import com.groupdocs.signature.options.sign.BarcodeSignOptions;
import com.groupdocs.signature.domain.barcodes.BarcodeTypes;

// Create barcode with GS1 format data
BarcodeSignOptions options = new BarcodeSignOptions("(01)03212345678906/(21)A1B2C3D4E5F6G7H8");
options.setEncodeType(BarcodeTypes.GS1CompositeBar);

สตริง "(01)03212345678906/(21)A1B2C3D4E5F6G7H8" ตามมาตรฐาน GS1:

  • (01) = GTIN (ตัวระบุสินค้าระดับโลก)
  • 03212345678906 = รหัสสินค้าจริง
  • (21) = ตัวระบุหมายเลขซีเรียล
  • A1B2C3D4E5F6G7H8 = ซีเรียลที่ไม่ซ้ำ

คุณสามารถแทนที่ด้วยข้อความใดก็ได้สำหรับ QR code, Code128, DataMatrix, ฯลฯ มีการสนับสนุนบาร์โค้ดมากกว่า 60 ประเภท—ดูเอกสาร GroupDocs สำหรับรายการเต็ม.

วิธีกำหนดตำแหน่งและปรับแต่งบาร์โค้ด?

การวางตำแหน่งและการสไตล์ควบคุมผ่านอ็อบเจ็กต์ BarcodeSignOptions เดียวกัน ใช้ setTop, setLeft, setWidth, และ setHeight เพื่อกำหนดพิกัดและขนาดที่แน่นอน การตั้งค่า setAllPages(true) จะเพิ่มบาร์โค้ดในทุกหน้าโดยอัตโนมัติ, ในขณะที่ setPageNumber(1) จะกำหนดหน้าเฉพาะ คุณยังสามารถหมุนบาร์โค้ด, เพิ่มสีพื้นหลัง, หรือปรับขอบเพื่อให้บาร์โค้ดไม่ทับเนื้อหาที่มีอยู่

// Set position and apply to all pages
options.setTop(200); // Set vertical position
options.setAllPages(true);

สำหรับการจัดวางที่แม่นยำยิ่งขึ้น, คุณสามารถยึดบาร์โค้ดกับหน้าที่กำหนด, หมุนมัน, หรือเพิ่มสีพื้นหลัง:

options.setLeft(100);        // 100 pixels from left edge
options.setTop(200);         // 200 pixels from top
options.setWidth(300);       // Barcode width in pixels
options.setHeight(100);      // Barcode height in pixels
options.setPageNumber(1);    // Only sign page 1 (removes setAllPages)

การปรับแต่งภาพ (สีหน้า/พื้นหลัง, ขอบ, ป้ายข้อความ) มีให้ผ่านคุณสมบัติเพิ่มเติม:

options.setMargin(new Padding(10));           // Add padding around barcode
options.setBackground(new Background());       // Set background color
options.setForeColor(Color.BLACK);            // Barcode color
options.setBackgroundColor(Color.WHITE);      // Background color

วิธีลงลายเซ็นเอกสารด้วยบาร์โค้ด?

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

try {
    SignResult signResult = signature.sign(outputPath, options);
    System.out.println("Document signed successfully!");
    System.out.println("Signed document saved to: " + outputPath);
} finally {
    if (signature != null) {
        signature.dispose();
    }
}

บล็อก try‑finally รอบ ๆ รับประกันว่าอ็อบเจ็กต์ Signature จะถูก dispose แม้เกิดข้อยกเว้น, ป้องกันการรั่วของไฟล์แฮนด์เดิล.

คุณสามารถตรวจสอบ SignResult เพื่อยืนยันความสำเร็จ:

if (signResult.getSucceeded().size() > 0) {
    System.out.println("Successfully added " + signResult.getSucceeded().size() + " signature(s)");
}

ตัวอย่างการทำงานที่สมบูรณ์

รวมทุกอย่างเข้าด้วยกัน, นี่คือตัวเมธอดเดียวที่โหลด PDF, เพิ่มบาร์โค้ด GS1CompositeBar, และบันทึกไฟล์ที่ลงลายเซ็น:

import com.groupdocs.signature.Signature;
import com.groupdocs.signature.options.sign.BarcodeSignOptions;
import com.groupdocs.signature.domain.barcodes.BarcodeTypes;

public class BarcodeSigningExample {
    
    public void signPdfWithBarcode(String inputPath, String outputPath) {
        Signature signature = null;
        
        try {
            // Initialize signature
            signature = new Signature(inputPath);
            
            // Configure barcode
            BarcodeSignOptions options = new BarcodeSignOptions(
                "(01)03212345678906/(21)A1B2C3D4E5F6G7H8"
            );
            options.setEncodeType(BarcodeTypes.GS1CompositeBar);
            options.setTop(200);
            options.setAllPages(true);
            
            // Sign and save
            SignResult result = signature.sign(outputPath, options);
            
            System.out.println("Signing completed: " + result.getSucceeded().size() + " signature(s) added");
            
        } catch (Exception e) {
            System.err.println("Error signing document: " + e.getMessage());
            e.printStackTrace();
        } finally {
            if (signature != null) {
                signature.dispose();
            }
        }
    }
}

เมธอดนี้พร้อมสำหรับการผลิต: ตรวจสอบอินพุต, จัดการทรัพยากร, และรายงานผลลัพธ์.

วิธีเพิ่มลายเซ็นดิจิทัลและบาร์โค้ดพร้อมกัน?

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

// First, add digital signature
DigitalSignOptions digitalOptions = new DigitalSignOptions("certificate.pfx");
digitalOptions.setPassword("cert_password");
signature.sign(outputPath, digitalOptions);

// Then, add barcode on top
BarcodeSignOptions barcodeOptions = new BarcodeSignOptions("DATA");
barcodeOptions.setEncodeType(BarcodeTypes.QR);
signature.sign(outputPath, barcodeOptions);

PDF ที่ได้จะเป็นทั้งที่มีผลบังคับตามกฎหมาย (ลายเซ็นดิจิทัล) และสามารถอ่านได้ทันทีโดยสแกนเนอร์บาร์โค้ดใด ๆ.

การทำงานกับประเภทบาร์โค้ดต่าง ๆ

การสลับรูปแบบบาร์โค้ดง่ายเพียงเปลี่ยนค่า enum หนึ่ง ด้านล่างเป็นตัวอย่างที่เปลี่ยน GS1CompositeBar เป็น QR code:

// Define barcode sign options with sample text
BarcodeSignOptions options = new BarcodeSignOptions("Sample Text");

// Assign specific barcode type
options.setEncodeType(BarcodeTypes.GS1CompositeBar);

และนี่คือการเปลี่ยนเดียวกันสำหรับบาร์โค้ดเชิงเส้น Code128:

options.setEncodeType(BarcodeTypes.QR);           // QR code
options.setEncodeType(BarcodeTypes.Code128);      // Code 128
options.setEncodeType(BarcodeTypes.DataMatrix);   // Data Matrix

จำไว้ว่าทุกประเภทบาร์โค้ดมีขีดจำกัดความจุข้อมูลของตน—QR code สามารถบรรจุตัวอักษรหลายพัน, ในขณะที่ Code39 จำกัดเฉพาะอักขระอัลฟานูเมอริก.

กรณีการใช้งานจริง

การจัดการห่วงโซ่อุปทาน

การฝัง GS1CompositeBar บนใบกำกับการจัดส่งทำให้พนักงานคลังสามารถสแกนหมายเลขคำสั่ง, ปลายทาง, และรหัสล็อตโดยไม่ต้องเปิด PDF.

BarcodeSignOptions options = new BarcodeSignOptions(
    "(01)" + gtin + "/(21)" + serialNumber + "/(10)" + batchNumber
);
options.setEncodeType(BarcodeTypes.GS1CompositeBar);

เอกสารด้านการดูแลสุขภาพ

QR code บนแบบฟอร์มยินยอมสามารถสแกนเพื่อบันทึกเอกสารโดยอัตโนมัตืภายใต้บันทึกผู้ป่วยที่ถูกต้อง.

String patientData = "PATIENT_ID:" + patientId + "|DOC_TYPE:CONSENT|DATE:" + dateString;
BarcodeSignOptions options = new BarcodeSignOptions(patientData);
options.setEncodeType(BarcodeTypes.QR);

บริการทางการเงิน

รหัสธุรกรรมที่เข้ารหัสในบาร์โค้ดช่วยให้ผู้ตรวจสอบสามารถตรวจสอบความสอดคล้องด้วยการสแกนง่าย.

String complianceData = "TXN:" + transactionId + "|AGENT:" + agentId + "|BRANCH:" + branchCode;
BarcodeSignOptions options = new BarcodeSignOptions(complianceData);
options.setEncodeType(BarcodeTypes.PDF417);

การควบคุมคุณภาพการผลิต

รายงานการตรวจสอบที่ลงลายเซ็นด้วยบาร์โค้ดที่มีรหัสล็อตและ ID ผู้ตรวจสอบทำให้การวิเคราะห์สาเหตุรากเป็นไปอย่างทันที.

String qcData = "BATCH:" + batchNumber + "|INSPECTOR:" + inspectorId + "|RESULT:" + passFailStatus;
BarcodeSignOptions options = new BarcodeSignOptions(qcData);
options.setEncodeType(BarcodeTypes.DataMatrix);

ปัญหาการใช้งานทั่วไป

ปัญหา 1: ข้อยกเว้น “File is already in use”

คำตอบ: ไฟล์จะยังคงล็อคหากอินสแตนซ์ Signature ก่อนหน้าไม่ได้ทำการ dispose. ควรห่อโค้ดการลงลายเซ็นในบล็อก try‑finally เสมอและเรียก signature.dispose().

Signature signature = null;
try {
    signature = new Signature(filePath);
    // ... your code ...
} finally {
    if (signature != null) {
        signature.dispose();
    }
}

ปัญหา 2: บาร์โค้ดไม่ปรากฏบน PDF

คำตอบ: ตรวจสอบว่าค่า setTop/setLeft อยู่ในขอบเขตของหน้า, เพิ่มความกว้าง/ความสูงของบาร์โค้ด, และให้แน่ใจว่าสีหน้า/พื้นหลังมีความคอนทราสต์กับพื้นหลังของหน้า.

// Make sure dimensions are reasonable
options.setTop(100);      // Not 10000
options.setLeft(100);
options.setWidth(300);    // At least 200 pixels for readability
options.setHeight(100);

// Ensure contrast
options.setForeColor(Color.BLACK);
options.setBackgroundColor(Color.WHITE);

ปัญหา 3: ข้อยกเว้น “Invalid Barcode Data”

คำตอบ: บาร์โค้ด GS1 ต้องการรูปแบบวงเล็บที่เคร่งครัด ใช้ Application Identifiers ที่ถูกต้อง (เช่น (01), (21)) และหลีกเลี่ยงอักขระที่ไม่รองรับ.

// Correct:
"(01)03212345678906/(21)ABC123"

// Incorrect:
"03212345678906ABC123"

ปัญหา 4: OutOfMemoryError กับ PDF ขนาดใหญ่

คำตอบ: เพิ่มขนาด heap ของ JVM (-Xmx4G) และพิจารณาลงลายเซ็นหน้าโดยหน้าแทนการใช้ setAllPages(true) สำหรับเอกสารที่ใหญ่มาก.

java -Xmx2G -jar your-application.jar

ปัญหา 5: การสแกนบาร์โค้ดล้มเหลว

คำตอบ: ตรวจสอบว่าบาร์โค้ดมีขนาดอย่างน้อย 200 × 100 px, ใช้สีคอนทราสต์สูง, และไม่ถูกบิดเบือนโดยการบีบอัด PDF.

// Increase size
options.setWidth(400);
options.setHeight(150);

// Maximize contrast
options.setForeColor(Color.BLACK);
options.setBackgroundColor(Color.WHITE);

// Add quiet zone (blank space around barcode)
options.setMargin(new Padding(10));

ความปลอดภัยและการตรวจสอบ

ลายเซ็นบาร์โค้ดปลอดภัยหรือไม่?

บาร์โค้ดอย่างเดียวไม่ได้รับการปกป้องด้วยการเข้ารหัส, ดังนั้นใครก็สามารถสร้างบาร์โค้ดใหม่ได้ ผสานกับลายเซ็นดิจิทัลเพื่อรับประกันความถูกต้องและการสแกนได้ รูปแบบลายเซ็นคู่ (ดิจิทัลก่อน, บาร์โค้ดหลัง) ให้ความบังคับใช้ตามกฎหมายพร้อมความสะดวกในการดำเนินงาน.

การตรวจสอบข้อมูลบาร์โค้ด

หลังการสแกน, ตรวจสอบว่าลายเซ็นดิจิทัลของเอกสารยังคงถูกต้องและข้อมูลบาร์โค้ดตรงกับรูปแบบที่คาดหวัง ใช้ API search() ของ GroupDocs กับ BarcodeSearchOptions เพื่อดึงและตรวจสอบเนื้อหาบาร์โค้ดโดยอัตโนมัติ.

public boolean validateScannedBarcode(String scannedData, String documentPath) {
    // Verify digital signature first
    if (!verifyDigitalSignature(documentPath)) {
        return false;
    }
    
    // Validate barcode format
    if (!scannedData.matches("(01)\\d{14}/(21)[A-Z0-9]+")) {
        return false;
    }
    
    // Check against database
    String productId = extractProductId(scannedData);
    return database.productExists(productId);
}

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

การจัดการทรัพยากร

ควรทำการ dispose อินสแตนซ์ Signature หลังแต่ละการดำเนินการเสมอเพื่อหลีกเลี่ยงการรั่วของหน่วยความจำ:

signature.dispose();

เมื่อประมวลผลหลายไฟล์, สร้างและ dispose Signature ใหม่ต่อเอกสาร:

for (String filePath : documentPaths) {
    Signature signature = null;
    try {
        signature = new Signature(filePath);
        // ... signing logic ...
    } finally {
        if (signature != null) {
            signature.dispose();
        }
    }
}

การประมวลผลแบบชุด

สำหรับชุดเล็ก (< 100 ไฟล์), การประมวลผลต่อเนื่องเป็นเรื่องง่าย:

for (String path : paths) {
    signDocument(path);
}

สำหรับงานที่ใหญ่ขึ้น, การประมวลผลแบบขนานสามารถเร่งความเร็วได้—แต่ควรตรวจสอบความดัน I/O และจำกัดจำนวนเธรดที่ 4‑8:

paths.parallelStream().forEach(path -> signDocument(path));

การเพิ่มประสิทธิภาพหน่วยความจำสำหรับ PDF ขนาดใหญ่

เพิ่มขนาด heap, ประมวลผลหน้าแยกกัน, และล้างอ้างอิงหลังแต่ละขั้นตอน สิ่งนี้ป้องกัน OutOfMemoryError บนเอกสารที่ใหญ่กว่า 50 MB.

การแคชตัวเลือกบาร์โค้ด

หากคุณใช้การกำหนดค่าบาร์โค้ดเดียวกันหลายไฟล์, ให้แคชอินสแตนซ์ BarcodeSignOptions:

// Create once, reuse many times
private static BarcodeSignOptions createStandardBarcodeOptions(String data) {
    BarcodeSignOptions options = new BarcodeSignOptions(data);
    options.setEncodeType(BarcodeTypes.GS1CompositeBar);
    options.setTop(200);
    options.setAllPages(true);
    return options;
}

ฟีเจอร์ขั้นสูง

ลายเซ็นหลายรายการในเอกสารเดียว

เพิ่มบาร์โค้ดหลายรายการ (หรือผสมกับลายเซ็นดิจิทัล) โดยเรียก sign หลายครั้งพร้อมอ็อบเจ็กต์ตัวเลือกที่แตกต่างกัน:

// Add QR code in top-left
BarcodeSignOptions qrOptions = new BarcodeSignOptions("https://example.com");
qrOptions.setEncodeType(BarcodeTypes.QR);
qrOptions.setTop(50);
qrOptions.setLeft(50);
signature.sign(outputPath, qrOptions);

// Add GS1 barcode in bottom-right
BarcodeSignOptions gs1Options = new BarcodeSignOptions("(01)03212345678906");
gs1Options.setEncodeType(BarcodeTypes.GS1CompositeBar);
gs1Options.setTop(700);
gs1Options.setLeft(400);
signature.sign(outputPath, gs1Options);

เนื้อหาบาร์โค้ดแบบไดนามิก

สร้างข้อมูลบาร์โค้ดจาก metadata ของเอกสาร, timestamp, หรือการค้นหาฐานข้อมูล:

// Extract data from PDF or database
String orderId = extractOrderIdFromPdf(filePath);
String timestamp = LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME);
String barcodeData = String.format("ORDER:%s|TIME:%s", orderId, timestamp);

BarcodeSignOptions options = new BarcodeSignOptions(barcodeData);

การผสานกับ Spring Boot

เปิดเผย REST endpoint ที่รับ PDF, เพิ่มบาร์โค้ด, และส่งคืนไฟล์ที่ลงลายเซ็น:

@Service
public class DocumentSigningService {
    public void signWithBarcode(MultipartFile file, String barcodeData) {
        // ... implementation ...
    }
}

ตัวอย่าง REST API

คอนโทรลเลอร์ขั้นต่ำที่ส่งต่อไปยังบริการลงลายเซ็น:

@PostMapping("/sign-document")
public ResponseEntity<byte[]> signDocument(
    @RequestParam("file") MultipartFile file,
    @RequestParam("barcode") String barcodeData
) {
    // Sign document and return as byte array
}

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

Q: GS1CompositeBar barcode คืออะไร?
A: GS1CompositeBar รวมส่วนเชิงเส้นและส่วน 2D เพื่อเก็บรหัสสินค้า, หมายเลขซีเรียล, และข้อมูลอื่น ๆ ในสัญลักษณ์ที่สแกนได้เดียว, ใช้กันอย่างแพร่หลายในการค้าปลีกและโลจิสติกส์.

Q: ฉันสามารถใช้ประเภทบาร์โค้ดอื่น ๆ นอกจาก GS1CompositeBar ได้หรือไม่?
A: ใช่—GroupDocs.Signature รองรับมากกว่า 60 ประเภท, รวมถึง QR, Code128, DataMatrix, PDF417, และ Aztec. เปลี่ยนค่า setEncodeType() เพื่อเปลี่ยนรูปแบบ.

Q: ฉันต้องการใบอนุญาตสำหรับการใช้งานในผลิตหรือไม่?
A: จำเป็นต้องมีใบอนุญาต GroupDocs ที่ถูกต้องสำหรับการใช้งานในผลิต. มีการทดลองใช้ฟรีสำหรับการพัฒนาและทดสอบ.

Q: สแกนเนอร์บาร์โค้ดจะอ่านบาร์โค้ดจาก PDF ที่ลงลายเซ็นได้หรือไม่?
A: แน่นอน, หากบาร์โค้ดมีขนาดอย่างน้อย 200 × 100 px และมีคอนทราสต์เพียงพอ. แอปสแกนบนสมาร์ทโฟนทำงานบนหน้าจอ; สแกนเนอร์ฮาร์ดแวร์ทำงานบนสำเนาที่พิมพ์.

Q: ฉันจะจัดการข้อผิดพลาดระหว่างการลงลายเซ็นอย่างไร?
A: ห่อโค้ดของคุณในบล็อก try‑catch, บันทึก stack trace ทั้งหมด, และเรียก signature.dispose() ในบล็อก finally เพื่อปล่อยทรัพยากร.

Q: ฉันสามารถลงลายเซ็นในรูปแบบเอกสารอื่นได้หรือไม่?
A: ใช่—GroupDocs.Signature ยังรองรับ DOCX, XLSX, PPTX, รูปภาพ, และอื่น ๆ อีกมาก. เพียงเปลี่ยนนามสกุลไฟล์อินพุต; API ยังคงเหมือนเดิม.

Q: มีขีดจำกัดขนาดไฟล์หรือไม่?
A: ไม่มีขีดจำกัดที่แน่นอน, แต่เอกสารที่ใหญ่กว่า 50 MB อาจต้องการ heap ของ JVM ที่ใหญ่ขึ้นและการประมวลผลหน้า‑ต่อ‑หน้าเพื่อประหยัดหน่วยความจำ.

Q: ฉันจะลงลายเซ็น PDF ที่เก็บในคลาวด์อย่างไร?
A: ดาวน์โหลดไฟล์ไปยังเส้นทางชั่วคราวในเครื่อง, ลงลายเซ็น, แล้วอัปโหลดกลับไปยัง bucket ของคลาวด์. ทำความสะอาดไฟล์ชั่วคราวหลังจากนั้น.

สรุป

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

อัปเดตล่าสุด: 2026-05-21
ทดสอบด้วย: GroupDocs.Signature 23.10 for Java
ผู้เขียน: GroupDocs

String filePath = "YOUR_DOCUMENT_DIRECTORY" + "/sample.pdf";
String fileName = new java.io.File(filePath).getName();
String outputPath = "YOUR_OUTPUT_DIRECTORY" + "/SignedWithBarcodeGS1CompositeBar/" + fileName;
String documentDir = System.getenv("DOCUMENT_DIR");
String outputDir = System.getenv("OUTPUT_DIR");
Signature signature = new Signature(filePath);

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