PDF दस्तावेज़ों के लिए जावा में बारकोड सिग्नेचर कैसे बनाएं

परिचय

इस ट्यूटोरियल में आप create barcode signature Java को GroupDocs.Signature का उपयोग करके PDF फ़ाइलों के लिए कैसे बनाते हैं, सीखेंगे। चाहे आपको उत्पाद कोड, ऑडिट आईडी, या किसी भी संरचित डेटा को अनुबंध में एम्बेड करना हो, बारकोड सिग्नेचर आपको मशीन‑रीडेबल जानकारी जोड़ने की अनुमति देता है जिसे तुरंत स्कैन किया जा सकता है, जबकि दस्तावेज़ को क्रिप्टोग्राफ़िक रूप से सुरक्षित रखा जाता है। हम सेटअप, कोड, कस्टमाइज़ेशन और बेस्ट‑प्रैक्टिस टिप्स के माध्यम से चलेंगे ताकि आप मिनटों में अपने PDFs में बारकोड सिग्नेचर जोड़ना शुरू कर सकें।

त्वरित उत्तर

  • जावा में बारकोड सिग्नेचर जोड़ने वाली लाइब्रेरी कौन सी है? GroupDocs.Signature for Java.
  • रिटेल के लिए कौन सा बारकोड प्रकार सबसे अच्छा है? GS1CompositeBar (उत्पाद ट्रैकिंग के लिए उद्योग‑मानक).
  • क्या उत्पादन के लिए लाइसेंस चाहिए? हाँ – एक खरीदा हुआ GroupDocs लाइसेंस आवश्यक है.
  • क्या मैं डिजिटल और बारकोड दोनों सिग्नेचर जोड़ सकता हूँ? बिल्कुल; सुरक्षा और स्कैनबिलिटी के लिए उन्हें मिलाएँ.
  • क्या कोड Java 11 और बाद के संस्करणों के साथ संगत है? हाँ, API JDK 8+ के साथ काम करती है.

create barcode signature java क्या है?

create barcode signature java वह प्रक्रिया है जिसमें जावा कोड का उपयोग करके प्रोग्रामेटिक रूप से PDF में बारकोड एम्बेड किया जाता है। GroupDocs.Signature एक सरल API प्रदान करता है जो बारकोड इमेज बनाता है, उसे पेज पर स्थित करता है, और एक ही सहज ऑपरेशन में साइन किया हुआ दस्तावेज़ सहेजता है।

बारकोड सिग्नेचर क्यों उपयोग करें?

बारकोड सिग्नेचर आपको मशीन‑रीडेबल मेटाडेटा कानूनी रूप से साइन किए गए 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: नीचे दिखाए गए अनुसार डिपेंडेंसी जोड़ें.
  • 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 वेबसाइट से एक अस्थायी लाइसेंस अनुरोध करना होगा। विस्तृत API उपयोग के लिए देखें API Reference, चरण‑दर‑चरण निर्देशों के लिए Developer Guide देखें, और प्रश्न पूछें GroupDocs Forum पर। वही खरीद लिंक purchase page के रूप में भी सूचीबद्ध है।

Java में GroupDocs.Signature कैसे सेट अप करें?

Signature क्लास एक दस्तावेज़ को दर्शाती है और सिग्नेचर लागू करने, कंटेंट खोजने और संसाधनों को प्रबंधित करने के मेथड प्रदान करती है। एक Signature इंस्टेंस बनाकर अपने PDF को खोलें और साइनिंग के लिए तैयार करें। Signature क्लास GroupDocs.Signature का कोर कंपोनेंट है जो दस्तावेज़ लोडिंग, रिसोर्स हैंडलिंग और साइनिंग वर्कफ़्लो को सुरक्षित और कुशल तरीके से प्रबंधित करता है।

import com.groupdocs.signature.Signature;

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

महत्वपूर्ण: उपयोग के बाद हमेशा Signature ऑब्जेक्ट को डिस्पोज़ करें—यह फ़ाइल हैंडल रिलीज़ करता है और मेमोरी फ्री करता है.

बारकोड साइन विकल्प कैसे कॉन्फ़िगर करें?

BarcodeSignOptions क्लास बारकोड के प्रत्येक पहलू को परिभाषित करती है, डेटा पेलोड से लेकर विज़ुअल स्टाइल तक। यह सभी बारकोड‑संबंधित सेटिंग्स जैसे प्रकार, आकार, रंग और प्लेसमेंट के लिए कंटेनर के रूप में कार्य करती है। नीचे एक न्यूनतम कॉन्फ़िगरेशन है जो GTIN और सीरियल नंबर वाले GS1CompositeBar बारकोड बनाता है, और मार्जिन तथा बैकग्राउंड रंग को अनुकूल पठनीयता के लिए सेट करता है।

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 कोड, 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

