Java ile GroupDocs.Metadata Kullanarak OpenType Yazı Tipi İmzasını Nasıl Çıkarılır
Modern uygulamalarda, OpenType yazı tipi imzasını çıkarmak verileri, yazı tipinin özgünlüğünü doğrulamak ve dijital varlıklarınızı korumak için esastır. Bu öğretici, adım adım, GroupDocs.Metadata for Java kullanarak bir OpenType yazı tipinden hem imza bayraklarını hem de tam kriptografik detayları nasıl alacağınızı gösterir. Güvenlik odaklı bir içerik hattı oluşturuyor olun ya da sadece bir yazı tipi kütüphanesini denetlemeniz gereksin, aşağıdaki teknikler iş akışınızı güvenilir ve hızlı hâle getirecektir.
Hızlı Yanıtlar
- Hangi kütüphane gerekiyor? GroupDocs.Metadata for Java (v24.12)
- Hangi Java sürümü gerekiyor? JDK 8 veya daha yeni
- Lisans gerekli mi? Değerlendirme için ücretsiz deneme çalışır; üretim için tam lisans gereklidir
- Birden fazla yazı tipini işleyebilir miyim? Evet – toplu veya eşzamanlı işleme desteklenir
- Kod iş parçacığı güvenli mi? Her iş parçacığı için yeni bir
Metadataörneği oluşturun; nesne kendisi iş parçacığı güvenli değildir
OpenType Yazı Tipi İmzası Nedir?
OpenType yazı tipi imzası, imzalandıktan sonra dosyanın değiştirilmediğini kanıtlayan, yazı tipinin içinde gömülü bir kriptografik bloktur. İmza zamanı, sertifika zinciri, hash algoritması tanımlayıcıları ve isteğe bağlı iptal bilgilerini içerir. Ayrıca bir imza algoritması tanımlayıcısı, imzalayanın sertifika zinciri ve isteğe bağlı iptal listeleri de bulunur; bu, yazı tipinin bütünlüğünün ve kaynağının kapsamlı doğrulamasını sağlar.
Neden Java için GroupDocs.Metadata Kullanmalı?
GroupDocs.Metadata 50+ giriş ve çıkış formatını (DOCX, PDF, PPTX, HTML ve birçok görüntü türü dahil) destekler ve OpenType imzalarını tüm dosyayı belleğe yüklemeden okuyabilir, bu da çok sayfalı yazı tipi koleksiyonlarını verimli bir şekilde işlemenizi sağlar.
Önkoşullar
- Java Development Kit (JDK): Versiyon 8 veya daha yeni.
- IDE: Herhangi bir Java uyumlu IDE (IntelliJ IDEA, Eclipse, VS Code, vb.).
- Maven: Bağımlılık yönetimi için.
Gerekli Kütüphaneler ve Bağımlılıklar
pom.xml dosyanıza GroupDocs.Metadata Maven koordinatlarını ekleyin. Bu, örnekler için gereken tam paketi çeker.
<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>
Doğrudan İndirme
Alternatif olarak, en son sürümü GroupDocs.Metadata for Java releases adresinden indirin.
Lisans Edinme
- Ücretsiz Deneme: Özellikleri keşfetmek için ücretsiz deneme ile başlayın.
- Geçici Lisans: GroupDocs lisans sayfası üzerinden geçici bir lisans edinin.
- Satın Alma: Üretim kullanımı için tam bir lisans satın alın.
GroupDocs.Metadata Kullanarak OpenType Yazı Tipi İmzasını Nasıl Çıkarılır
Metadata sınıfı, tam dosyayı yüklemeden belge meta verilerine erişmek için GroupDocs.Metadata’ın temel API’sidir.
Bir yazı tipinin imzasını okumak için .otf dosyasının yoluyla bir Metadata nesnesi oluşturun ve ardından DigitalSignaturePackage‘ına erişin. Bu yaklaşım yalnızca gerekli meta veri yapısını yükler, tam yazı tipi ayrıştırmasını önler ve bellek kullanımını düşük tutar. Metadata örneği, doğru şekilde temizlenmesini sağlamak için bir try‑with‑resources bloğu içinde kullanılmalıdır.
new Metadata("font.otf") ile bir try‑with‑resources bloğu içinde yazı tipi dosyanızı yükleyin. Metadata sınıfı, OpenType yazı tipleri dahil olmak üzere desteklenen herhangi bir belge türünü okumak için GroupDocs.Metadata’ın giriş noktasıdır. Nesne otomatik olarak kapanır, kaynak sızıntılarını önler.
Dijital İmza Bayraklarını Nasıl Çıkarılır
DigitalSignaturePackage nesnesi, bayraklar ve bireysel imzalar dahil olmak üzere yazı tipine ilişkin tüm imza bilgilerini toplar.
Doğrudan cevap: Yazı tipini açtıktan sonra metadata.getDigitalSignaturePackage().getFlags() çağırın; dönen bayrak seti imzanın geçerli, iptal edilmiş veya özel koşullara sahip olup olmadığını söyler. Bu tek çağrı, daha derin detaylara girmeden önce hızlı bir sağlık kontrolü sağlar. Bayraklar, imzalama durumu, zaman damgası varlığı ve imzalama sırasında uygulanan politika kısıtlamalarını belirlemek için incelenebilen bir enum olarak temsil edilir.
- Yazı tipinizin dosyasına işaret eden
Metadataörneğini başlatın. DigitalSignaturePackage‘ı alın.- Bayrak değerlerini yazdırın veya kaydedin.
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());
}
}
Açıklama
documentPath– OpenType yazı tipine mutlak veya göreli yol.- Try‑with‑resources bloğu,
Metadatanesnesinin otomatik olarak kapanmasını garanti eder, bellek sızıntılarını önler.
Ayrıntılı Dijital İmza Bilgilerini Nasıl Çıkarılır
CmsSignature, yazı tipine gömülü bireysel bir CMS/PKCS#7 imzasını temsil eder ve kriptografik özelliklerine erişim sağlar.
Doğrudan cevap: metadata.getDigitalSignaturePackage().getSignatures() üzerinde yineleyin; her CmsSignature nesnesi imza zamanını, özet algoritmalarını, kapsüllenmiş içeriği ve sertifika detaylarını ortaya çıkarır, böylece tam bir denetim raporu oluşturabilirsiniz. Her imza için imzalayanın sertifika zincirini alabilir, hash algoritmasını doğrulayabilir ve imzanın ne zaman uygulandığını onaylamak için zaman damgası tokenlarını çıkarabilirsiniz.
- Yukarıdaki aynı
Metadatabaşlatmasını yeniden kullanın. - Paketteki her
CmsSignatureüzerinden döngü oluşturun. getSignTime(),getDigestAlgorithms(),getCertificates()vegetSignerInfo()gibi özellikleri çıkarın.
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());
}
}
}
}
}
Ana Bölümlerin Açıklaması
- İmza Zamanı: İmzanın uygulandığı zaman damgası.
- Özet Algoritmaları ve OID’ler: Kullanılan hash algoritmaları (ör. SHA‑256).
- Kapsüllenmiş İçerik: İmzanın içinde paketlenmiş ek veri.
- Sertifikalar: Geçerlilik tarihleri ve ham veri boyutu, imzalayanın kimliğini doğrulamaya yardımcı olur.
- İmzalar: Her imzalayanın algoritma seçimlerini ve imza zaman damgalarını sağlar.
Sorun Giderme İpuçları
- Yazı tipinde dijital imza yoksa,
getDigitalSignaturePackage()nulldöner. Bayraklara veya imzalara erişmeden önce her zamannullkontrolü yapın. - Maven bağımlılığında tanımlanan aynı GroupDocs.Metadata sürümünü kullandığınızdan emin olun, uyumluluk sorunlarını önlemek için.
Pratik Uygulamalar
OpenType yazı tipi imzalarını çıkarmak, birçok gerçek dünya senaryosunda değerlidir:
- Belge Doğrulama: İçerik yönetim sisteminde imzalı yazı tipi dosyalarını otomatik olarak kontrol edin.
- Dijital Varlık Yönetimi: Markalaşma projelerinde kullanmadan önce yazı tipinin özgünlüğünü doğrulayın.
- Güvenlik Denetimleri: İç güvenlik politikalarına uyumu sağlamak için imza detaylarını inceleyin.
Performans Düşünceleri
- Kaynak Yönetimi:
Metadatanesnelerini hızlıca kapatmak için try‑with‑resources kullanın. - Toplu İşleme: I/O yükünü azaltmak için yazı tiplerini gruplar halinde işleyin; GroupDocs.Metadata, her bir yazı tipini belleğe tamamen yüklemeden binlerce dosyayı işleyebilir.
- Eşzamanlılık: Büyük ölçekli iş yükleri için paralel iş parçacıklarında ayrı
Metadataörnekleri çalıştırın; kütüphane örnek başına iş parçacığı güvenli değildir, bu yüzden her örneği iş parçacığı başına izole edin.
Sık Sorulan Sorular
S: Dijital imzası olmayan bir yazı tipinden imzaları çıkarabilir miyim?
C: DigitalSignaturePackage null olacaktır; bayraklara veya detaylara erişmeden önce her zaman bu durumu kontrol edin.
S: Hangi GroupDocs.Metadata sürümü gerekiyor?
C: Örnekler 24.12 sürümünü hedeflemektedir, ancak daha yeni sürümler OpenType yazı tipleri için geriye dönük uyumluluğu korur.
S: İmzaları okumak için özel bir lisansa ihtiyacım var mı?
C: Değerlendirme için deneme lisansı çalışır; üretim kullanımı için tam lisans gereklidir.
S: Bulut deposunda saklanan yazı tiplerini nasıl yönetirim?
C: Yazı tipini geçici bir yerel dosyaya indirin, ardından yolunu Metadata‘ye geçirin. Kütüphane, yerel yol üzerinden erişilebilen herhangi bir dosyayla çalışır.
S: İmzanın kriptografik geçerliliğini doğrulamak mümkün mü?
C: GroupDocs.Metadata ham imza verilerini sağlar; sertifika zincirini ve hash değerlerini ayrı bir kripto kütüphanesine vererek tam doğrulama yapabilirsiniz.
Sonuç
Bu kılavuzu izleyerek artık OpenType yazı tipi imzasını nasıl çıkaracağınızı ve detaylı dijital imza verilerini GroupDocs.Metadata for Java kullanarak biliyorsunuz. Bu adımları uygulamalarınıza entegre etmek belge güvenliğini güçlendirir, varlık doğrulamasını kolaylaştırır ve uyumluluk girişimlerini destekler.
Sonraki Adımlar
- Büyük yazı tipi kütüphanelerini verimli bir şekilde işlemek için toplu işleme deneyin.
- Çıkarılan verileri güvenlik denetim araçlarınızla birleştirerek otomatik uyumluluk raporlaması yapın.
- Uygun olduğunda imzaları düzenleme veya kaldırma gibi GroupDocs.Metadata’ın diğer meta veri yeteneklerini keşfedin.
Son Güncelleme: 2026-06-22
Test Edilen: GroupDocs.Metadata 24.12
Yazar: GroupDocs