Java में PDF पर हस्ताक्षर कैसे करें – प्रमाणपत्र लोडिंग और दस्तावेज़ हस्ताक्षर की पूर्ण गाइड

परिचय

आइए सच कहें—2025 में, यदि आप अभी भी गीले हस्ताक्षर के लिए दस्तावेज़ों को ईमेल कर रहे हैं, तो आप संभवतः समय, पैसा और यहाँ तक कि ग्राहकों को भी खो रहे हैं। Java में PDF पर हस्ताक्षर कैसे करें अब केवल एक अतिरिक्त कौशल नहीं रहा; यह वित्त, स्वास्थ्य देखभाल, कानूनी सेवाओं और किसी भी उद्योग के लिए एक मुख्य आवश्यकता बन गया है जो गति और अनुपालन को महत्व देता है।

Java में डिजिटल हस्ताक्षर लागू करना भारी लग सकता है, लेकिन GroupDocs.Signature के साथ आप समस्या को दो तार्किक चरणों में बाँट सकते हैं: कीस्टोर से प्रमाणपत्र लोड करना और दस्तावेज़ पर हस्ताक्षर करना। यह ट्यूटोरियल दोनों चरणों को समझाता है, प्रत्येक भाग क्यों महत्वपूर्ण है बताता है, और आपको उत्पादन‑तैयार कोड देता है जिसे आप वास्तविक एप्लिकेशन में जोड़ सकते हैं।

आप इस गाइड को समाप्त करने के बाद स्पष्ट समझ प्राप्त करेंगे:

  • Java कीस्टोर या Windows Certificate Store से डिजिटल प्रमाणपत्र कैसे लोड करें।
  • GroupDocs.Signature का उपयोग करके प्रोग्रामेटिक रूप से PDF (या अन्य समर्थित फ़ॉर्मेट) कैसे साइन करें।
  • सर्वोत्तम सुरक्षा उपाय, सामान्य pitfalls, और ट्रबलशूटिंग टिप्स।

आइए आपके दस्तावेज़ों को सुरक्षित रूप से साइन करें!

त्वरित उत्तर

  • कौन सा लाइब्रेरी PDF साइनिंग को संभालता है? GroupDocs.Signature for Java.
  • कौन सा Java संस्करण आवश्यक है? JDK 8 या नया; बेहतर प्रदर्शन के लिए JDK 11+ की सिफ़ारिश की जाती है।
  • क्या मैं DOCX और XLSX भी साइन कर सकता हूँ? हाँ – वही API 50 से अधिक फ़ाइल प्रकारों के लिए काम करता है।
  • क्या उत्पादन के लिए लाइसेंस चाहिए? उत्पादन उपयोग के लिए एक वैध GroupDocs.Signature लाइसेंस आवश्यक है।
  • क्या बड़े PDFs के लिए स्ट्रीमिंग समर्थित है? हाँ – स्ट्रीमिंग मोड को सक्षम करके सैकड़ों पृष्ठों वाली फ़ाइलों को पूरी फ़ाइल को मेमोरी में लोड किए बिना साइन किया जा सकता है।

Java में डिजिटल हस्ताक्षर क्या है?

DigitalSignature अवधारणा एक क्रिप्टोग्राफ़िक प्रमाण को दर्शाती है कि दस्तावेज़ किसी विशिष्ट इकाई द्वारा बनाया या स्वीकृत किया गया था। Java में, एक डिजिटल हस्ताक्षर प्राइवेट की (गुप्त) को पब्लिक सर्टिफ़िकेट (साझा) के साथ जोड़ता है ताकि साइन किए गए फ़ाइल की प्रामाणिकता, अखंडता और non‑repudiation सुनिश्चित हो सके।

GroupDocs.Signature for Java क्यों उपयोग करें?

GroupDocs.Signature 50+ इनपुट और आउटपुट फ़ॉर्मेट (PDF, DOCX, XLSX, PPTX, HTML, इमेज आदि) का समर्थन करता है और स्ट्रीमिंग मोड में 200 MB तक के दस्तावेज़ों को प्रोसेस कर सकता है, जिससे मेमोरी उपयोग 50 MB से कम रहता है। लाइब्रेरी में बिल्ट‑इन टाइम‑स्टैम्पिंग, विज़िबल सिग्नेचर रेंडरिंग, और PAdES, XAdES, और CAdES मानकों के साथ अनुपालन शामिल है—जिससे यह एंटरप्राइज़‑ग्रेड साइनिंग के लिए एक पूर्ण‑फ़ीचर समाधान बन जाता है।

