Yazı Tipi İşleme ve Performans Sorunları

Mevcut tüm yazı tipi işleme mekanizmaları FontSettings sınıfında bulunur. Bu sınıf, tanımlanmış font kaynakları içindeki fontların alınmasından ve aşağıda açıklandığı gibi Font Değiştirme işleminden sorumludur.

Çözümlenen Yazı Tiplerini Ayrıştırma

Yazı tipleri birkaç adımda ayrıştırılır:

  1. Yazı tipi için bilgi edinme, mevcut tüm yazı tiplerinden çözümleme.
  2. Kullanılabilir glifleri ve metrikleri (yatay ve dikey) elde etmek için çözümlenen yazı tiplerini ayrıştırma.
  3. Çözümlenen yazı tiplerini katıştırma ve alt kümeleme için ayrıştırma.

Aspose.Words belgede bir yazı tipiyle ilk kez karşılaştığında, her yazı tipi kaynağında bulunan yazı tipi dosyalarından yazı tipi tam adı, soyadı, sürümü, stili gibi temel yazı tipi bilgilerini almaya çalışır. Tüm fontlar alındıktan sonra Aspose.Words, gerekli font verilerini veya istenen font için uygun bir yedeği bulmak için bu ayrıntıları kullanır.

Yazı Tiplerini Değiştirirken Performans Sorunu

Yukarıda açıklanan prosedür zaman alıcı olduğundan, ilk lansmanında uygulama performansını olumsuz yönde etkileyebilir. Ancak, her FontSettings örneğinin kendi önbelleği vardır, bu da sonraki belgelerin işlem süresini kısaltabilir. Örneğin, FontSettings sınıfının bir örneğini farklı belgeler arasında paylaşabilirsiniz, bu da belgelerin yüklenmesini hızlandırmanıza olanak tanır. Aşağıdaki örnek bunu göstermektedir:

FontSettings açıkça tanımlanmadığında, Aspose.Words varsayılan FontSettings örneğini kullanır. Bu örnek aynı zamanda belgeler arasında otomatik olarak paylaşılır ve aşağıdaki gibi çıkarılabilir:

C++

System::SharedPtr<FontSettings> fontSettings = System::MakeObject<FontSettings>()->get_DefaultInstance();

Varsayılan FontSettings Örneğini Kullanma

Tüm işleme belgelerinin aynı yazı tipi ayarlarını gerektirdiğinden eminseniz, varsayılan FontSettings örneğini ayarlamanız ve kullanmanız önerilir. Tüm belgeleriniz için aynı yazı tipi kaynaklarını kullanmanız gerektiğini varsayalım. Bu durumda, varsayılan örneği aşağıdaki gibi değiştirebilirsiniz: