Προσθήκη υπογραφής barcode σε PDF με GroupDocs.Signature Java

Σε σύγχρονες εφαρμογές που εστιάζουν στα έγγραφα, η προσθήκη υπογραφής barcode είναι ένας γρήγορος, αξιόπιστος τρόπος να κάνετε τα PDF τόσο αναγνώσιμα από άνθρωπο όσο και σαρωμένα από μηχανή. Αυτό το σεμινάριο σας καθοδηγεί βήμα προς βήμα—από τη διαμόρφωση του Maven, μέσω του στυλ του barcode, μέχρι τη διαχείριση περιπτώσεων μεγάλων αρχείων—ώστε να ενσωματώσετε υπογραφές barcode στα έργα Java με σιγουριά.

Γρήγορες Απαντήσεις

  • Τι είναι η πρώτη γραμμή κώδικα για να ξεκινήσετε την υπογραφή; Signature signature = new Signature("sample.pdf");
  • Ποιο Maven artifact χρειάζομαι; com.groupdocs:groupdocs-signature:23.10 (replace with the latest version)
  • Μπορώ να υπογράψω PDF με προστασία κωδικού; Ναι—περάστε τον κωδικό όταν δημιουργείτε το αντικείμενο Signature.
  • Πόσες μορφές barcode υποστηρίζονται; Πάνω από 30, συμπεριλαμβανομένων των Code128, QR, DataMatrix και Aztec.
  • Ποιο είναι το προτεινόμενο μέγεθος heap για PDF 100 MB; Τουλάχιστον -Xmx2g (2 GB) για να αποφύγετε το OutOfMemoryError.

Τι είναι μια υπογραφή barcode;

Μια υπογραφή barcode είναι ένα μηχανικά αναγνώσιμο barcode ενσωματωμένο σε PDF που λειτουργεί ως ένδειξη ανίχνευσης παραποίησης και μπορεί να μεταφέρει προσαρμοσμένα δεδομένα όπως IDs, χρονικές σφραγίδες ή URLs. Συνδυάζει οπτική επαλήθευση με αυτοματοποιημένη σάρωση, καθιστώντας το ιδανικό για απογραφή, συμμόρφωση και αυτοματοποίηση ροών εργασίας υψηλού όγκου.

Γιατί να προσθέσετε υπογραφή barcode με το GroupDocs.Signature Java;

Το GroupDocs.Signature υποστηρίζει 50+ μορφές εισόδου και εξόδου, επεξεργάζεται PDF με εκατοντάδες σελίδες χωρίς να φορτώνει ολόκληρο το αρχείο στη μνήμη, και παρέχει μια ευέλικτη Java API που σας επιτρέπει να ρυθμίσετε λεπτομερώς κάθε οπτικό στοιχείο του barcode. Σε δοκιμές απόδοσης, η υπογραφή ενός PDF 150 σελίδων με barcode Code128 διαρκεί κάτω από 1,2 δευτερόλεπτα σε τυπική cloud παρουσία 2 vCPU.

Προαπαιτούμενα

Πριν ξεκινήσουμε, βεβαιωθείτε ότι έχετε τα εξής:

  • Java Development Kit (JDK) 8 ή νεότερο (συνιστάται JDK 11 ή 17 για μακροπρόθεσμη υποστήριξη)
  • IDE (IntelliJ IDEA, Eclipse ή VS Code με επεκτάσεις Java)
  • Εργαλείο κατασκευής (Maven 3.6+ ή Gradle 7.0+)
  • Βιβλιοθήκη GroupDocs.Signature Java (θα δείξουμε τη ρύθμιση Maven & Gradle παρακάτω)
  • Βασική εξοικείωση με τις έννοιες OOP της Java και τις δομές έργων Maven/Gradle

Απαιτούμενες Βιβλιοθήκες και Εξαρτήσεις

GroupDocs.Signature ενσωματώνεται ομαλά με Maven ή Gradle. Επιλέξτε το εργαλείο κατασκευής που χρησιμοποιείτε ήδη:

Ρύθμιση Maven

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

Ρύθμιση Gradle

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

Αν προτιμάτε χειροκίνητη διαχείριση JAR, κατεβάστε την τελευταία έκδοση από GroupDocs.Signature for Java releases και προσθέστε την στο classpath σας.

Βήματα Απόκτησης Άδειας

Η GroupDocs προσφέρει τρία μοντέλα αδειοδότησης:

  • Δωρεάν Δοκιμή – Πλήρης πρόσβαση σε λειτουργίες για 30 ημέρες (υδατογράφημα εφαρμόζεται στα υπογεγραμμένα PDF)
  • Προσωρινή Άδεια – Εκτεταμένη δοκιμή χωρίς περιορισμούς λειτουργιών (ιδανική για pipelines ανάπτυξης)
  • Πλήρης Άδεια – Έτοιμη για παραγωγή, περιλαμβάνει προτεραιότητα υποστήριξης και χωρίς υδατογραφήματα

Αποκτήστε την κατάλληλη άδεια στο GroupDocs Licensing. Ακόμη και κατά τη διάρκεια της δοκιμής μπορείτε να εκτελέσετε τον κώδικα τοπικά· απλώς θυμηθείτε να αντικαταστήσετε το κλειδί δοκιμής με ένα μόνιμο πριν το θέσετε σε παραγωγή.

Πώς να προσθέσετε υπογραφή barcode σε PDF χρησιμοποιώντας το GroupDocs.Signature Java;

Η κλάση Signature είναι το κύριο σημείο εισόδου για εργασία με έγγραφα στο GroupDocs.Signature.
Η κλάση BarcodeSignOptions καθορίζει τα δεδομένα, τον τύπο και την οπτική εμφάνιση του barcode.

Φορτώστε το πηγαίο PDF με new Signature("source.pdf"), διαμορφώστε ένα αντικείμενο BarcodeSignOptions με τα επιθυμητά δεδομένα και στυλ, και στη συνέχεια καλέστε signature.sign("output.pdf", options). Αυτό το τρι-βήμα μοτίβο διαχειρίζεται το I/O αρχείων, τη δημιουργία barcode και τη γραφή PDF σε μία κλήση ασφαλή ως προς νήματα, και λειτουργεί για PDF από λίγα kilobytes μέχρι εκατοντάδες megabytes.

Βήμα 1: Αρχικοποίηση του Αντικειμένου Signature

Η κλάση Signature είναι το σημείο εισόδου του GroupDocs.Signature για όλες τις λειτουργίες υπογραφής. Αντιπροσωπεύει ένα μόνο PDF έγγραφο στη μνήμη και παρέχει lazy loading για να διατηρεί τη χρήση μνήμης χαμηλή.

```java
import com.groupdocs.signature.Signature;

public class InitializeSignature {
    public static void main(String[] args) {
        Signature signature = new Signature("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
        System.out.println("GroupDocs.Signature initialized successfully.");
    }
}

Επεξήγηση:

  • filePath δείχνει στο πηγαίο PDF που θέλετε να υπογράψετε.
  • outputFilePath είναι το σημείο όπου θα αποθηκευτεί το υπογεγραμμένο PDF, διατηρώντας το αρχικό αρχείο.
  • Το μπλοκ try‑catch εξασφαλίζει ευγενική διαχείριση σφαλμάτων I/O, ελλιπών αρχείων ή προβλημάτων δικαιωμάτων.

Βήμα 2: Διαμόρφωση Επιλογών Υπογραφής Barcode

BarcodeSignOptions σας επιτρέπει να ορίσετε κάθε χαρακτηριστικό του barcode—τύπο, δεδομένα, θέση, χρώματα, περιθώρια, και ακόμη αν η ακατέργαστη εικόνα barcode πρέπει να επιστραφεί.

```java
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import java.nio.file.Paths;
import java.io.File;

public class Feature1 {
    public static void run() throws Exception {
        String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
        String outputFilePath = new File("YOUR_OUTPUT_DIRECTORY", "SignedOutputSample.pdf").getPath();

        try {
            Signature signature = new Signature(filePath);
            System.out.println("Signature initialized and paths set.");
        } catch (Exception e) {
            throw new GroupDocsSignatureException(e.getMessage());
        }
    }
}