बारकोड के साथ दस्तावेज़ को कैसे साइन करें?

Signature इंस्टेंस पर sign मेथड कॉन्फ़िगर किए गए विकल्प लागू करता है और साइन किया हुआ दस्तावेज़ डिस्क पर लिखता है। यह एक 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 ऑब्जेक्ट को अपवाद होने पर भी डिस्पोज़ किया जाए, जिससे फ़ाइल‑हैंडल लीक नहीं होते.

आप 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 कोड में बदलता है:

// 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 कोड हजारों कैरेक्टर रख सकते हैं, जबकि Code39 अल्फ़ान्यूमेरिक तक सीमित है.

वास्तविक दुनिया के उपयोग केस

सप्लाई चेन मैनेजमेंट

शिपिंग मैनिफेस्ट पर GS1CompositeBar एम्बेड करने से वेयरहाउस स्टाफ ऑर्डर नंबर, डेस्टिनेशन और बैच कोड को बिना PDF खोले स्कैन कर सकते हैं.

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

हेल्थकेयर दस्तावेज़ीकरण

कंसेंट फ़ॉर्म पर QR कोड स्कैन करके दस्तावेज़ को सही रोगी रिकॉर्ड में स्वचालित रूप से फ़ाइल किया जा सकता है.

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);

निर्माण गुणवत्ता नियंत्रण

बारकोड वाले इंस्पेक्शन रिपोर्ट जिनमें बैच नंबर और इंस्पेक्टर आईडी होते हैं, रूट‑कॉज़ एनालिसिस को तुरंत संभव बनाते हैं.

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

सामान्य कार्यान्वयन समस्याएँ

समस्या 1: “File is already in use” अपवाद

Answer: यदि पिछले Signature इंस्टेंस को डिस्पोज़ नहीं किया गया तो फ़ाइल लॉक रहती है। हमेशा साइनिंग कोड को try‑finally ब्लॉक में रैप करें और signature.dispose() कॉल करें.

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

समस्या 2: बारकोड PDF पर नहीं दिख रहा है

Answer: सुनिश्चित करें कि 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” अपवाद

Answer: GS1 बारकोड को सख्त पैरेंथेसिस नोटेशन की आवश्यकता होती है। सही एप्लिकेशन आइडेंटिफ़ायर्स (जैसे (01), (21)) उपयोग करें और असमर्थित कैरेक्टर से बचें.

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

// Incorrect:
"03212345678906ABC123"

समस्या 4: बड़े PDF के साथ OutOfMemoryError

Answer: JVM हीप बढ़ाएँ (-Xmx4G) और बहुत बड़े दस्तावेज़ों के लिए setAllPages(true) के बजाय पेज‑बाय‑पेज साइनिंग पर विचार करें.

java -Xmx2G -jar your-application.jar

समस्या 5: बारकोड स्कैनिंग विफल

Answer: सुनिश्चित करें कि बारकोड कम से कम 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));

सुरक्षा और वैधता

क्या बारकोड सिग्नेचर सुरक्षित हैं?

बारकोड अकेले क्रिप्टोग्राफ़िक रूप से संरक्षित नहीं होते, इसलिए कोई भी नया बारकोड बना सकता है। इसे डिजिटल सिग्नेचर के साथ जोड़ें ताकि प्रामाणिकता और स्कैनबिलिटी दोनों सुनिश्चित हों। ड्यूल‑सिग्नेचर पैटर्न (पहले डिजिटल, फिर बारकोड) आपको कानूनी प्रवर्तन क्षमता और ऑपरेशनल सुविधा दोनों देता है.

बारकोड डेटा को वैध करना

स्कैन करने के बाद, सुनिश्चित करें कि दस्तावेज़ की डिजिटल सिग्नेचर अभी भी वैध है और बारकोड पेलोड अपेक्षित पैटर्न से मेल खाता है। बारकोड कंटेंट को स्वचालित रूप से निकालने और वैध करने के लिए GroupDocs की search() API के साथ 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);
}

प्रदर्शन विचार

संसाधन प्रबंधन

प्रत्येक ऑपरेशन के बाद Signature ऑब्जेक्ट को हमेशा डिस्पोज़ करें ताकि मेमोरी लीक न हो:

signature.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 के लिए मेमोरी अनुकूलन

