.NET'te Sunumlarda Yazı Tipi İkamesini Yapılandırma
Overview
Yazı tipi ikamesi, Aspose.Slides’in bir sunum oluşturulurken veya dönüştürülürken erişilemeyen bir yazı tipinin yerine kullanılabilir bir yazı tipini kullanmasını sağlar. İkame, oluşturulan çıktıyı etkiler; sunum içeriğine atanan yazı tipini değiştirmez.
Belirli bir yazı tipi kullanılamadığında kullanılacak yazı tipini tanımlayabilir ve Aspose.Slides’in oluşturma sırasında yapacağı ikameleri inceleyebilirsiniz. Bu, farklı yüklü yazı tiplerine sahip ortamlar arasında çıktının tutarlı kalmasına yardımcı olur.
Bir yazı tipi mevcut ancak özel bir kalın yazı tipi yoksa, Yüksek Kaliteli Bir Bold Yazı Tipi Olmayan Yazı Tiplerini Yönet bölümüne bakın. Bu bölüm, PDF dışa aktarımı sırasında etkilenen metnin nasıl rasterleştirileceğini ve metin seçimi, arama ve ölçeklendirme üzerindeki sonuçları açıklar.
Get Font Substitutions
Sunum oluşturulduğunda hangi yazı tiplerinin ikame edileceğini belirlemek için IFontsManager.GetSubstitutions yöntemini kullanın. Yöntem, orijinal ve ikame edilen yazı tipi adlarını tanımlayan FontSubstitutionInfo nesnelerini döndürür.
Aşağıdaki C# örneği bir sunum için tüm yazı tipi ikamelerini listeler:
using System;
using Aspose.Slides;
using var presentation = new Presentation("Presentation.pptx");
foreach (var substitution in presentation.FontsManager.GetSubstitutions())
{
Console.WriteLine($"{substitution.OriginalFontName} -> {substitution.SubstitutedFontName}");
}
Get Font Substitutions for Selected Slides
IFontsManager.GetSubstitutions aşırı yüklemesini int[] slides argümanı ile kullanarak yalnızca belirli slaytların oluşturulması için gereken ikameleri inceleyebilirsiniz. Bu, bir sunumun bir bölümünü oluştururken veya dışa aktarırken, büyük bir sunumu aşamalı olarak kontrol ederken, kullanılamayan yazı tiplerine bağımlı slaytları bulurken, bir sunucu veya konteyner için minimal bir yazı tipi paketi hazırlarken veya ilgili olmayan slaytları işlemadan oluşturma farklarını teşhis ederken faydalıdır.
slides dizisi bir‑bazlı slayt indeksleri içerir: 1 ilk slaytı tanımlar. Buna karşılık, Presentation.Slides koleksiyon indeksleyicisi sıfır‑bazlıdır, bu nedenle aynı slayt presentation.Slides[0] olarak erişilir. Dizi oluştururken bu farkı akılda tutun ve bir‑bir hatasından kaçının.
Bu aşırı yüklemeyi Presentation.FontsManager özelliği üzerinden çağırın. Yalnızca seçilen slaytların oluşturulması sırasında belirlenen ikameleri döndürür. Her sonuç, orijinal ve ikame edilen yazı tipi adlarını içeren bir FontSubstitutionInfo nesnesidir. Sonuç, mevcut yazı tipi ortamını ve dışarıdan yüklenen yazı tipleri yansıtıyor. IFontSubstRuleCollection içinde depolanan ikame kuralları oluşturulan çıktıyı değiştirir ancak sonuçta yansıtılmaz.
Aynı ikame, birden fazla seçili slayt tarafından gerekli olabilir. Bir yazı tipi envanteri veya ön uç raporu oluştururken sonuçları tekilleştirin. Aşağıdaki örnek her dönen ikameyi raporlar ve ardından benzersiz yazı tipi eşlemelerinin sıralı bir listesini oluşturur:
using System;
using System.Linq;
using Aspose.Slides;
using var presentation = new Presentation("Presentation.pptx");
int[] selectedSlides = { 1, 3, 5 };
var substitutions = presentation.FontsManager.GetSubstitutions(selectedSlides).ToList();
Console.WriteLine("Substitutions for the selected slides:");
foreach (var substitution in substitutions)
{
Console.WriteLine($"{substitution.OriginalFontName} -> {substitution.SubstitutedFontName}");
}
var preflightEntries = substitutions.Select(substitution => $"{substitution.OriginalFontName} -> {substitution.SubstitutedFontName}");
var uniquePreflightEntries = preflightEntries.Distinct(StringComparer.OrdinalIgnoreCase);
var sortedPreflightEntries = uniquePreflightEntries.OrderBy(entry => entry, StringComparer.OrdinalIgnoreCase).ToList();
Console.WriteLine("Deduplicated font preflight report:");
foreach (var entry in sortedPreflightEntries)
{
Console.WriteLine(entry);
}
IFontsManager arayüzü her iki aşırı yüklemeyi de sağlar. Oluşturma işleminin kapsamına göre birini seçin:
| Aşırı Yükleme | Ne zaman kullanılır |
|---|---|
| GetSubstitutions with no arguments | Sunumun tamamı için ikamelere ihtiyacınız varsa. |
GetSubstitutions with int[] slides |
Seçili bir aralık, aşamalı kontrol veya kısmi dışa aktarma için ikamelere ihtiyacınız varsa. |
Set Font Substitution Rules
Kaynak bir yazı tipi kullanılamadığında Aspose.Slides’in kullanması gereken yazı tipini belirtmek için:
- Sunumu yükleyin.
- Kaynak ve ikame yazı tipleri için yazı tipi tanımları oluşturun.
- WhenInaccessible koşulu ile bir FontSubstRule oluşturun.
- Kuralı bir FontSubstRuleCollection içine ekleyin.
- Koleksiyonu FontsManager.FontSubstRuleList özelliğine atayın.
- Sunumu oluşturun veya dönüştürün.
Aşağıdaki C# örneği, SomeRareFont kullanılamadığında Arialı ikame eder ve ardından sonucu doğrulamak için ilk slaytı oluşturur. İkame yazı tipi Aspose.Slides için mevcut olmalıdır.
using Aspose.Slides;
using var presentation = new Presentation("Fonts.pptx");
var sourceFont = new FontData("SomeRareFont");
var substituteFont = new FontData("Arial");
var substitutionRule = new FontSubstRule(sourceFont, substituteFont, FontSubstCondition.WhenInaccessible);
var substitutionRules = new FontSubstRuleCollection();
substitutionRules.Add(substitutionRule);
presentation.FontsManager.FontSubstRuleList = substitutionRules;
using var image = presentation.Slides[0].GetImage(1f, 1f);
image.Save("slide.jpg", ImageFormat.Jpeg);
Note
Bir sunum boyunca kullanılan yazı tiplerinde koşulsuz bir değişiklik için, Yazı Tipi Değiştirme bölümüne bakın.Limitations for Math Equation Fonts
Yazı tipi ikame kuralları, oluşturma ve dönüştürme sırasında kullanılan standart yazı tipi seçim sürecinin bir parçasıdır. Aspose.Slides, erişilemeyen bir yazı tipini kural tarafından belirtilen mevcut yazı tipi ile değiştirebildiğinde, bu kurallar normal metin için çalışır.
Office Math denklemlerinin ek bir gereksinimi vardır. Bir denklem Cambria Math kullanıyorsa, Aspose.Slides bu denklemin yerleşimini hesaplamak ve oluşturmak için tam olarak bu yazı tipine ihtiyaç duyabilir. STIX Two Math gibi başka bir matematik yazı tipini ikame eden bir kural, bu amaçla Cambria Math‘i değiştiremez ve oluşturma hâlâ Cambria Math gerektiğini bildirebilir.
Böyle bir sunumu oluşturmak veya dönüştürmek için, Cambria Math‘i Aspose.Slides için kullanılabilir hâle getirin. İşletim sistemine yükleyin veya bir dış yazı tipi olarak yükleyin.
Bu sınırlama denklem yerleşimine uygulanır. Yukarıda açıklanan ikame kuralları normal sunum metni için hâlâ geçerlidir.
SSS
Yazı tipi değiştirme ile yazı tipi ikamesi arasındaki fark nedir?
Yazı tipi değiştirme sunum boyunca bir yazı tipini bilinçli olarak başka birine değiştirir. Yazı tipi ikamesi, yapılandırılmış koşul karşılandığında, örneğin orijinal yazı tipi kullanılamadığında, oluşturulan çıktı için bir yazı tipi seçer.
İkame kuralları ne zaman uygulanır?
Kurallar, oluşturma ve dönüştürme sırasında yazı tipi seçim sırası içinde yer alır. WhenInaccessible ile bir kural yalnızca Aspose.Slides kaynak yazı tipine erişemediğinde kullanılır.
Bir yazı tipi eksik olduğunda ve hiçbir ikame kuralı yapılandırılmadığında ne olur?
Aspose.Slides, yazı tipi seçim sürecine göre en yakın mevcut yazı tipini seçer. Sonuç, çalışma zamanı ortamında mevcut olan yazı tiplerine bağlıdır.
İkameyi önlemek için dış yazı tipleri yükleyebilir miyim?
Evet. Aspose.Slides’in oluşturma ve dönüştürme sırasında kullanabilmesi için dış yazı tipleri yükleyin.
Aspose kütüphane ile birlikte yazı tiplerini dağıtıyor mu?
Hayır. Yazı tiplerini sağlamaktan ve lisanslarına uymaktan siz sorumlusunuz.
İkame sonuçları Windows, Linux ve macOS arasında farklılık gösterebilir mi?
Evet. Yüklü yazı tipleri ve yazı tipi arama konumları işletim sistemine göre değişir, bu nedenle bir makinede mevcut olan bir yazı tipi diğerinde ikame gerekebilir.
Toplu dönüşümlerde yazı tipi seçimini tutarlı nasıl yapabilirim?
Her makine veya konteynerde aynı yazı tipi dosyalarını ve sürümlerini kullanın, gerekli dış yazı tiplerini yükleyin ve lisans izin veriyorsa yazı tiplerini göm. Ayrıca dışa aktarmadan önce beklenmeyen ikameleri belirlemek için IFontsManager.GetSubstitutions yöntemini çağırabilirsiniz.