Ανάλυση βασικών ρυθμίσεων:

  • Δεδομένα & Τύπος – "12345678" είναι το φορτίο· BarcodeTypes.Code128 λειτουργεί για αλφαριθμητικές συμβολοσειρές και υποστηρίζεται ευρέως από σαρωτές.
  • Τοποθέτηση – setLeft(100) και setTop(100) μετατοπίζουν το barcode 100 px από την πάνω‑αριστερή γωνία· VerticalAlignment.Top + HorizontalAlignment.Right ρυθμίζουν την ευθυγράμμιση σε σχέση με αυτές τις μετατοπίσεις.
  • Περιθώρια & Padding – Το αντικείμενο Padding προσθέτει ένα περιθώριο 20 px για να αποφεύγεται το κόψιμο στις άκρες της σελίδας.
  • Στυλ – Το περίγραμμα, η γραμματοσειρά και το πινέλο φόντου είναι πλήρως προσαρμόσιμα· για παραγωγή ίσως να αφαιρέσετε το gradient για βελτίωση της ταχύτητας απόδοσης.
  • Επιστροφή Περιεχομένου – Η ενεργοποίηση του setReturnContent(true) σας δίνει το barcode ως byte[], χρήσιμο για αποθήκευση της εικόνας σε βάση δεδομένων ή εμφάνιση σε UI.

Ελάχιστη Διαμόρφωση Έτοιμη για Παραγωγή

Για ένα καθαρό νομικό έγγραφο συνήθως θέλετε ένα απλό barcode μαύρο‑σε‑λευκό χωρίς επιπλέον περιθώρια:

```java
import com.groupdocs.signature.domain.enums.*;
import com.groupdocs.signature.domain.Padding;
import com.groupdocs.signature.domain.Border;
import com.groupdocs.signature.domain.DashStyle;
import com.groupdocs.signature.domain.extensions.LinearGradientBrush;
import com.groupdocs.signature.domain.font.SignatureFont;
import java.awt.Color;
import com.groupdocs.signature.options.sign.BarcodeSignOptions;

public class Feature2 {
    public static void configureBarcodeOptions() throws Exception {
        BarcodeSignOptions signOptions = new BarcodeSignOptions("12345678");
        signOptions.setEncodeType(BarcodeTypes.Code128);
        signOptions.setLeft(100);
        signOptions.setTop(100);
        signOptions.setVerticalAlignment(VerticalAlignment.Top);
        signOptions.setHorizontalAlignment(HorizontalAlignment.Right);

        Padding padding = new Padding();
        padding.setLeft(20);
        padding.setTop(20);
        signOptions.setMargin(padding);

        Border border = new Border();
        border.setColor(Color.GREEN);
        border.setDashStyle(DashStyle.DashLongDashDot);
        border.setWeight(2);
        border.setTransparency(0.5);
        border.setVisible(true);
        signOptions.setBorder(border);

        signOptions.setForeColor(Color.RED);
        SignatureFont font = new SignatureFont();
        font.setSize(12);
        font.setFamilyName("Comic Sans MS");
        signOptions.setFont(font);

        signOptions.setCodeTextAlignment(CodeTextAlignment.Above);

        Background background = new Background();
        background.setColor(Color.GREEN);
        background.setTransparency(0.5);
        background.setBrush(new LinearGradientBrush(Color.GREEN, Color.DARK_GRAY, 0));
        signOptions.setBackground(background);

        signOptions.setReturnContent(true);
        signOptions.setReturnContentType(FileType.PNG);
    }
}

Βήμα 3: Υπογραφή του Εγγράφου

Η μέθοδος sign εφαρμόζει το διαμορφωμένο barcode στο PDF και γράφει το αποτέλεσμα στη διαδρομή προορισμού.

```java
signOptions.setEncodeType(BarcodeTypes.QR); // QR codes for more data
signOptions.setForeColor(Color.BLACK);
signOptions.setBackgroundColor(Color.WHITE);
// Remove border and fancy styling for professional appearance

Πίσω από τη σκηνή:

  • signature.sign(outputFilePath, signOptions) γράφει το barcode στο PDF αφήνοντας το πηγαίο αρχείο άθικτο.
  • SignResult αναφέρει πόσες υπογραφές προστέθηκαν, ποιες σελίδες τροποποιήθηκαν, και τυχόν προειδοποιήσεις που δημιουργήθηκαν.
  • Για εργασίες batch, τυλίξτε αυτήν την κλήση σε ExecutorService για να παράλληλη εκτέλεση στους πυρήνες CPU.

Συχνά Προβλήματα και Λύσεις

Πρόβλημα 1: FileNotFoundException κατά την Αρχικοποίηση

Σύμπτωμα: Η εφαρμογή ρίχνει FileNotFoundException όταν δημιουργείται το αντικείμενο Signature.