हीप साइज बढ़ाएँ, पेज‑बाय‑पेज प्रोसेस करें, और प्रत्येक स्टेप के बाद रेफ़रेंसेज़ साफ़ करें। यह 50 MB से बड़े दस्तावेज़ों पर OutOfMemoryError को रोकता है.

बारकोड विकल्पों को कैश करना

यदि आप कई फ़ाइलों में एक ही बारकोड कॉन्फ़िगरेशन पुनः उपयोग करते हैं, तो 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);

डायनामिक बारकोड कंटेंट

दस्तावेज़ मेटाडेटा, टाइमस्टैम्प या डेटाबेस लुकअप से बारकोड डेटा जेनरेट करें:

// 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 एन्डपॉइंट एक्सपोज़ करें जो 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 बारकोड क्या है?
A: GS1CompositeBar एक लीनियर और 2D कंपोनेंट को मिलाकर उत्पाद आईडी, सीरियल नंबर और अन्य डेटा को एक ही स्कैन करने योग्य सिंबल में स्टोर करता है, जो रिटेल और लॉजिस्टिक्स में व्यापक रूप से उपयोग होता है.

Q: क्या मैं GS1CompositeBar के अलावा अन्य बारकोड प्रकार उपयोग कर सकता हूँ?
A: हाँ—GroupDocs.Signature 60 से अधिक प्रकार सपोर्ट करता है, जिसमें QR, Code128, DataMatrix, PDF417, और Aztec शामिल हैं. फ़ॉर्मैट बदलने के लिए setEncodeType() वैल्यू बदलें.

Q: उत्पादन उपयोग के लिए लाइसेंस चाहिए?
A: उत्पादन डिप्लॉयमेंट के लिए एक वैध GroupDocs लाइसेंस आवश्यक है. विकास और परीक्षण के लिए फ्री ट्रायल उपलब्ध है.

Q: क्या बारकोड स्कैनर साइन किए गए PDFs से बारकोड पढ़ सकते हैं?
A: बिल्कुल, बशर्ते बारकोड कम से कम 200 × 100 px हो और पर्याप्त कंट्रास्ट हो. स्मार्टफ़ोन स्कैनिंग ऐप्स ऑन‑स्क्रीन काम करते हैं; हार्डवेयर स्कैनर प्रिंटेड कॉपीज़ पर काम करते हैं.

Q: साइनिंग के दौरान त्रुटियों को कैसे हैंडल करें?
A: कोड को try‑catch ब्लॉक्स में रैप करें, पूरी स्टैक ट्रेस लॉग करें, और हमेशा finally ब्लॉक में signature.dispose() कॉल करके रिसोर्स रिलीज़ करें.

Q: क्या मैं अन्य दस्तावेज़ फ़ॉर्मैट साइन कर सकता हूँ?
A: हाँ—GroupDocs.Signature DOCX, XLSX, PPTX, इमेजेज़ और कई अन्य फ़ॉर्मैट भी सपोर्ट करता है. केवल इनपुट फ़ाइल एक्सटेंशन बदलें; API वही रहता है.

Q: फ़ाइल‑साइज़ की सीमाएँ हैं?
A: कोई हार्ड लिमिट नहीं, लेकिन 50 MB से बड़े दस्तावेज़ों को बड़े JVM हीप और पेज‑बाय‑पेज प्रोसेसिंग की आवश्यकता हो सकती है ताकि मेमोरी‑इफ़िशिएंट रहे.

Q: क्लाउड स्टोरेज में रखे PDFs को कैसे साइन करें?
A: फ़ाइल को अस्थायी लोकल पाथ पर डाउनलोड करें, सिग्नेचर लागू करें, फिर वापस क्लाउड बकेट में अपलोड करें. अस्थायी फ़ाइलों को बाद में साफ़ करें.

निष्कर्ष

आपके पास अब PDF दस्तावेज़ों के लिए create barcode signature java करने की एक पूर्ण, प्रोडक्शन‑रेडी गाइड है। क्रिप्टोग्राफ़िक डिजिटल सिग्नेचर को मशीन‑रीडेबल बारकोड के साथ मिलाकर आप कानूनी प्रवर्तन और सप्लाई‑चेन, हेल्थकेयर, फ़ाइनेंस और मैन्युफैक्चरिंग जैसे उपयोग मामलों में ऑपरेशनल दक्षता दोनों हासिल करते हैं। विभिन्न बारकोड प्रकारों के साथ प्रयोग करें, कोड को अपने मौजूदा सर्विसेज़ में इंटीग्रेट करें, और बड़े‑पैमाने पर डिप्लॉयमेंट के लिए बैच प्रोसेसिंग का अन्वेषण करें.


अंतिम अपडेट: 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);

संबंधित ट्यूटोरियल