पूर्वापेक्षाएँ

  • Java Development Kit 8 या उससे ऊपर (JDK 11+ की सिफ़ारिश)।
  • GroupDocs.Signature for Java संस्करण 23.12 या नया।
  • डिजिटल प्रमाणपत्र .pfx/.p12 फ़ॉर्मेट में या Windows Certificate Store तक पहुँच।
  • IntelliJ IDEA, Eclipse, या Java एक्सटेंशन वाले VS Code जैसे IDE।
  • Java I/O और PKI अवधारणाओं की बुनियादी समझ।

GroupDocs.Signature for Java सेटअप करना

Maven का उपयोग करके

अपने pom.xml फ़ाइल में निम्नलिखित डिपेंडेंसी जोड़ें:

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

Maven स्वचालित रूप से लाइब्रेरी और सभी ट्रांज़िटिव डिपेंडेंसीज़ को खींच लेगा।

Gradle का उपयोग करके

यदि आप Gradle पसंद करते हैं, तो build.gradle में यह स्निपेट शामिल करें:

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

सीधे डाउनलोड

आप GroupDocs.Signature for Java releases से JAR फ़ाइल डाउनलोड करके मैन्युअली क्लासपाथ में जोड़ सकते हैं। सुरक्षा पैच के लाभ के लिए JAR को अपडेट रखना न भूलें।

लाइसेंस प्राप्त करने के चरण

  • फ्री ट्रायल: मूल्यांकन सीमाओं (वॉटरमार्क) के साथ पूरी कार्यक्षमता।
  • टेम्पररी लाइसेंस: बिना प्रतिबंध के ट्रायल अवधि बढ़ाएँ।
  • खरीद: उत्पादन के लिए आवश्यक; लाइसेंस डेवलपर, साइट, या OEM के अनुसार उपलब्ध हैं।

बेसिक इनिशियलाइज़ेशन और सेटअप

Signature क्लास GroupDocs.Signature की सभी साइनिंग ऑपरेशन्स के लिए मुख्य एंट्री पॉइंट है। आप एक इंस्टेंस बनाते हैं, स्रोत फ़ाइल पास करते हैं, और फिर sign मेथड को कॉल करते हैं।

import com.groupdocs.signature.Signature;

// Initialize Signature object with your document path
Signature signature = new Signature("path/to/your/document.pdf");

महत्वपूर्ण नोट: हमेशा try‑with‑resources ब्लॉक का उपयोग करें या Signature ऑब्जेक्ट को स्पष्ट रूप से बंद करें ताकि फ़ाइल हैंडल रिलीज़ हों और मेमोरी लीक्स से बचा जा सके।

try (Signature signature = new Signature("path/to/your/document.pdf")) {
    // Your signing code here
} // Auto-closes and releases resources

फीचर 1: प्रमाणपत्र स्टोर से डिजिटल सिग्नेचर लोड करना

Java में कीस्टोर कैसे लोड करें?

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

KeyStore ks = KeyStore.getInstance("PKCS12");
try (FileInputStream fis = new FileInputStream("mycert.p12")) {
    ks.load(fis, "password".toCharArray());
}

ऊपर दिया गया स्निपेट मुख्य चरणों को दर्शाता है: कीस्टोर को इंस्टैंशिएट करना, फ़ाइल स्ट्रीम लोड करना, और पासवर्ड प्रदान करना। लोड करने के बाद आप PrivateKey और उसकी संबंधित सर्टिफ़िकेट चेन को साइनिंग के लिए निकाल सकते हैं।

आवश्यक क्लासेस इम्पोर्ट करें

पहले, Windows Certificate Store और GroupDocs.Signature के साथ इंटरैक्ट करने के लिए आवश्यक क्लासेस इम्पोर्ट करें:

import com.groupdocs.signature.domain.signatures.DigitalSignature;
import java.util.ArrayList;
import java.util.List;

