Přizpůsobení fontů PowerPoint v JavaScriptu
Přehled
Aspose.Slides umožňuje používat vlastní písma v prezentacích, aniž byste je museli instalovat do operačního systému. Písma můžete načíst z vlastních složek, poskytnout písma pro konkrétní prezentaci prostřednictvím zdrojů písem na úrovni dokumentu nebo načíst externí písma přímo z binárních dat.
Načtená 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á zachovat konzistentní výstup prezentace napříč různými prostředími. Článek také vysvětluje, jak zkontrolovat složky písem používané Aspose.Slides a jak vyprázdnit mezipaměť písem po práci s externími písmy.
Registrace vlastních písem pro vykreslování je oddělená od vložení písem do souboru PPTX. Pokud je nutné, aby písmo bylo uloženo přímo v prezentaci, použijte funkce vložení písem výslovně.
Téma prezentace může odkazovat na různé rodiny písem pro jednotlivé psací systémy. Tyto 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 byly odkazovaná písma k dispozici pro konzistentní vykreslování.
Poznámka
Aspose Slides umožňuje načíst tato písma pomocí metody loadExternalFonts:
Načíst vlastní písma
Aspose.Slides umožňuje načíst písma použité v prezentaci, aniž byste je instalovali do systému. To ovlivňuje výstup exportu – například PDF, obrázky a další podporované formáty – takže výsledné dokumenty vypadají konzistentně napříč prostředími. Písma se načítají 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.
Následující ukázkový kód demonstruje proces načítání písem:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
// Definujte složky, které obsahují soubory vlastních písem.
let externalFontFolder1 = "fonts";
let externalFontFolder2 = "extra-fonts";
let fontFolders = java.newArray("java.lang.String", [externalFontFolder1, externalFontFolder2]);
// Načtěte vlastní písma ze specifikovaných složek.
aspose.slides.FontsLoader.loadExternalFonts(fontFolders);
let presentation = null;
try {
presentation = new aspose.slides.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", aspose.slides.SaveFormat.Pdf);
} finally {
if (presentation != null) presentation.dispose();
// Vyprázdněte mezipaměť písem po dokončení práce.
aspose.slides.FontsLoader.clearCache();
}
Poznámka
FontsLoader.loadExternalFonts přidává další složky do vyhledávacích cest písem, ale nemění pořadí inicializace písem.
Písma jsou inicializována v tomto pořadí:
- Výchozí cesta písem operačního systému.
- Cesty načtené pomocí FontsLoader.
Získat složku vlastních písem
Aspose.Slides poskytuje metodu getFontFolders umožňující najít složky písem. Tato metoda vrací složky přidané metodou LoadExternalFonts a systémové složky písem.
Tento kód JavaScriptu ukazuje, jak použít getFontFolders:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
// Tento řádek vypisuje složky, kde se hledají soubory písem.
// Jedná se o složky přidané metodou LoadExternalFonts a systémové složky písem.
var fontFolders = aspose.slides.FontsLoader.getFontFolders();
Zadat vlastní písma používaná v prezentaci
Aspose.Slides poskytuje vlastnost setDocumentLevelFontSources umožňující specifikovat externí písma, která budou použita s prezentací.
Tento kód JavaScriptu ukazuje, jak použít vlastnost setDocumentLevelFontSources:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
var memoryFont1 = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "customfonts/CustomFont1.ttf"));
var memoryFont2 = java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "customfonts/CustomFont2.ttf"));
var loadOptions = new aspose.slides.LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(java.newArray("java.lang.String", ["assets/fonts", "global/fonts"]));
loadOptions.getDocumentLevelFontSources().setMemoryFonts(java.newArray("[B", [java.newArray("byte", ["item1", "item2", "item3"])]));
var pres = new aspose.slides.Presentation("MyPresentation.pptx", loadOptions);
try {
// Práce s prezentací
// CustomFont1, CustomFont2 a písma ze složek assets\fonts a global\fonts a jejich podadresářů jsou k dispozici prezentaci
} finally {
if (pres != null) {
pres.dispose();
}
}
Spravovat písma externě
Aspose.Slides poskytuje metodu loadExternalFont(byte[] data) umožňující načíst externí písma z binárních dat.
Tento kód JavaScriptu demonstruje proces načítání písem z pole bajtů:
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const java = require("java");
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "loadExternalFonts", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "ARIALN.TTF")));
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "loadExternalFonts", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "ARIALNBI.TTF")));
java.callStaticMethodSync("com.aspose.slides.FontsLoader", "loadExternalFonts", java.newInstanceSync("java.io.FileInputStream", java.newInstanceSync("java.io.File", "ARIALNI.TTF")));
try {
var pres = new aspose.slides.Presentation("");
try {
// externí písmo načtené během životnosti prezentace
} finally {
}
} finally {
java.callStaticMethodSync("com.aspose.slides.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 používá vykreslovací engin ve všech exportních formátech.
Jsou vlastní písma automaticky vložena do výsledného souboru PPTX?
Ne. Registrace písma pro vykreslování není totéž jako vložení do PPTX. Pokud potřebujete, aby písmo bylo součástí souboru prezentace, musíte použít výslovné funkce vložení.
Mohu řídit chování náhrad, když vlastním písmem chybí některé glyfy?
Ano. Nastavte náhradu písem, pravidla nahrazování a sady náhrad 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 na úrovni systému?
Ano. Odkazujte na své vlastní složky s písmy nebo načtěte písma z pole bajtů. Tím se odstraní jakákoliv závislost na systémových složkách s písmy v obrazu kontejneru.
Co licenci – mohu vložit libovolné vlastní písmo bez omezení?
Jste zodpovědní za soulad s licencemi písem. Podmínky se liší; některé licence zakazují vložení nebo komerční použití. Vždy si před distribucí výstupů prostudujte licenční smlouvu (EULA) daného písma.