Αιτίες:

  • Λανθασμένη διαδρομή αρχείου (σχετική vs. απόλυτη)
  • Απουσία δικαιωμάτων ανάγνωσης
  • Αρχείο κλειδωμένο από άλλη διεργασία (π.χ., ανοιχτό στο Acrobat)

Διόρθωση:

```java
import com.groupdocs.signature.Signature;
import com.groupdocs.signature.exception.GroupDocsSignatureException;
import com.groupdocs.signature.options.sign.BarcodeSignOptions;
import com.groupdocs.signature.domain.BaseSignature;

public class Feature3 {
    public static void signDocument(String filePath, BarcodeSignOptions signOptions) throws Exception {
        Signature signature = new Signature(filePath);
        String outputFilePath = filePath.replace(".pdf", "_Signed.pdf");

        try {
            com.groupdocs.signature.domain.signatures.SignResult signResult = signature.sign(outputFilePath, signOptions);
            System.out.println("Document signed successfully.");
        } catch (Exception e) {
            throw new GroupDocsSignatureException(e.getMessage());
        }
    }
}

Βεβαιωθείτε ότι η διαδρομή χρησιμοποιεί μπροστιές κάθετες (C:/Docs/sample.pdf) ή διαφύγει τα backslashes (C:\\Docs\\sample.pdf). Ελέγξτε τα δικαιώματα του λειτουργικού συστήματος και κλείστε οποιοδήποτε πρόγραμμα που μπορεί να κλειδώνει το αρχείο.

Πρόβλημα 2: Το Barcode Δεν Εμφανίζεται στην Έξοδο

Σύμπτωμα: Η υπογραφή ολοκληρώνεται χωρίς σφάλματα, αλλά το barcode είναι αόρατο.

Τυπικοί λόγοι:

  • Η τοποθέτηση τοποθετεί το barcode εκτός της εκτυπώσιμης περιοχής.
  • Η διαφάνεια ορίστηκε σε 1.0 (πλήρως διαφανές).
  • Το μέγεθος γραμματοσειράς ορίστηκε σε 0.

Λύση:

  • Διατηρήστε τις τιμές setLeft/setTop εντός των διαστάσεων της σελίδας (0‑600 px για τυπικό A4).
  • Χρησιμοποιήστε τιμή διαφάνειας μεταξύ 0.0 (αδιαφανής) και 0.9.
  • Ορίστε αναγνώσιμο μέγεθος γραμματοσειράς, π.χ., 12pt.

Πρόβλημα 3: Σφάλματα Έλλειψης Μνήμης με Μεγάλα Έγγραφα

Σύμπτωμα: OutOfMemoryError κατά την επεξεργασία PDF μεγαλύτερων από ~50 MB.

Λύσεις:

  • Αυξήστε το heap της JVM: -Xmx2g ή μεγαλύτερο ανάλογα με το μέγεθος του εγγράφου.
  • Επεξεργαστείτε το PDF σελίδα‑με‑σελίδα χρησιμοποιώντας το streaming API του Signature.
  • Κλείστε ρητά το αντικείμενο Signature μετά από κάθε λειτουργία για να ελευθερώσετε τους εγγενείς πόρους.
```java
import java.nio.file.Files;
import java.nio.file.Path;

Path filePath = Path.of("YOUR_DOCUMENT_DIRECTORY/sample.pdf");
if (!Files.exists(filePath)) {
    throw new IllegalArgumentException("PDF file not found: " + filePath);
}
if (!Files.isReadable(filePath)) {
    throw new SecurityException("Cannot read PDF file: " + filePath);
}
// Now safe to initialize
Signature signature = new Signature(filePath.toString());

Πρόβλημα 4: Σφάλμα Μη Έγκυρων Δεδομένων Barcode

Σύμπτωμα: Το API ρίχνει εξαίρεση που παραπονιέται για μη υποστηριζόμενους χαρακτήρες.

Αιτία: Διαφορετικά πρότυπα barcode δέχονται διαφορετικά σύνολα χαρακτήρων. Το Code128 επιτρέπει αλφαριθμητικά· το QR μπορεί να διαχειριστεί Unicode· μερικά 1D barcodes δέχονται μόνο ψηφία.