LoadDigitalSignatures क्लास बनाएं

LoadDigitalSignatures क्लास Windows Certificate Store को स्कैन करने और उपयोग‑के‑लिए तैयार प्रमाणपत्र लौटाने की लॉजिक को एन्कैप्सुलेट करती है।

public class LoadDigitalSignatures {
    public List<DigitalSignature> run() {
        List<DigitalSignature> signatures = new ArrayList<>();
        try {
            // Load digital signatures from 'My' certificate store.
            List<DigitalSignature> signaturesFromStore = DigitalSignature.loadDigitalSignatures(StoreName.My);
            signatures.addAll(signaturesFromStore);
        } catch (Exception e) {
            System.out.println("Error loading certificates: " + e.getMessage());
        }
        return signatures;
    }
}

वास्तव में क्या हो रहा है?

  • StoreName.My Windows को Personal स्टोर में देखना बताता है, जहाँ उपयोगकर्ता‑जारी प्रमाणपत्र प्राइवेट की के साथ होते हैं।
  • loadDigitalSignatures() प्रत्येक एंट्री पर इटररेट करता है, जांचता है कि प्राइवेट की मौजूद है या नहीं, और परिणाम को DigitalSignature ऑब्जेक्ट में रैप करता है जिसे GroupDocs.Signature उपयोग कर सकता है।
  • यह मेथड List<DigitalSignature> लौटाता है जिसमें सभी उपयोग‑योग्य प्रमाणपत्र शामिल होते हैं।

कब इस दृष्टिकोण का उपयोग करें?
Windows पर डेस्कटॉप या इंट्रानेट एप्लिकेशन के लिए आदर्श जहाँ प्रमाणपत्र Active Directory के माध्यम से केंद्रीकृत रूप से प्रबंधित होते हैं। क्रॉस‑प्लेटफ़ॉर्म सर्विसेज के लिए .pfx फ़ाइल से लोड करना बेहतर है (ऊपर के कीस्टोर उदाहरण को देखें)।

प्रो टिप: हमेशा यह सत्यापित करें कि लौटाई गई सूची खाली नहीं है; खाली सूची आमतौर पर दर्शाती है कि उपयोगकर्ता के पास साइनिंग प्रमाणपत्र नहीं है या एप्लिकेशन को स्टोर पढ़ने की अनुमति नहीं है।

फीचर 2: डिजिटल सिग्नेचर के साथ दस्तावेज़ साइन करना

GroupDocs.Signature से PDF कैसे साइन करें?

स्रोत PDF के लिए Signature इंस्टेंस बनाएं, लोडेड DigitalSignature को अटैच करें, वैकल्पिक विज़ुअल अपीयरेंस कॉन्फ़िगर करें, और sign कॉल करें। यह मेथड मूल सामग्री को बरकरार रखते हुए एक नई साइन की हुई फ़ाइल लिखता है। परिणामी सिग्नेचर PAdES मानकों का पालन करता है, जिससे कानूनी मान्यता और PDF व्यूअर्स में टैंपर‑एविडेंस सुनिश्चित होता है।

Signature signature = new Signature("sample.pdf");
DigitalSignature sign = loadSignatures.get(0); // choose the first available certificate
SignOptions options = new SignOptions();
options.setSignature(sign);
options.setLeft(100);
options.setTop(100);
options.setWidth(200);
options.setHeight(50);
signature.sign("signed_output.pdf", options);

आवश्यक क्लासेस इम्पोर्ट करें

साइनिंग विकल्पों और आउटपुट फ़ाइल को हैंडल करने के लिए अतिरिक्त इम्पोर्ट्स आवश्यक हैं:

import com.groupdocs.signature.Signature;
import com.groupdocs.signature.domain.signatures.DigitalSignature;
import com.groupdocs.signature.options.sign.DigitalSignOptions;
import java.io.File;
import java.security.KeyStore;

SignDocumentWithDigital क्लास बनाएं

यह क्लास प्रमाणपत्र लोडिंग और दस्तावेज़ साइनिंग को जोड़ती है, सभी उपलब्ध प्रमाणपत्रों के माध्यम से लूप करती है ताकि बैच साइनिंग का प्रदर्शन किया जा सके।

