Fonts

Fonts

Bu kılavuz, bir belgede başvurulan yazı tiplerini nasıl inceleyeceğinizi, gömülü yazı tipi verilerini nasıl çıkaracağınızı ve TrueType yazı tipi gömmesini Aspose.Words FOSS for .NET ile kaydetme sırasında nasıl kontrol edeceğinizi gösterir. Aspose.Words FOSS for .NET, yüklü bir belge tarafından başvurulan her yazı tipini FontInfoCollection aracılığıyla izler ve her yazı tipi için meta verileri, gömülü yazı tipi çıkarımını ve kaydetme sırasında gömme kontrollerini FontInfo üzerinden sunar. Document.FontSettings ve LoadOptions.FontSettings, bu (bu edisyonda bilerek minimal) FontSettings giriş noktasını sağlar.


Bir Belgede Kullanılan Yazı Tiplerini İnceleme

DocumentBase.FontInfos (Document tarafından devralınan) belge içinde herhangi bir yerde başvurulan her yazı tipini tanımlayan bir FontInfoCollection döndürür. Ona isimle (ör. fontInfos["Arial"]) indeksleyin, Contains(name) ile var olup olmadığını test edin, Count ile sayın veya GetEnumerator() aracılığıyla tüm koleksiyonu sıralayın.


Yazı Tipi Özellikleri ve Sınıflandırması

Her FontInfo bir yazı tipini tanımlar: Name ve AltName onu tanımlar, Family FontFamily enum (Auto, Roman, Swiss, Modern, Script, Decorative) aracılığıyla sınıflandırır, Pitch onun FontPitch (Default, Fixed, Variable) rapor eder ve IsTrueType, Charset ve Panose daha düşük seviyeli yazı tipi eşleştirme verilerini ortaya çıkarır.


Gömülü Yazı Tipi Çıkarma

Bir belgenin gömülü fontları varsa, FontInfo.GetEmbeddedFont(format, style) belirli bir EmbeddedFontFormat (EmbeddedOpenType veya OpenType) ve EmbeddedFontStyle (Regular, Bold, Italic, BoldItalic) için ham gömülü font baytlarını döndürür. GetEmbeddedFontAsOpenType(style), fontun orijinal olarak nasıl gömülmüş olduğuna bakılmaksızın, doğrudan OpenType formatına dönüştürülmüş halini döndürür.


Font Gömme Lisans Hakları

Bir fontu çıkarmadan veya yeniden gömmeden önce, FontInfo.EmbeddingLicensingRights adlı bir FontEmbeddingLicensingRights nesnesini kontrol edin. EmbeddingUsagePermissions, lisans seviyesini FontEmbeddingUsagePermissions enum’ı (Installable, RestrictedLicense, PrintAndPreview, Editable) aracılığıyla rapor eder; NoSubsetting ve BitmapEmbeddingOnly ise font sağlayıcısı tarafından belirlenen ek kısıtlamaları işaretler.


Kaydederken Font Gömmeyi Kontrol Etme

FontInfoCollection aynı zamanda belge düzeyinde gömme anahtarları da taşır: belge kaydedildiğinde kullanılan her TrueType fontunu gömmek için EmbedTrueTypeFonts‘i true‘ye ayarlayın, genellikle herhangi bir sistemde mevcut olduğu varsayılan fontları dahil etmek için EmbedSystemFonts‘ü ve tam font yerine yalnızca gerçekten kullanılan glifleri gömmek için SaveSubsetFonts‘ü ayarlayın.


FontSettings Bu Sürümdeki Kapsamı

Document.FontSettings ve LoadOptions.FontSettings her ikisi de bir FontSettings nesnesi döndürür ve FontSettings.DefaultInstance ortak bir varsayılan örnek sunar. Bu FOSS sürümünde, FontSettings‘API arayüzü yalnızca bu varsayılan örnek özelliği ile sınırlıdır — klasör tabanlı ve sistem font kaynağı çözümlemesi, ki Aspose.Words’de sayfa düzeni ve render için fontları değiştirmek veya çözümlemek amacıyla kullanılır, bu sürümde bulunmaz, çünkü sayfa düzeni ve render bu sürümün kapsamı dışındadır. Buradaki font işleme, render için font ikamesi değil, meta veri incelemesi ve gömme anlamına gelir.