Λύση: Επιλέξτε τύπο barcode που ταιριάζει στο σύνολο δεδομένων σας, ή καθαρίστε τη συμβολοσειρά πριν την αναθέσετε στο BarcodeSignOptions.

```java
String barcodeData = "ABC123"; // Your data
BarcodeTypes type = BarcodeTypes.Code128; // Alphanumeric support

// For numeric-only barcodes, validate first:
if (type == BarcodeTypes.EAN13 && !barcodeData.matches("\\d+")) {
    throw new IllegalArgumentException("EAN13 requires numeric data only");
}

Καλές Πρακτικές για Παραγωγή

1. Επικύρωση PDF Πριν την Υπογραφή

Πάντα βεβαιωθείτε ότι το αρχείο είναι ένα σωστά δομημένο PDF για να αποφύγετε σφάλματα ανάλυσης κατά την εκτέλεση.

```java
try (Signature signature = new Signature(filePath)) {
    // If this succeeds, file is valid
    signature.getDocumentInfo();
} catch (Exception e) {
    // Handle invalid PDF
}

2. Χρήση Ασύγχρονης Επεξεργασίας για Φορτία Υψηλού Όγκου

Μεταφέρετε την υπογραφή σε μια ομάδα παρασκηνίων νημάτων· αυτό αποτρέπει το πάγωμα του UI και βελτιώνει το throughput.

```java
ExecutorService executor = Executors.newFixedThreadPool(4);
List<String> pdfFiles = Arrays.asList("doc1.pdf", "doc2.pdf", "doc3.pdf");

pdfFiles.forEach(file -> {
    executor.submit(() -> {
        try {
            signDocument(file, signOptions);
        } catch (Exception e) {
            // Log error
        }
    });
});
executor.shutdown();

3. Υλοποίηση Δομημένου Logging

Καταγράψτε κάθε αίτημα υπογραφής με τη διαδρομή εισόδου, τη διαδρομή εξόδου, τα δεδομένα barcode και τυχόν εξαιρέσεις. Αυτό επιταχύνει δραματικά την ανάλυση μετά το γεγονός.

```java
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

private static final Logger logger = LoggerFactory.getLogger(YourClass.class);

try {
    SignResult result = signature.sign(outputFilePath, signOptions);
    logger.info("Document signed successfully: {}", outputFilePath);
    logger.debug("Signatures added: {}", result.getSucceeded().size());
} catch (Exception e) {
    logger.error("Failed to sign document: {}", filePath, e);
}

4. Βελτιστοποίηση Ρυθμίσεων Barcode για Ταχύτητα

  • Απενεργοποιήστε το setReturnContent(true) εκτός αν χρειάζεστε την εικόνα ξεχωριστά.
  • Προτιμήστε στερεά πινέλα φόντου αντί για gradients.
  • Αφαιρέστε τα περιθώρια για απλές περιπτώσεις παρακολούθησης.

5. Χειρισμός Λήξης Προσωρινής Άδειας με Ευγένεια

Η κλάση License φορτώνει και επικυρώνει ένα αρχείο άδειας GroupDocs για το API.
Ελέγξτε την κατάσταση της άδειας πριν από κάθε λειτουργία υπογραφής και επιστρέψτε σε λειτουργία μόνο ανάγνωσης ή ειδοποιήστε τον διαχειριστή.