public class SignDocumentWithDigital {
    public void run(String documentPath) {
        // Load digital signatures from the certificate store
        List<DigitalSignature> signatures = new LoadDigitalSignatures().run();
        
        // Counter to create unique output files for each certificate
        int signatureNumber = 0;
        
        for (DigitalSignature digitalSignature : signatures) {
            signatureNumber++;
            String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", 
                "signed_document_" + signatureNumber + ".pdf").getPath();
            
            try (Signature signature = new Signature(documentPath)) {
                // Configure signing options
                DigitalSignOptions options = new DigitalSignOptions();
                options.setSignature(digitalSignature);
                
                // Optional: Add visible signature appearance
                options.setLeft(100);
                options.setTop(100);
                options.setWidth(200);
                options.setHeight(100);
                
                // Sign the document
                signature.sign(outputFilePath, options);
                System.out.println("Document signed successfully: " + outputFilePath);
                
            } catch (Exception e) {
                System.err.println("Error signing with certificate " + 
                    signatureNumber + ": " + e.getMessage());
            }
        }
    }
}

कोड फ्लो की समझ

  1. प्रमाणपत्र लोड करना: LoadDigitalSignatures को कॉल करके सभी उपयोग‑योग्य प्रमाणपत्र प्राप्त करता है।
  2. प्रमाणपत्रों पर इटररेट करना: परीक्षण या उपयोगकर्ता को साइनिंग पहचान चुनने का विकल्प देने के लिए उपयोगी।
  3. आउटपुट मैनेजमेंट: प्रत्येक साइन किए गए दस्तावेज़ के लिए एक अनोखा फ़ाइलनाम जेनरेट करता है ताकि मौजूदा फ़ाइलों को ओवरराइट न किया जाए।
  4. सिग्नेचर कॉन्फ़िगरेशन: डिजिटल प्रमाणपत्र और वैकल्पिक विज़ुअल पैरामीटर सेट करता है।
  5. साइनिंग निष्पादन: sign() कॉल एक एम्बेडेड क्रिप्टोग्राफ़िक सिग्नेचर के साथ नई PDF बनाता है।

कब इस पैटर्न का उपयोग करें?
बैच प्रोसेसिंग (जैसे रात में हजारों इनवॉइस साइन करना) या मल्टी‑सिग्नेचर वर्कफ़्लो जहाँ कई पक्षों को एक ही दस्तावेज़ पर डिजिटल सिग्नेचर लगाना हो, के लिए उपयुक्त।

सामान्य समस्याएँ और समाधान

समस्या 1: “Certificate Store Not Found” या खाली प्रमाणपत्र सूची

सीधा उत्तर: सुनिश्चित करें कि Windows Personal स्टोर में प्राइवेट की के साथ साइनिंग प्रमाणपत्र मौजूद है, एप्लिकेशन उस उपयोगकर्ता खाते के तहत चल रहा है जिसके पास पढ़ने की अनुमति है, और गैर‑Windows प्लेटफ़ॉर्म पर कीस्टोर लोडिंग पर स्विच करें।

व्याख्या: loadDigitalSignatures() मेथड तब खाली सूची लौटाता है जब कोई योग्य प्रमाणपत्र नहीं मिलता। certmgr.msc खोलकर की‑आइकन वाले प्रमाणपत्र की जाँच करें, और स्टोर लोकेशन (CurrentUser बनाम LocalMachine) की पुष्टि करें। Linux/macOS के लिए स्टोर कॉल को पहले दिखाए गए कीस्टोर लोड से बदलें।

समस्या 2: “Access to Private Key Denied”

सीधा उत्तर: प्रमाणपत्र को CurrentUser स्टोर में इंस्टॉल करें, Certificate Manager के माध्यम से उपयोगकर्ता को प्राइवेट की पर पढ़ने/लिखने की अनुमति दें, और परीक्षण के लिए non‑exportable कीज़ का उपयोग न करें।