İpuçları ve En İyi Uygulamalar

  • Yerleşik bir yazı tipini çıkarmadan veya yeniden dağıtmadan önce her zaman FontInfo.EmbeddingLicensingRights.EmbeddingUsagePermissions kontrol edin — bazı yazı tipleri yalnızca RestrictedLicense veya PrintAndPreview lisanslıdır.
  • Kaynak belgenin fontu nasıl gömülmüş olursa olsun tutarlı bir çıktı formatına ihtiyacınız olduğunda GetEmbeddedFontAsOpenType() kullanın (EmbeddedOpenType vs OpenType).
  • Yalnızca birkaç glif kullanan yazı tiplerini gömmek istediğinizde çıktı dosyası boyutunu azaltmak için FontInfoCollection.SaveSubsetFonts değerini true olarak ayarlayın.
  • FontInfoCollection.Contains(name), yalnızca bir yazı tipinin varlığını test etmeniz gerektiğinde, indeksleme ve başarısız bir aramayı (örn. fontInfos[name]) işlemekten daha ucuzdur.

Yaygın Sorunlar

SorunNedenÇözüm
GetEmbeddedFont() kullanılabilir veri döndürmüyorReferans verilen yazı tipi aslında belgede gömülü değilYazı tipi verisinin mevcut olduğunu varsaymadan önce belgenin gömme ayarlarını kontrol edin
FontInfoCollection içinde ada göre indeksleme hiçbir şey bulamıyorYazı tipi adı, büyük/küçük harf duyarlılığı dahil, tam olarak eşleşmiyorTam Name dizesini doğrulamak için FontInfoCollection‘ı GetEnumerator() ile numaralandırın
Beklenen yazı tipi değiştirme/çözümleme API’leri eksikKlasör ve sistem tabanlı yazı tipi kaynağı çözümlemesi bu FOSS sürümde uygulanmadıYalnızca meta veri ve gömme işlemleri için FontInfo/FontInfoCollection kullanın; render için yazı tipi değiştirme bu sürümün kapsamına dahil değildir

FAQ

Bir belgenin referans verdiği tüm yazı tiplerini nasıl listeleyebilirim?

Document.FontInfos‘ı (bir FontInfoCollection) GetEnumerator() aracılığıyla enumerate edin veya adına göre indeksleyerek belirli birini (örn. fontInfos["Arial"]) bulabilirsiniz.

Bir belgeden gömülü bir fontun ham baytlarını çıkarabilir miyim?

Evet, font gömülü ise — orijinal gömülü format için FontInfo.GetEmbeddedFont(format, style)‘ı çağırın, ya da sonucu OpenType’ye normalleştirmek için GetEmbeddedFontAsOpenType(style)‘i kullanın.

Bir belgeyi kaydederken fontların gömülü olduğundan nasıl emin olabilirim?

FontInfoCollection.EmbedTrueTypeFonts‘ı true‘e ayarlayın, kaydetmeden önce; herhangi bir sistemde mevcut olduğu varsayılan fontlara da ihtiyacınız varsa EmbedSystemFonts‘yi ekleyin ve yalnızca kullanılan glifleri gömmek için SaveSubsetFonts‘ü ekleyin.

Bu sürüm, render için özel bir klasörden fontları çözümlemeyi destekliyor mu?

Hayır — klasör ve sistem tabanlı font kaynağı çözümlemesi (FontSettings kaynak yapılandırması) burada uygulanmadı, çünkü bu, sayfa düzeni ve render hizmeti vermek için var ve bu FOSS sürümünün kapsamı dışında.

FontEmbeddingLicensingRights.NoSubsetting ne anlama geliyor?

Bu, font sağlayıcısının gömme hakları tarafından bildirilen bir lisanslama bayrağıdır: true olduğunda, font yalnızca kullanılan gliflere alt küme haline getirilemez.


API Reference Özet

Sınıf / MetotAçıklama
FontInfoCollectionBir belgede başvurulan yazı tipleri; ada göre indeksleyici (fontInfos[name]), Contains(), Count, GetEnumerator(), ayrıca EmbedTrueTypeFonts/EmbedSystemFonts/SaveSubsetFonts
FontInfoBir fontun meta verileri: Name, AltName, Family, Pitch, IsTrueType, Charset, Panose, EmbeddingLicensingRights
FontInfo.GetEmbeddedFont() / GetEmbeddedFontAsOpenType()Gömülü font baytlarını çıkar
EmbeddedFontFormat / EmbeddedFontStyleGömülü fontun formatını ve stil varyantını tanımlayan enum’lar
FontEmbeddingLicensingRights / FontEmbeddingUsagePermissionsHer font için bildirilen gömme lisans kısıtlamaları
FontSettingsMinimal font-settings giriş noktası (Document.FontSettings, LoadOptions.FontSettings); bu sürümde font-source çözümlemesi yok

Ayrıca Bakınız

 Türkçe