Wie man digitale Signaturen zu Dateien in Java mit Barcodes und QR-Codes hinzufügt
Einführung
Haben Sie sich jemals gefragt, wie Sie mit digital signature java nachweisen können, dass Ihre Dateien nicht manipuliert wurden? Oder benötigen Sie eine Möglichkeit, Dokumente programmgesteuert zu authentifizieren, ohne komplexe kryptografische Setups? Traditionelle digitale Signaturen können für bestimmte Anwendungsfälle überdimensioniert sein. Manchmal benötigen Sie nur eine leichte, scannbare Methode, um die Dateiintegrität zu überprüfen – insbesondere bei Archiven, Backups oder automatisierten Workflows. Genau hier kommen Barcode‑ und QR‑Code‑Signaturen ins Spiel.
In diesem Tutorial lernen Sie, wie Sie digitale Signaturen in Java mit GroupDocs.Signature implementieren. Wir konzentrieren uns auf das Signieren von TAR‑Archiven (ideal für Backup‑Systeme und Software‑Distribution), aber diese Techniken funktionieren mit verschiedenen Dokumentformaten. Egal, ob Sie ein Dokumenten‑Management‑System bauen oder einfach eine zusätzliche Sicherheitsebene zu Ihren Dateien hinzufügen möchten, Sie sind hier genau richtig.
Was Sie mitnehmen:
- Eine funktionierende Implementierung von Barcode‑ und QR‑Code‑Signaturen in Java
- Verständnis, wann welcher Signaturtyp verwendet wird (und warum das wichtig ist)
- Praktische Lösungen für gängige Signatur‑Herausforderungen
- Echte Integrations‑Muster, die Sie sofort einsetzen können
- Leistungsoptimierungstipps für Produktionssysteme
Legen wir los – ein Abschluss in Kryptografie ist nicht nötig.
Schnelle Antworten
- Welche Bibliothek verarbeitet Barcode‑Signaturen in Java? GroupDocs.Signature für Java.
- Welcher Signaturtyp speichert mehr Daten? QR‑Codes (bis zu 4.296 alphanumerische Zeichen).
- Kann ich große TAR‑Dateien (> 100 MB) signieren? Ja – verwenden Sie Hintergrund‑Threads und erhöhen Sie den JVM‑Heap.
- Benötige ich eine Internetverbindung? Nein, die Bibliothek funktioniert vollständig offline.
- Ist für die Produktion eine Lizenz erforderlich? Ja, eine gültige GroupDocs.Signature‑Lizenz ist zwingend erforderlich.
Was ist Digital Signature Java?
Digital signature java ist der Prozess, ein überprüfbares visuelles Token – wie einen Barcode oder QR‑Code – direkt in eine von Java erzeugte Datei einzubetten, um deren Authentizität und Integrität zu beweisen. Durch das Anfügen dieses visuellen Tokens können Entwickler eine schnelle, menschenlesbare Möglichkeit bieten, zu bestätigen, dass die Datei seit dem Signieren nicht verändert wurde, während gleichzeitig eine programmgesteuerte Überprüfung über die GroupDocs.Signature‑API ermöglicht wird.
Warum Barcode‑ oder QR‑Code‑Signaturen verwenden?
GroupDocs.Signature unterstützt über 50 Eingabe‑ und Ausgabeformate (einschließlich PDF, DOCX, XLSX, HTML, PNG und TAR) und kann mehrseitige Dokumente verarbeiten, ohne die gesamte Datei in den Speicher zu laden. Barcodes und QR‑Codes bieten Ihnen einen scannbaren, eigenständigen Nachweis der Authentizität und eliminieren in vielen internen Workflows die Notwendigkeit externer Zertifizierungsstellen.
Voraussetzungen
- GroupDocs.Signature for Java Library – Version 23.12 oder neuer
- Java Development Kit (JDK) – Version 8 oder höher
- IDE – IntelliJ IDEA, Eclipse oder ein beliebiger Java‑kompatibler Editor
- Grundlegende Java‑Kenntnisse – Sie sollten mit Klassen und Imports vertraut sein
Umgebung einrichten
Das Einbinden von GroupDocs.Signature in Ihr Projekt ist unkompliziert. Wählen Sie Ihr Build‑Tool:
Maven (add this to your pom.xml):
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>23.12</version>
</dependency>
Gradle (add to your build.gradle):
implementation 'com.groupdocs:groupdocs-signature:23.12'
Manueller Download: Verwenden Sie nicht Maven oder Gradle? Laden Sie das JAR direkt von GroupDocs.Signature releases herunter und fügen Sie es Ihrem Klassenpfad hinzu.
Lizenzbeschaffung
GroupDocs offers flexible licensing:
- Kostenlose Testversion: Perfekt zum Testen – keine Kreditkarte erforderlich. Hier starten
- Temporäre Lizenz: Benötigen Sie mehr Zeit für die Evaluierung? Fordern Sie eine temporäre Lizenz an für den vollen Funktionsumfang während der Entwicklung
- Produktionslizenz: Wenn Sie bereit für den Einsatz sind, kaufen Sie eine Lizenz basierend auf Ihren Bedürfnissen
Zusätzliche nützliche Links
- GroupDocs.Signature für Java Dokumentation
- API‑Referenzhandbuch
- Community‑Support‑Forum
- Neueste Bibliotheks‑Releases
- Kostenloser Test‑Download
- Temporäre Lizenz anfordern
- Vollständige Lizenz kaufen
Pro‑Tipp: Beginnen Sie mit der kostenlosen Testversion, um Ihre Lösung zu prototypisieren, und holen Sie sich anschließend eine temporäre Lizenz, falls Sie mehr Zeit benötigen, bevor Sie sich festlegen.
Einrichtung von GroupDocs.Signature für Java
Die Klasse Signature ist der Einstiegspunkt für alle Signatur‑Operationen in GroupDocs.Signature. Sie repräsentiert eine einzelne Datei, die in den Speicher geladen wird, und bietet Methoden zum Hinzufügen, Suchen oder Löschen visueller Signaturen.
Erstellen Sie eine Signature‑Instanz, die auf Ihre TAR‑Datei zeigt. Dadurch wird die Datei für die Verarbeitung in den Speicher geladen:
import com.groupdocs.signature.Signature;
public class InitializeSignature {
public static void main(String[] args) {
Signature signature = new Signature("your-document-path");
// Additional setup and usage here...
}
}
Wichtig: Schließen Sie das Signature‑Objekt immer, wenn Sie fertig sind (oder verwenden Sie try‑with‑resources), um Speicherlecks bei großen Dateien zu vermeiden.
Auswahl zwischen Barcode‑ und QR‑Code‑Signaturen
Sie sind sich nicht sicher, welchen Signaturtyp Sie verwenden sollen? Hier ist ein kurzer Entscheidungsleitfaden:
| Faktor | Barcode (Code128) | QR‑Code |
|---|---|---|
| Datenkapazität | ~80 Zeichen | Bis zu 4.296 alphanumerische Zeichen |
| Lesbarkeit | Benötigt Barcode‑Scanner | Funktioniert mit Smartphone‑Kameras |
| Platzbedarf | Horizontal kompakter | Benötigt quadratischen Bereich |
| Am besten geeignet für | Einfache IDs, Zeitstempel, kurze Codes | URLs, JSON‑Daten, detaillierte Metadaten |
| Fehlerkorrektur | Minimal | Integriert (kann Schäden ausgleichen) |
Faustregel:
- Verwenden Sie Barcodes für schnelle, scannbare IDs oder Zeitstempel.
- Verwenden Sie QR‑Codes, wenn Sie reichhaltigere Daten einbetten oder Smartphone‑Kompatibilität wünschen.
- Kombinieren Sie beide für maximale Redundanz und Prüfbarkeit.
Implementierungs‑Leitfaden
TAR‑Archiv mit Barcode signieren
Warum mit Barcodes signieren?
Barcodes sind ideal für TAR‑Archive, da sie kompakt und scannbar sind. Sie können Zeitstempel, Versionsnummern, Benutzer‑IDs oder Prüfsummenwerte für eine schnelle Verifizierung einbetten.
Schritte
1. Signatur initialisieren
Zuerst erstellen Sie eine Signature‑Instanz für die TAR‑Datei:
import com.groupdocs.signature.Signature;
final Signature signature = new Signature("path/to/your/archive.tar");
Pro‑Tipp: Für große TAR‑Dateien (über 100 MB) führen Sie die Signatur‑Operation in einem Hintergrund‑Thread aus, um die UI reaktionsfähig zu halten.
2. Barcode‑Optionen konfigurieren
Die Klasse BarcodeSignature definiert den Barcode‑Inhalt, -Typ und die Platzierung. Das Objekt BarcodeOptions enthält diese Einstellungen:
import com.groupdocs.signature.options.sign.BarcodeSignOptions;
import com.groupdocs.signature.domain.barcodes.BarcodeTypes;
BarcodeSignOptions bcOptions = new BarcodeSignOptions("12345678", BarcodeTypes.Code128);
bcOptions.setLeft(100); // X position in pixels
bcOptions.setTop(100); // Y position in pixels
BarcodeOptions ermöglicht es Ihnen, das visuelle Erscheinungsbild und die Position des Barcodes festzulegen.BarcodeTypes ist ein Enum, das unterstützte Barcode‑Symbologien wie Code128, Code39 usw. auflistet.
Was passiert hier?
"12345678"ist die im Barcode codierten Daten – ersetzen Sie sie durch Ihre tatsächliche ID, Zeitstempel oder Verifizierungscode.BarcodeTypes.Code128bietet ein ausgewogenes Verhältnis zwischen Datenkapazität und Scan‑Zuverlässigkeit.- Positionswerte (100, 100) platzieren den Barcode 100 px vom oberen linken Rand.
Anpassungsoptionen, die Sie möglicherweise benötigen:
bcOptions.setWidth(200); // Barcode width in pixels
bcOptions.setHeight(50); // Barcode height in pixels
bcOptions.setForeColor(Color.BLACK); // Barcode color
bcOptions.setBackgroundColor(Color.WHITE); // Background color
3. Dokument signieren und speichern
Führen Sie die Signatur‑Operation aus und speichern Sie das signierte Archiv:
import com.groupdocs.signature.domain.SignResult;
String outputFilePath = "output/path/SignWithBarcode/archive_signed.tar";
SignResult signResult = signature.sign(outputFilePath, bcOptions);
Das zurückgegebene SignResult‑Objekt gibt an, ob die Operation erfolgreich war und wo die Signatur platziert wurde.
Häufiges Problem: Stellen Sie sicher, dass das Ausgabeverzeichnis existiert, bevor Sie sign() aufrufen. Die Bibliothek erstellt übergeordnete Verzeichnisse nicht automatisch.
TAR‑Archiv mit QR‑Code signieren
Wann QR‑Codes verwenden
QR‑Codes glänzen, wenn Sie strukturierte Daten (JSON, XML) speichern, Verifizierungs‑URLs einbetten oder das Scannen mit Smartphones ermöglichen müssen.
Schritte
1. Signatur initialisieren
Same as before—create your Signature instance:
final Signature signature = new Signature("path/to/your/archive.tar");
2. QR‑Code‑Optionen konfigurieren
Richten Sie Ihren QR‑Code mit den zu embedden Daten ein:
import com.groupdocs.signature.options.sign.QrCodeSignOptions;
import com.groupdocs.signature.domain.qrcodes.QrCodeTypes;
QrCodeSignOptions qrOptions = new QrCodeSignOptions("12345678", QrCodeTypes.QR);
qrOptions.setLeft(400); // X position
qrOptions.setTop(400); // Y position
QrCodeTypes ist ein Enum, das den zu erzeugenden QR‑Code‑Typ angibt (Standard‑QR, DataMatrix, Aztec usw.).
Real‑world example – embed a JSON payload with verification data:
String verificationData = "{\"version\":\"1.0\",\"timestamp\":\"2025-01-02T10:30:00Z\",\"user\":\"john.doe\"}";
QrCodeSignOptions qrOptions = new QrCodeSignOptions(verificationData, QrCodeTypes.QR);
QR‑Code‑Typ‑Optionen:
QrCodeTypes.QR– Standard‑QR‑Code (am häufigsten)QrCodeTypes.DataMatrix– kompakter für kleine DatenQrCodeTypes.Aztec– gut für gekrümmte Oberflächen
3. Dokument signieren und speichern
Complete the signing process just like with barcodes:
String outputFilePath = "output/path/SignWithQRCode/archive_signed.tar";
SignResult signResult = signature.sign(outputFilePath, qrOptions);
Leistungshinweis: Die QR‑Code‑Erzeugung ist aufgrund der Fehlerkorrekturberechnungen etwas langsamer als bei Barcodes, aber der Unterschied ist für die meisten Anwendungsfälle vernachlässigbar (typischerweise ein paar Millisekunden).
TAR‑Archiv mit mehreren Signaturen signieren
Warum mehrere Signaturen verwenden?
- Redundanz – wenn eine Signatur beschädigt ist, kann die andere noch verifizieren.
- Verschiedene Zielgruppen – Barcodes für Scanner, QR‑Codes für Smartphones.
- Gestapelte Daten – schnelle ID im Barcode, detaillierte Metadaten im QR‑Code.
- Compliance – einige Vorschriften verlangen mehrere Verifizierungsmethoden.
Schritte
1. Signatur initialisieren
final Signature signature = new Signature("path/to/your/archive.tar");
2. Mehrere Optionen konfigurieren
Erstellen Sie beide Signaturtypen und kombinieren Sie sie in einer Liste:
import java.util.ArrayList;
import java.util.List;
// Set up barcode (reusing from earlier example)
BarcodeSignOptions bcOptions = new BarcodeSignOptions("12345678", BarcodeTypes.Code128);
bcOptions.setLeft(100);
bcOptions.setTop(100);
// Set up QR code (different position to avoid overlap)
QrCodeSignOptions qrOptions = new QrCodeSignOptions("12345678", QrCodeTypes.QR);
qrOptions.setLeft(400);
qrOptions.setTop(400);
// Combine them
List<com.groupdocs.signature.options.sign.SignOptions> listOptions = new ArrayList<>();
listOptions.add(bcOptions);
listOptions.add(qrOptions);
Pro‑Tipp: Positionieren Sie Signaturen strategisch – Ecken oder nicht störende Bereiche funktionieren am besten für TAR‑Archive.
3. Dokument signieren und speichern
Pass the list of options to the sign() method:
String outputFilePath = "output/path/SignWithMultipleSignatures/archive_signed.tar";
SignResult signResult = signature.sign(outputFilePath, listOptions);
GroupDocs verarbeitet jede Signatur nacheinander und bettet sie in die Dokument‑Metadaten ein. Die Reihenfolge in Ihrer Liste hat keinen Einfluss auf die Verifizierung.
Praxisbeispiele
1. Software‑Verteilungspipelines
Szenario: Verteilung von Softwarepaketen als TAR‑Archive und Nachweis, dass sie nicht verändert wurden.
Lösung: Signieren Sie jede Release mit einem QR‑Code, der ein JSON‑Payload enthält:
String releaseData = String.format(
"{\"version\":\"%s\",\"buildDate\":\"%s\",\"sha256\":\"%s\"}",
version, buildDate, checksum
);
Warum es funktioniert: Benutzer können den QR‑Code scannen, um die Paketintegrität vor der Installation zu prüfen – keine GPG‑Schlüsselverwaltung nötig.
2. Automatisierte Backup‑Systeme
Szenario: Tägliche Backup‑TAR‑Archive benötigen Prüfpfade.
Lösung: Fügen Sie einen Barcode mit dem Backup‑Zeitstempel und der Server‑ID hinzu:
String backupId = String.format("SRV01-%s", LocalDateTime.now().format(formatter));
BarcodeSignOptions bcOptions = new BarcodeSignOptions(backupId, BarcodeTypes.Code128);
Warum es funktioniert: Schnelle visuelle Überprüfung der Backup‑Authentizität, ohne das Archiv zu öffnen.
3. Dokumenten‑Management‑Systeme
Szenario: Rechtsdokumente, die als Archive gespeichert werden, benötigen manipulationssichere Verifizierung.
Lösung: Verwenden Sie sowohl Barcode (schnelles Scannen) als auch QR‑Code (detaillierte Metadaten) im selben Archiv.
4. Lieferketten‑Verfolgung
Szenario: Verfolgung von Dateipaketen durch mehrere Organisationen.
Lösung: Embed QR codes with tracking URLs that link to a verification API:
String trackingUrl = "https://verify.yourcompany.com/track/" + uniqueId;
QrCodeSignOptions qrOptions = new QrCodeSignOptions(trackingUrl, QrCodeTypes.QR);
Häufige Probleme und Lösungen
Problem 1: „Signature Not Found“ nach dem Signieren
Symptom: sign() ist erfolgreich, aber die Signatur ist nicht sichtbar.
Ursachen: Falsche Platzierung, Überschreiben der Originaldatei, Einschränkungen des TAR‑Viewers.
Lösung:
// Always verify the signing succeeded
SignResult result = signature.sign(outputFilePath, bcOptions);
if (result.getSucceeded().size() > 0) {
System.out.println("Signature added successfully at: " + outputFilePath);
} else {
System.err.println("Signing failed: " + result.getFailed());
}
// Use absolute paths to avoid confusion
String absolutePath = new File(outputFilePath).getAbsolutePath();
Problem 2: OutOfMemoryError bei großen TAR‑Dateien
Symptom: JVM stürzt bei Archiven > 500 MB ab.
Lösung: Increase heap size (-Xmx) and dispose of Signature objects promptly:
java -Xmx2G -jar your-application.jar
Or implement chunked processing:
// For very large files, consider signing metadata separately
// rather than embedding in the TAR itself
Problem 3: Signaturdaten werden abgeschnitten
Symptom: Lange Zeichenketten werden abgeschnitten.
Ursache: Überschreitung der Kapazität von Code128 (≈ 80 Zeichen).
Lösung: Switch to QR codes for longer payloads:
// Bad: Too much data for Code128
BarcodeSignOptions bcOptions = new BarcodeSignOptions(veryLongString, BarcodeTypes.Code128);
// Good: Use QR code instead
QrCodeSignOptions qrOptions = new QrCodeSignOptions(veryLongString, QrCodeTypes.QR);
Problem 4: Lizenzvalidierungsfehler
Symptom: LicenseException oder „Trial version“-Warnungen in der Produktion.
Lösung: Load the license before creating any Signature instances:
import com.groupdocs.signature.License;
License license = new License();
license.setLicense("path/to/GroupDocs.Signature.lic");
// Now create signatures
Signature signature = new Signature("document.tar");
Pro‑Tipp: Laden Sie die Lizenz einmal beim Anwendungsstart, nicht vor jeder Signatur‑Operation.
Problem 5: Positionswerte funktionieren nicht wie erwartet
Symptom: Signaturen erscheinen an unerwarteten Positionen.
Ursache: Verwechslung zwischen Pixeln und Punkten.
Lösung: GroupDocs uses pixels by default. For precise placement:
bcOptions.setLeft(100); // 100 pixels from left edge
bcOptions.setTop(100); // 100 pixels from top edge
// If you need percentage-based positioning:
bcOptions.setHorizontalAlignment(HorizontalAlignment.Center);
bcOptions.setVerticalAlignment(VerticalAlignment.Center);
Integrations‑Muster
Muster 1: REST‑API‑Dienst
Expose signing as a microservice:
@RestController
@RequestMapping("/api/signature")
public class SignatureController {
@PostMapping("/sign")
public ResponseEntity<SignatureResponse> signFile(
@RequestParam("file") MultipartFile file,
@RequestParam("signatureType") String type) {
try {
// Save uploaded file temporarily
File tempFile = File.createTempFile("upload-", ".tar");
file.transferTo(tempFile);
// Sign based on type
Signature signature = new Signature(tempFile.getAbsolutePath());
SignOptions options = type.equals("barcode")
? createBarcodeOptions()
: createQROptions();
String outputPath = generateOutputPath();
SignResult result = signature.sign(outputPath, options);
// Return signed file
return ResponseEntity.ok(new SignatureResponse(outputPath, result));
} catch (Exception e) {
return ResponseEntity.status(500).body(null);
}
}
}
Muster 2: Batch‑Verarbeitungspipeline
Sign multiple archives in a pipeline:
public class BatchSigner {
public void signArchiveBatch(List<File> archives) {
ExecutorService executor = Executors.newFixedThreadPool(4);
archives.forEach(archive -> {
executor.submit(() -> {
try {
signSingleArchive(archive);
} catch (Exception e) {
logger.error("Failed to sign: " + archive.getName(), e);
}
});
});
executor.shutdown();
executor.awaitTermination(1, TimeUnit.HOURS);
}
private void signSingleArchive(File archive) throws Exception {
Signature signature = new Signature(archive.getAbsolutePath());
// ... signing logic
}
}
Muster 3: Ereignisgesteuerte Architektur
Trigger signing when archives are created:
@Component
public class ArchiveCreatedListener {
@EventListener
public void onArchiveCreated(ArchiveCreatedEvent event) {
CompletableFuture.runAsync(() -> {
signArchive(event.getFilePath());
});
}
private void signArchive(String filePath) {
// ... signing logic
}
}
Leistungsüberlegungen
Speicherverwaltung
Das Problem: Jede Signature‑Instanz lädt die gesamte Datei in den Speicher.
Best Practices:
// Bad: Creating multiple instances for same file
Signature sig1 = new Signature("file.tar");
Signature sig2 = new Signature("file.tar"); // Loads again!
// Good: Reuse the instance
try (Signature signature = new Signature("file.tar")) {
signature.sign(output1, options1);
signature.sign(output2, options2); // Same instance, different outputs
}
Dateigrößen‑Optimierung
- Kleine Dateien (< 10 MB) – synchron signieren.
- Mittlere Dateien (10‑100 MB) – Hintergrund‑Threads verwenden.
- Große Dateien (> 100 MB) – erwägen Sie, Metadaten separat zu signieren oder Streaming‑APIs zu nutzen.
Signaturkomplexität (ungefähre Zeiten auf einem Standard‑Server)
| Signaturtyp | Zeit pro Dokument |
|---|---|
| Einzelner Barcode | 50‑100 ms |
| Einzelner QR‑Code | 100‑200 ms |
| Mehrere Signaturen | 150‑300 ms |
Optimierungstipp: Für tausende Dateien stapeln Sie sie und verwenden Sie einen Thread‑Pool (siehe das Batch‑Verarbeitung‑Muster oben).
Bibliotheks‑Updates
GroupDocs veröffentlicht regelmäßig Leistungsverbesserungen. Prüfen Sie stets das Changelog vor größeren Deployments.
Update‑Strategie:
- Testen Sie neue Versionen in der Staging‑Umgebung.
- Überprüfen Sie breaking changes.
- Führen Sie Benchmarks mit realen Dateien durch.
- Rollout schrittweise.
Best Practices für die Produktion
1. Lizenzstatus validieren
License license = new License();
if (!license.isLicensed()) {
logger.warn("Running in trial mode - features may be limited");
}
2. Robuste Fehlerbehandlung implementieren
try {
signature.sign(outputPath, options);
} catch (Exception e) {
logger.error("Signature failed", e);
// Don't just swallow exceptions - log or re-throw
throw new SignatureException("Failed to sign document", e);
}
3. Beschreibende Signaturdaten verwenden
// Bad: Meaningless ID
new BarcodeSignOptions("12345678", BarcodeTypes.Code128);
// Good: Self-documenting data
String signatureData = String.format("DOC-%s-%s",
docType,
LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME)
);
new BarcodeSignOptions(signatureData, BarcodeTypes.Code128);
4. Signaturformat versionieren Fügen Sie eine Versionsnummer in das eingebettete JSON ein, um Ihre Verifizierungslogik zukunftssicher zu machen:
String qrData = String.format(
"{\"v\":\"1.0\",\"type\":\"archive\",\"timestamp\":\"%s\"}",
timestamp
);
5. Mit realen Dateien testen – validieren Sie stets mit produktionsgroßen Archiven, um Speicher‑ und Leistungsprobleme frühzeitig zu erkennen.
Fazit
Sie haben nun eine solide Grundlage, um digital signature java mit Barcodes und QR‑Codes zu implementieren. Das haben Sie gelernt:
- Wie man TAR‑Archive (und andere Dokumente) mit Barcode‑ und QR‑Code‑Signaturen signiert
- Wann man je nach Bedarf den jeweiligen Signaturtyp wählt
- Wie man gängige Probleme behebt, bevor sie die Produktion erreichen
- Praxisnahe Integrations‑Muster für REST‑APIs, Batch‑Verarbeitung und ereignisgesteuerte Systeme
- Leistungsoptimierungstechniken für die Verarbeitung von Dateien jeder Größe
Nächste Schritte:
- Untersuchen Sie die Signaturverifizierung mit der Methode
search(). - Probieren Sie andere Dokumentformate aus – GroupDocs.Signature unterstützt PDF, DOCX, XLSX, PNG und mehr.
- Passen Sie das Aussehen der Signatur an (Farben, Größen, Rahmen).
- Erstellen Sie eine Verifizierungs‑API, um Signaturen programmgesteuert zu validieren.
Die Leistungsfähigkeit von GroupDocs.Signature geht weit über diesen Leitfaden hinaus. Werfen Sie einen Blick auf die vollständige Dokumentation, um erweiterte Funktionen wie Text‑Signaturen, Bild‑Signaturen und Metadaten‑Extraktion zu entdecken.
Haben Sie Fragen oder möchten Sie Ihre Implementierung teilen? Treten Sie den GroupDocs‑Community‑Foren bei, um Hilfe von anderen Entwicklern zu erhalten.
Häufig gestellte Fragen
F: Kann ich Dokumente außer TAR‑Archiven signieren?
A: Auf jeden Fall! GroupDocs.Signature unterstützt über 50 Dateiformate, einschließlich PDF, DOCX, XLSX, PNG und mehr. Ändern Sie einfach die Dateierweiterung im Signature‑Konstruktor, um mit jedem unterstützten Typ zu arbeiten.
F: Wie verifiziere ich Signaturen nach dem Signieren?
A: Use the search() method to locate and validate signatures:
Signature signature = new Signature("signed-document.tar");
BarcodeSearchOptions searchOptions = new BarcodeSearchOptions();
List<BarcodeSignature> signatures = signature.search(BarcodeSignature.class, searchOptions);
F: Sind die Signaturen gegen Manipulationen gesichert?
A: Barcode and QR code signatures provide visual verification but are not cryptographically strong like digital certificates. For maximum security, combine them with traditional PKI or store signature hashes in an external database.
F: Wie viel Daten kann ich maximal in einer Signatur speichern?
- Code128‑Barcode: ~80 alphanumerische Zeichen
- QR‑Code (Version 40): bis zu 4.296 alphanumerische Zeichen oder 7.089 numerische Zeichen
F: Kann ich das Aussehen der Signatur anpassen?
A: Yes! Control colours, sizes, borders, and more:
bcOptions.setForeColor(Color.BLUE);
bcOptions.setBackgroundColor(Color.YELLOW);
bcOptions.setBorder(new Border());
bcOptions.getBorder().setColor(Color.RED);
bcOptions.getBorder().setWeight(2);
F: Was passiert, wenn ich eine Datei zweimal signiere?
A: Each sign() call adds a new signature. To replace an existing one, delete it first with the delete() method.
F: Wie gehe ich mit großen Dateien um, ohne dass der Speicher ausgeht?
A: Increase JVM heap (-Xmx), dispose of Signature objects promptly, and consider signing metadata separately for multi‑gigabyte archives.
F: Benötige ich eine Internetverbindung, um Dokumente zu signieren?
A: No. GroupDocs.Signature works entirely offline once the library is installed.
Last Updated: 2026-05-21
Tested With: GroupDocs.Signature 23.12 for Java
Author: GroupDocs