व्याख्या: प्राइवेट‑की एक्सेस त्रुटियाँ अक्सर तब आती हैं जब की को non‑exportable के रूप में चिह्नित किया गया हो या प्रमाणपत्र LocalMachine स्टोर में हो जहाँ प्रक्रिया के पास अधिकार नहीं होते। उचित अनुमतियों के साथ प्रमाणपत्र को पुनः‑इम्पोर्ट करें या पासवर्ड‑कंट्रोल्ड .pfx फ़ाइल का उपयोग करें।

समस्या 3: आउटपुट दस्तावेज़ भ्रष्ट है या नहीं खुल रहा

सीधा उत्तर: सुनिश्चित करें कि आउटपुट डायरेक्टरी मौजूद है, केवल वैध फ़ाइल‑सिस्टम कैरेक्टर रखती है, और साइनिंग के दौरान कोई अन्य प्रक्रिया फ़ाइल को लॉक नहीं कर रही है।

व्याख्या: यदि पाथ में अवैध कैरेक्टर हैं, डिस्क भर गई है, या स्रोत फ़ाइल कहीं और खुली है तो भ्रष्टाचार हो सकता है। साइन करने से पहले File.getParentFile().mkdirs() का उपयोग करें और किसी भी रीडर को बंद करें जो फ़ाइल को रखे हुए हो।

समस्या 4: बड़े दस्तावेज़ों में प्रदर्शन समस्या

सीधा उत्तर: स्ट्रीमिंग मोड (Signature.setStreaming(true)) को सक्षम करें और प्रमाणपत्र स्टोर तक थ्रेड‑सेफ़ एक्सेस की पुष्टि करने के बाद ही पैरलल बैच प्रोसेसिंग करें।

व्याख्या: 200‑पेज PDF को पूरी मेमोरी में लोड करने से हीप स्पेस ख़त्म हो सकता है। स्ट्रीमिंग फ़ाइल को छोटे‑छोटे हिस्सों में पढ़ता‑और‑लिखता है, जिससे मेमोरी उपयोग कम रहता है। पैरलल प्रोसेसिंग गति बढ़ाता है लेकिन साझा संसाधनों के सावधानीपूर्वक प्रबंधन की आवश्यकता होती है।

सुरक्षा सर्वोत्तम प्रथाएँ

  1. प्राइवेट कीज़ की सुरक्षा – उन्हें हार्डवेयर सुरक्षा मॉड्यूल (HSM) में रखें या Windows Credential Manager का उपयोग करें। पासवर्ड को सोर्स कोड में कभी एम्बेड न करें।
  2. प्रमाणपत्रों का वैलिडेशन – समाप्ति तिथि, चेन ट्रस्ट, रिवोकेशन स्टेटस, और key‑usage एक्सटेंशन की जाँच साइन करने से पहले करें।
  3. मजबूत एल्गोरिदम उपयोग करें – SHA‑256 के साथ RSA 2048‑bit या ECDSA 256‑bit कीज़ को प्राथमिकता दें; MD5 या SHA‑1 से बचें।
  4. सुरक्षित ट्रांसमिशन – दस्तावेज़ों को HTTPS पर ट्रांसफ़र करें और साइन किए गए फ़ाइलों पर रोल‑बेस्ड एक्सेस कंट्रोल लागू करें।
  5. ऑडिट लॉगिंग – टाइमस्टैम्प, उपयोगकर्ता ID, और प्रमाणपत्र थंबप्रिंट के साथ साइनिंग इवेंट रिकॉर्ड करें ताकि अनुपालन बना रहे।
  6. पासवर्ड हैंडलिंग – पासवर्ड को सुरक्षित इनपुट (जैसे Console.readPassword()) से प्राप्त करें, उपयोग के बाद कैरेक्टर एरे को साफ़ करें, और कभी भी लॉग न करें।

कब इस दृष्टिकोण का उपयोग करें

आदर्श परिदृश्य

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