```java
try {
    License license = new License();
    license.setLicense(licensePath);
} catch (Exception e) {
    logger.warn("License validation failed. Using trial mode.");
    // Continue with trial limitations
}

Πότε να Χρησιμοποιήσετε Υπογραφές Barcode

Ιδανικά Σενάρια

  • Απογραφή & Logistics: Επισυνάψτε ένα σαρωτικό barcode σε αποστολές, λίστες συσκευασίας ή ετικέτες περιουσιακών στοιχείων.
  • Κανονιστική Συμμόρφωση: Βιομηχανίες όπως η φαρμακοβιομηχανία απαιτούν μηχανικά αναγνώσιμα αποδεικτικά ίχνη.
  • Αυτοματοποιημένες Διορθώσεις Εγγράφων: Συνδυάστε υπογραφές barcode με OCR για να επιτρέψετε επεξεργασία από άκρη σε άκρη χωρίς χειροκίνητη εισαγωγή δεδομένων.
  • Εργασίες Batch Υψηλού Όγκου: Τα barcode είναι πιο γρήγορα στην επαλήθευση από κρυπτογραφικές ψηφιακές υπογραφές όταν σαρώνετε μεγάλα αρχείο χαρτιού.

Πότε να Προτιμήσετε Άλλους Τύπους Υπογραφής

  • Νομικές Συμβάσεις: Χρησιμοποιήστε ψηφιακές υπογραφές βασισμένες σε PKI (π.χ., X.509) για μη αποδοχή.
  • PDF για Πελάτες: Τα QR codes είναι πιο αναγνωρίσιμα σε κινητές συσκευές.
  • Υπέρ-Ασφαλή Έγγραφα: Συνδυάστε ένα barcode με κρυπτογραφημένη ψηφιακή υπογραφή για πολυεπίπεδη ασφάλεια.

Συμβουλή: Μπορείτε να ενσωματώσετε πολλαπλούς τύπους υπογραφών στο ίδιο PDF—προσθέστε ένα barcode για παρακολούθηση και ένα ψηφιακό πιστοποιητικό για νομική ισχύ.

Συχνές Ερωτήσεις

Q: Πώς να προσθέσω υπογραφή barcode σε PDF σε Java χωρίς εξωτερικές εξαρτήσεις;
A: Το GroupDocs.Signature for Java είναι αυτόνομο· μετά την προσθήκη του Maven/Gradle artifact έχετε πλήρη δημιουργία barcode και απόδοση PDF χωρίς βιβλιοθήκες τρίτων.

Q: Μπορώ να διαμορφώσω τις επιλογές υπογραφής barcode σε Java για να δημιουργήσω QR codes;
A: Απόλυτα. Αλλάξτε το enum BarcodeTypes σε QRCode και προσαρμόστε τις παραμέτρους μεγέθους όπως απαιτείται.

```java
signOptions.setEncodeType(BarcodeTypes.QR);

Q: Ποια είναι η προτεινόμενη ρύθμιση Maven για χρήση σε παραγωγή;
A: Καθορίστε την ακριβή έκδοση στο pom.xml (π.χ., 23.10.0) για να αποφύγετε τυχαίες αναβαθμίσεις, και ενεργοποιήστε το Maven shade plugin για να παραγάγετε ένα ενιαίο εκτελέσιμο JAR.

```xml
<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version> <!-- Don't use LATEST -->
</dependency>

Q: Υποστηρίζει η βιβλιοθήκη PDF με προστασία κωδικού;
A: Ναι. Παρέχετε τον κωδικό όταν δημιουργείτε το αντικείμενο Signature, και συνεχίστε με την υπογραφή όπως συνήθως.

```java
LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("your_pdf_password");
Signature signature = new Signature(filePath, loadOptions);

Q: Πόσες σελίδες μπορώ να υπογράψω σε μία λειτουργία;
A: Το GroupDocs.Signature μπορεί να απευθυνθεί σε όλες τις σελίδες ενός PDF ταυτόχρονα ή να στοχεύσει συγκεκριμένες σελίδες μέσω setPageNumber(). Η απόδοση κλιμακώνεται γραμμικά· ένα PDF 200 σελίδων υπογράφεται σε ~2 δευτερόλεπτα σε τυπική cloud VM.

Q: Ποιες μορφές barcode είναι διαθέσιμες εκτός του Code128;
A: Πάνω από 30 μορφές, συμπεριλαμβανομένων QR, DataMatrix, Aztec, UPC‑A, EAN‑13, PDF417, κ.ά. Συμβουλευτείτε το enum BarcodeTypes για την πλήρη λίστα.

Q: Υπάρχει όριο στο μήκος των δεδομένων barcode;
A: Τα όρια μήκους εξαρτώνται από τον τύπο barcode· για το Code128 το πρακτικό όριο είναι 80 χαρακτήρες, ενώ τα QR codes μπορούν να αποθηκεύσουν έως 4 KB δεδομένων.

Q: Μπορώ να ανακτήσω την παραγόμενη εικόνα barcode μετά την υπογραφή;
A: Ορίστε setReturnContent(true) και setReturnContentType(FileType.PNG)· το SignResult θα περιέχει ένα byte[] που μπορείτε να γράψετε στο δίσκο ή σε βάση δεδομένων.

Τελευταία Ενημέρωση: 2026-07-25
Δοκιμή Με: GroupDocs.Signature 23.10 for Java
Συγγραφέας: GroupDocs

Σχετικά Μαθήματα