Přizpůsobení písem PowerPointu v .NET
Přehled
Aspose.Slides umožňuje používat vlastní písma v prezentacích bez jejich instalace do operačního systému. Můžete načíst písma z vlastních složek, poskytnout písma pro konkrétní prezentaci pomocí zdrojů písem na úrovni dokumentu, nebo načíst externí písma přímo z binárních dat.
Nahraná písma jsou použita při vykreslování nebo exportu prezentace, například do PDF, obrázků a dalších podporovaných formátů. To pomáhá udržet výstup prezentace konzistentní napříč různými prostředími. Článek také vysvětluje, jak zobrazit složky písem používané Aspose.Slides a jak po práci s externími písmy vyprázdnit mezipaměť písem.
Registrace vlastních písem pro vykreslování je oddělena od vkládání písem do souboru PPTX. Pokud je nutné písmo uložit přímo v prezentaci, použijte funkce pro vložení písem výslovně.
Téma prezentace může odkazovat na různé rodiny písem pro jednotlivé psací systémy. Tato mapování ukládají názvy písem, ale neinstalují ani nenačítají soubory písem. Viz Script-Specific Theme Fonts pro správu mapování a použijte níže uvedené možnosti načítání, aby odkazovaná písma byla k dispozici pro konzistentní vykreslování.
Poznámka
Aspose Slides umožňuje načíst tato písma pomocí metody FontsLoader.LoadExternalFonts:
Načíst vlastní písma
Aspose.Slides umožňuje načíst písma používaná v prezentaci bez jejich instalace v systému. To ovlivňuje výstup exportu – jako PDF, obrázky a další podporované formáty – takže výsledné dokumenty vypadají konzistentně napříč prostředími. Písma jsou načítána z vlastních adresářů.
- Zadejte jednu nebo více složek, které obsahují soubory písem.
- Zavolejte statickou metodu FontsLoader.LoadExternalFonts pro načtení písem z těchto složek.
- Načtěte a vykreslete/exportujte prezentaci.
- Zavolejte FontsLoader.ClearCache pro vyprázdnění mezipaměti písem.
using Aspose.Slides;
using Aspose.Slides.Export;
// Definujte složky, které obsahují vlastní soubory písem.
string[] fontFolders = { @"C:\MyFonts", @"D:\Fonts" };
// Načtěte vlastní písma ze zadaných složek.
FontsLoader.LoadExternalFonts(fontFolders);
using Presentation presentation = new Presentation("sample.pptx");
// Vykreslete/exportujte prezentaci (např. do PDF, obrázků nebo jiných formátů) pomocí načtených písem.
presentation.Save("output.pdf", SaveFormat.Pdf);
// Vyprázdněte mezipaměť písem po dokončení práce.
FontsLoader.ClearCache();
Poznámka
FontsLoader.LoadExternalFonts přidává další složky do cest pro vyhledávání písem, ale nemění pořadí inicializace písem. Písma jsou inicializována v tomto pořadí:
- Výchozí cesta k písmům operačního systému.
- Cesty načtené přes FontsLoader.
Získat vlastní složky písem
Aspose.Slides poskytuje metodu GetFontFolders pro umožnění nalezení složek písem. Tato metoda vrací složky přidané metodou LoadExternalFonts a systémové složky písem.
Tento C# kód vám ukazuje, jak použít GetFontFolders:
using Aspose.Slides;
// Tento řádek vypisuje složky, které jsou kontrolovány pro soubory písem.
// Jedná se o složky přidané metodou LoadExternalFonts a systémové složky písem.
string[] fontFolders = FontsLoader.GetFontFolders();
Zadání vlastních písem používaných v prezentaci
Aspose.Slides poskytuje vlastnost DocumentLevelFontSources pro umožnění zadání externích písem, která budou použita s prezentací.
Tento C# kód vám ukazuje, jak použít vlastnost DocumentLevelFontSources:
using Aspose.Slides;
byte[] memoryFont1 = File.ReadAllBytes("customfonts\\CustomFont1.ttf");
byte[] memoryFont2 = File.ReadAllBytes("customfonts\\CustomFont2.ttf");
LoadOptions loadOptions = new LoadOptions();
loadOptions.DocumentLevelFontSources.FontFolders = new string[] { "assets\\fonts", "global\\fonts" };
loadOptions.DocumentLevelFontSources.MemoryFonts = new byte[][] { memoryFont1, memoryFont2 };
using (IPresentation presentation = new Presentation("MyPresentation.pptx", loadOptions))
{
// Pracujte s prezentací
// CustomFont1, CustomFont2 a písma ze složek assets\fonts & global\fonts a jejich podadresářů jsou k dispozici pro prezentaci
}
Spravovat písma externě
Aspose.Slides poskytuje metodu LoadExternalFont(byte[] data) pro umožnění načíst externí písma z binárních dat.
Tento C# kód demonstruje proces načítání písem z pole bytů:
using Aspose.Slides;
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALN.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNBI.TTF"));
FontsLoader.LoadExternalFont(File.ReadAllBytes("ARIALNI.TTF"));
try
{
using (Presentation pres = new Presentation(""))
{
// externí písmo načtené během životnosti prezentace
}
}
finally
{
FontsLoader.ClearCache();
}
Často kladené otázky
Ovlivňují vlastní písma export do všech formátů (PDF, PNG, SVG, HTML)?
Ano. Připojená písma jsou používána rendererem ve všech exportních formátech.
Jsou vlastní písma automaticky vložena do výsledného PPTX?
Ne. Registrace písma pro vykreslování není totéž jako jeho vložení do PPTX. Pokud potřebujete, aby písmo bylo součástí souboru prezentace, musíte použít explicitní embedding features.
Mohu kontrolovat chování při nedostatku některých glyfů ve vlastním písmu?
Ano. Nakonfigurujte font substitution, replacement rules a fallback sets pro přesné určení, které písmo se použije, když požadovaný glyf chybí.
Mohu používat písma v kontejnerech Linux/Docker bez jejich instalace do celého systému?
Ano. Odkazujte na své vlastní složky písem nebo načítejte písma z bajtových polí. Tím odstraníte jakoukoli závislost na systémových složkách písem v kontejnerovém obrazu.
Poznámka pro Linux/Docker: Při volání
FontsLoader.LoadExternalFontszajistěte, aby každý prvek v polidirectoriesobsahoval neprázdnou cestu k existujícímu adresáři. Pokud je proměnná prostředí použita pro vytvoření cesty k písmu nedefinovaná nebo prázdná, Aspose.Slides může zkusit prázdnou hodnotu vyhodnotit jako úplnou cestu, což vede kSystem.ArgumentException.
Co licencování—mohu vložit jakékoli vlastní písmo bez omezení?
Jste zodpovědní za dodržování licencí písem. Podmínky se liší; některé licence zakazují vkládání nebo komerční použití. Vždy si před šířením výstupů přečtěte EULA daného písma.