जहाँ अन्य समाधान बेहतर हो सकते हैं

  • सरल हस्तलिखित हस्ताक्षर – क्रिप्टोग्राफ़िक सिग्नेचर की बजाय इमेज‑आधारित सिग्नेचर उपयोग करें।
  • रियल‑टाइम मल्टी‑पार्टी साइनिंग – वर्कफ़्लो ऑर्केस्ट्रेशन के लिए DocuSign जैसे SaaS ई‑सिग्नेचर प्लेटफ़ॉर्म पर विचार करें।
  • ब्लॉकचेन‑एंकर्ड सिग्नेचर – यदि आपको अपरिवर्तनीय ऑन‑चेन प्रमाण की आवश्यकता है तो विशेष लाइब्रेरीज़ उपयोग करें।
  • मोबाइल‑फ़र्स्ट UX – iOS/Android के लिए नेटिव मोबाइल SDK बेहतर उपयोगकर्ता अनुभव दे सकते हैं।

अक्सर पूछे जाने वाले प्रश्न

प्रश्न: क्या मैं साइन करने के बाद डिजिटल सिग्नेचर को वेरिफ़ाई कर सकता हूँ?
उत्तर: हाँ – Signature.verify("signed_output.pdf") का उपयोग करें, जो एक VerificationResult लौटाता है जिसमें वैधता, साइनर सर्टिफ़िकेट विवरण, और किसी भी टैंपरिंग की जानकारी होती है।

प्रश्न: क्या GroupDocs.Signature टाइम‑स्टैम्पिंग का समर्थन करता है?
उत्तर: बिल्कुल। आप options.setTimestampServerUrl("https://tsa.example.com") के माध्यम से TSA (Time‑Stamp Authority) URL अटैच करके विश्वसनीय टाइम‑स्टैम्प बना सकते हैं।

प्रश्न: PDF के अलावा कौन‑से फ़ाइल फ़ॉर्मेट साइन कर सकते हैं?
उत्तर: 50 से अधिक फ़ॉर्मेट, जिसमें DOCX, XLSX, PPTX, HTML, PNG, JPEG, और TIFF शामिल हैं। केवल इनपुट और आउटपुट पाथ में फ़ाइल एक्सटेंशन बदलें।

प्रश्न: मैं दस्तावेज़ को अदृश्य (invisible) कैसे साइन करूँ?
उत्तर: विज़ुअल पोज़िशनिंग मेथड्स (setLeft, setTop, setWidth, setHeight) को छोड़ दें। सिग्नेचर केवल क्रिप्टोग्राफ़िक होगा और पेज पर रेंडर नहीं होगा।

प्रश्न: दस्तावेज़ आकार पर कोई सीमा है?
उत्तर: स्ट्रीमिंग सक्षम होने पर आप 500 MB से बड़े फ़ाइलों को भी साइन कर सकते हैं; मेमोरी खपत 100 MB से नीचे रहती है।

निष्कर्ष

आपके पास अब उत्पादन‑तैयार रोडमैप है जिससे आप GroupDocs.Signature का उपयोग करके Java में PDF दस्तावेज़ साइन कर सकते हैं। प्रमाणपत्र लोड करने से लेकर (Windows Certificate Store या क्रॉस‑प्लेटफ़ॉर्म कीस्टोर) विज़िबल और इनविज़िबल दोनों डिजिटल सिग्नेचर लागू करने तक, यहाँ दिए गए कोड स्निपेट और सर्वोत्तम प्रथाएँ सुरक्षित, अनुपालन‑युक्त साइनिंग वर्कफ़्लो बनाने के लिए सभी आवश्यक चीज़ें कवर करती हैं।

अगला कदम? वास्तविक इनवॉइस का एक बैच साइन करने की कोशिश करें, कानूनी प्रमाणिकता के लिए टाइम‑स्टैम्पिंग इंटेग्रेट करें, और कस्टम सिग्नेचर अपीयरेंस के लिए विस्तृत API का अन्वेषण करें। कोडिंग का आनंद लें, और क्रिप्टोग्राफ़िक रूप से संरक्षित दस्तावेज़ों के साथ मिलने वाले मन की शांति का अनुभव करें!


अंतिम अपडेट: 2026-06-06
टेस्टेड विद: GroupDocs.Signature for Java 23.12 (लेखन समय पर नवीनतम)
लेखक: GroupDocs

Documentation | API Reference | Download Latest Version | Purchase License | Free Trial | Support Forum | Temporary License

{< blocks/products/products-backtop-button >} {< /blocks/products/pf/main-wrap-class >} {< /blocks/products/pf/main-container >} {< /blocks/products/pf/tutorial-page-section >}

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