Wie man OpenType-Schriftzeichensignatur in Java mit GroupDocs.Metadata extrahiert
In modernen Anwendungen ist das Extrahieren von OpenType-Schriftzeichensignatur-Daten entscheidend, um die Authentizität von Schriften zu bestätigen und Ihre digitalen Assets zu schützen. Dieses Tutorial zeigt Ihnen Schritt für Schritt, wie Sie sowohl die Signatur‑Flags als auch die vollständigen kryptografischen Details aus einer OpenType‑Schrift mit GroupDocs.Metadata for Java abrufen. Egal, ob Sie eine sicherheitsorientierte Content‑Pipeline aufbauen oder einfach eine Schriftbibliothek prüfen müssen, die nachfolgenden Techniken machen Ihren Workflow zuverlässig und schnell.
Schnelle Antworten
- Welche Bibliothek benötige ich? GroupDocs.Metadata for Java (v24.12)
- Welche Java-Version ist erforderlich? JDK 8 oder höher
- Benötige ich eine Lizenz? Eine kostenlose Testversion funktioniert für die Evaluierung; für die Produktion ist eine Volllizenz erforderlich
- Kann ich mehrere Schriften verarbeiten? Ja – Stapel- oder Parallelverarbeitung wird unterstützt
- Ist der Code thread‑sicher? Erstellen Sie pro Thread eine neue
Metadata‑Instanz; das Objekt selbst ist nicht thread‑sicher
Was ist eine OpenType-Schriftzeichensignatur?
Die OpenType font signature ist ein kryptografischer Block, der in die Schrift eingebettet ist und beweist, dass die Datei seit der Signatur nicht verändert wurde. Sie enthält die Signaturzeit, die Zertifikatskette, Hash‑Algorithmus‑Kennungen und optionale Widerrufs‑Informationen. Außerdem beinhaltet sie einen Signaturalgorithmus‑Identifier, die Zertifikatskette des Unterzeichners und optionale Widerrufslisten, wodurch eine umfassende Überprüfung der Integrität und Herkunft der Schrift ermöglicht wird.
Warum GroupDocs.Metadata für Java verwenden?
GroupDocs.Metadata unterstützt 50+ input and output formats (einschließlich DOCX, PDF, PPTX, HTML und zahlreicher Bildtypen) und kann OpenType‑Signaturen lesen, ohne die gesamte Datei in den Speicher zu laden, sodass Sie umfangreiche Schriftensammlungen effizient verarbeiten können.
Voraussetzungen
- Java Development Kit (JDK): Version 8 oder neuer.
- IDE: Jede Java‑kompatible IDE (IntelliJ IDEA, Eclipse, VS Code usw.).
- Maven: Für das Abhängigkeitsmanagement.
Erforderliche Bibliotheken und Abhängigkeiten
Fügen Sie die GroupDocs.Metadata‑Maven‑Koordinaten zu Ihrer pom.xml hinzu. Dadurch wird das exakt für die Beispiele benötigte Paket geladen.
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/metadata/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>24.12</version>
</dependency>
</dependencies>
Direkter Download
Alternativ können Sie die neueste Version von GroupDocs.Metadata for Java releases herunterladen.
Lizenzbeschaffung
- Kostenlose Testversion: Beginnen Sie mit einer kostenlosen Testversion, um die Funktionen zu erkunden.
- Temporäre Lizenz: Erhalten Sie eine temporäre Lizenz über die GroupDocs licensing page.
- Kauf: Für den Produktionseinsatz kaufen Sie eine Volllizenz.
Wie man OpenType-Schriftzeichensignatur mit GroupDocs.Metadata extrahiert
Die Klasse Metadata ist die Kern‑API von GroupDocs.Metadata zum Zugriff auf Dokument‑Metadaten, ohne die gesamte Datei zu laden.
Um die Signatur einer Schrift zu lesen, instanziieren Sie ein Metadata‑Objekt mit dem Pfad zur .otf‑Datei und greifen dann auf dessen DigitalSignaturePackage zu. Dieser Ansatz lädt nur die notwendigen Metadaten‑Strukturen, vermeidet das vollständige Parsen der Schrift und hält den Speicherverbrauch niedrig. Die Metadata‑Instanz sollte innerhalb eines try‑with‑resources‑Blocks verwendet werden, um eine ordnungsgemäße Entsorgung sicherzustellen.
Laden Sie Ihre Schriftdatei mit new Metadata("font.otf") innerhalb eines try‑with‑resources‑Blocks. Die Klasse Metadata ist der Einstiegspunkt von GroupDocs.Metadata zum Lesen jedes unterstützten Dokumenttyps, einschließlich OpenType‑Schriften. Das Objekt schließt sich automatisch und verhindert Ressourcen‑Leaks.
Wie man digitale Signatur‑Flags extrahiert
Das Objekt DigitalSignaturePackage aggregiert alle signaturbezogenen Informationen für die Schrift, einschließlich Flags und einzelner Signaturen.
Direkte Antwort: Rufen Sie metadata.getDigitalSignaturePackage().getFlags() nach dem Öffnen der Schrift auf; das zurückgegebene Flag‑Set zeigt Ihnen, ob die Signatur gültig, widerrufen oder mit Sonderbedingungen versehen ist. Dieser einzelne Aufruf liefert Ihnen einen schnellen Gesundheits‑Check, bevor Sie tiefer einsteigen. Die Flags werden als Aufzählung dargestellt, die Sie prüfen können, um den Signaturstatus, das Vorhandensein eines Zeitstempels und etwaige Richtlinien‑Einschränkungen zu bestimmen.
- Initialisieren Sie die
Metadata‑Instanz, die auf Ihre Schriftdatei verweist. - Rufen Sie das
DigitalSignaturePackageab. - Geben Sie die Flag‑Werte aus oder protokollieren Sie sie.
String documentPath = "YOUR_DOCUMENT_DIRECTORY"; // Replace with your input file path
try (Metadata metadata = new Metadata(documentPath)) {
OpenTypeRootPackage root = metadata.getRootPackageGeneric();
if (root.getDigitalSignaturePackage() != null) {
System.out.println(root.getDigitalSignaturePackage().getFlags());
}
}
Erklärung
documentPath– absoluter oder relativer Pfad zur OpenType‑Schrift.- Der try‑with‑resources‑Block garantiert, dass das
Metadata‑Objekt automatisch geschlossen wird, wodurch Speicher‑Leaks vermieden werden.
Wie man detaillierte digitale Signaturinformationen extrahiert
CmsSignature repräsentiert eine einzelne CMS/PKCS#7‑Signatur, die in die Schrift eingebettet ist, und bietet Zugriff auf deren kryptografische Eigenschaften.
Direkte Antwort: Iterieren Sie über metadata.getDigitalSignaturePackage().getSignatures(); jedes CmsSignature‑Objekt stellt Signaturzeit, Digest‑Algorithmen, gekapselten Inhalt und Zertifikatsdetails bereit, sodass Sie einen vollständigen Prüfbericht erstellen können. Für jede Signatur können Sie die Zertifikatskette des Unterzeichners abrufen, den Hash‑Algorithmus verifizieren und etwaige Zeitstempel‑Tokens extrahieren, um den Zeitpunkt der Signatur zu bestätigen.
- Verwenden Sie dieselbe
Metadata‑Initialisierung wie oben erneut. - Durchlaufen Sie jede
CmsSignatureim Paket. - Extrahieren Sie Eigenschaften wie
getSignTime(),getDigestAlgorithms(),getCertificates()undgetSignerInfo().
String documentPath = "YOUR_DOCUMENT_DIRECTORY"; // Replace with your input file path
try (Metadata metadata = new Metadata(documentPath)) {
OpenTypeRootPackage root = metadata.getRootPackageGeneric();
if (root.getDigitalSignaturePackage() != null) {
for (CmsSignature signature : root.getDigitalSignaturePackage().getSignatures()) {
System.out.println(signature.getSignTime());
if (signature.getDigestAlgorithms() != null) {
for (com.groupdocs.metadata.core.Oid signatureDigestAlgorithm : signature.getDigestAlgorithms()) {
printOid(signatureDigestAlgorithm);
}
}
if (signature.getEncapsulatedContent() != null) {
System.out.println(signature.getEncapsulatedContent().getContentType());
System.out.println(signature.getEncapsulatedContent().getContentRawData().length);
}
if (signature.getCertificates() != null) {
for (com.groupdocs.metadata.core.CmsCertificate certificate : signature.getCertificates()) {
System.out.println(certificate.getNotAfter());
System.out.println(certificate.getNotBefore());
System.out.println(certificate.getRawData().length);
}
}
if (signature.getSigners() != null) {
for (com.groupdocs.metadata.core.CmsSigner signerInfoEntry : signature.getSigners()) {
System.out.println(signerInfoEntry.getSignatureValue());
printOid(signerInfoEntry.getDigestAlgorithm());
printOid(signerInfoEntry.getSignatureAlgorithm());
System.out.println(signerInfoEntry.getSigningTime());
}
}
}
}
}
Erklärung der wichtigsten Abschnitte
- Sign Time: Zeitstempel, wann die Signatur angewendet wurde.
- Digest Algorithms & OIDs: Verwendete Hash‑Algorithmen (z. B. SHA‑256).
- Encapsulated Content: Zusätzliche Daten, die innerhalb der Signatur eingebettet sind.
- Certificates: Gültigkeitsdaten und Rohdaten‑Größe helfen, die Identität des Unterzeichners zu verifizieren.
- Signers: Gibt die Algorithmus‑Auswahl und Zeitstempel jedes Unterzeichners an.
Fehlerbehebungstipps
- Wenn die Schrift keine digitale Signatur enthält, gibt
getDigitalSignaturePackage()nullzurück. Prüfen Sie immer aufnull, bevor Sie auf Flags oder Signaturen zugreifen. - Stellen Sie sicher, dass Sie dieselbe GroupDocs.Metadata‑Version verwenden, die in der Maven‑Abhängigkeit definiert ist, um Kompatibilitätsprobleme zu vermeiden.
Praktische Anwendungen
Das Extrahieren von OpenType‑Schriftzeichensignaturen ist in vielen realen Szenarien wertvoll:
- Dokumentenverifizierung: Automatisieren Sie Prüfungen für signierte Schriftdateien in einem Content‑Management‑System.
- Digital Asset Management: Validieren Sie die Authentizität von Schriften, bevor Sie sie in Branding‑Projekten einsetzen.
- Sicherheitsaudits: Überprüfen Sie Signaturdetails, um die Einhaltung interner Sicherheitsrichtlinien sicherzustellen.
Leistungsüberlegungen
- Ressourcenverwaltung: Verwenden Sie try‑with‑resources, um
Metadata‑Objekte zeitnah zu schließen. - Stapelverarbeitung: Verarbeiten Sie Schriften in Gruppen, um den I/O‑Overhead zu minimieren; GroupDocs.Metadata kann tausende Dateien handhaben, ohne jede Schrift vollständig in den Speicher zu laden.
- Parallelität: Führen Sie separate
Metadata‑Instanzen in parallelen Threads für groß angelegte Workloads aus; die Bibliothek ist pro Instanz nicht thread‑sicher, daher sollte jede Instanz pro Thread isoliert werden.
Häufig gestellte Fragen
Q: Kann ich Signaturen aus einer Schrift extrahieren, die keine digitale Signatur hat?
A: DigitalSignaturePackage wird null sein; prüfen Sie immer auf diese Bedingung, bevor Sie auf Flags oder Details zugreifen.
Q: Welche Version von GroupDocs.Metadata ist erforderlich?
A: Die Beispiele zielen auf Version 24.12 ab, aber neuere Releases bleiben rückwärtskompatibel für OpenType‑Schriften.
Q: Benötige ich eine spezielle Lizenz, um Signaturen zu lesen?
A: Eine Testlizenz funktioniert für die Evaluierung; für den Produktionseinsatz ist eine Volllizenz erforderlich.
Q: Wie gehe ich mit Schriften um, die in einem Cloud‑Bucket gespeichert sind?
A: Laden Sie die Schrift in eine temporäre lokale Datei herunter und übergeben Sie dann deren Pfad an Metadata. Die Bibliothek arbeitet mit jeder Datei, die über einen lokalen Pfad zugänglich ist.
Q: Ist es möglich, die kryptografische Gültigkeit der Signatur zu überprüfen?
A: GroupDocs.Metadata liefert rohe Signaturdaten; Sie können die Zertifikatskette und Hash‑Werte in eine separate Krypto‑Bibliothek einspeisen, um eine vollständige Verifizierung durchzuführen.
Fazit
Durch Befolgen dieses Leitfadens wissen Sie jetzt, wie man OpenType-Schriftzeichensignatur‑Informationen und detaillierte digitale Signaturdaten mit GroupDocs.Metadata for Java extrahiert. Die Integration dieser Schritte in Ihre Anwendungen stärkt die Dokumentensicherheit, rationalisiert die Asset‑Validierung und unterstützt Compliance‑Initiativen.
Nächste Schritte
- Experimentieren Sie mit Stapelverarbeitung, um große Schriftbibliotheken effizient zu handhaben.
- Kombinieren Sie die extrahierten Daten mit Ihren Sicherheits‑Audit‑Tools für automatisierte Compliance‑Berichte.
- Erkunden Sie weitere Metadaten‑Funktionen von GroupDocs.Metadata, wie das Bearbeiten oder Entfernen von Signaturen, wenn dies angebracht ist.
Last Updated: 2026-06-22
Tested With: GroupDocs.Metadata 24.12
Author: GroupDocs