Přizpůsobení písem PowerPointu v Javě
Přehled
Aspose.Slides umožňuje používat vlastní písma v prezentacích bez nutnosti 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í fontových zdrojů na úrovni dokumentu, nebo načíst externí písma přímo z binárních dat.
Načtená písma se používají při vykreslování nebo exportu prezentace, například do PDF, obrázků a dalších podporovaných formátů. To pomáhá zachovat jednotný 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 po práci s externími písmy vymazat 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 třeba, aby písmo bylo uloženo uvnitř samotné prezentace, použijte výslovně funkce vkládání písem.
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 bez instalace 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í jednotně 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 k načtení písem z těchto složek.
- Načtěte a vykreslete/exportujte prezentaci.
- Zavolejte FontsLoader.clearCache pro vymazání mezipaměti písem.
Následující ukázka kódu demonstruje proces načítání písem:
// Definujte složky, které obsahují vlastní soubory písem.
String[] fontFolders = new String[] { externalFontFolder1, externalFontFolder2 };
// Načtěte vlastní písma ze specifikovaných složek.
FontsLoader.loadExternalFonts(fontFolders);
Presentation presentation = null;
try {
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);
} finally {
if (presentation != null) presentation.dispose();
// Vymažte mezipaměť písem po dokončení práce.
FontsLoader.clearCache();
}
Note
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é pomocí FontsLoader.
Získat vlastní složky s písmy
Aspose.Slides poskytuje metodu getFontFolders umožňující najít složky s písmy. Tato metoda vrací složky přidané pomocí metody LoadExternalFonts a systémové složky s písmy.
Tento Java kód ukazuje, jak použít getFontFolders:
// Tento řádek vypisuje složky, kde se hledají soubory písem.
// Jedná se o složky přidané pomocí metody LoadExternalFonts a systémové složky s písy.
String[] fontFolders = FontsLoader.getFontFolders();
Zadat vlastní písma používaná v prezentaci
Aspose.Slides poskytuje vlastnost setDocumentLevelFontSources , která umožňuje určit externí písma, která budou použita v prezentaci.
Tento Java kód ukazuje, jak použít vlastnost setDocumentLevelFontSources:
byte[] memoryFont1 = Files.readAllBytes("customfonts/CustomFont1.ttf");
byte[] memoryFont2 = Files.readAllBytes("customfonts/CustomFont2.ttf");
LoadOptions loadOptions = new LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(new String[] { "assets/fonts", "global/fonts" });
loadOptions.getDocumentLevelFontSources().setMemoryFonts(new byte[][] { memoryFont1, memoryFont2 });
Presentation pres = new Presentation("MyPresentation.pptx", loadOptions);
try {
// Pracujte s prezentací
// CustomFont1, CustomFont2 a písma ze složek assets\fonts a global\fonts a jejich podřízených složek jsou pro prezentaci k dispozici
} finally {
if (pres != null) pres.dispose();
}
Spravovat písma externě
Aspose.Slides poskytuje metodu loadExternalFont(byte[] data), která umožňuje načíst externí písma z binárních dat.
Tento Java kód demonstruje proces načítání písem z pole bajtů:
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALN.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNBI.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNI.TTF")));
try
{
Presentation pres = new Presentation("");
try {
// externí písmo načtené během životnosti prezentace
} finally {
}
}
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 vykreslovací komponentou používána 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 v souboru prezentace, musíte použít výslovně embedding features.
Mohu řídit chování při nedostatku určitých glyfů ve vlastním písmu?
Ano. Nastavte 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, aniž bych je instaloval systémově?
Ano. Odkazujte na vlastní složky s písmy nebo načtěte písma z pole bajtů. Tím odstraníte jakoukoli závislost na systémových složkách s písmy v obrazu kontejneru.
Co se týče licencí – mohu vložit libovolné vlastní písmo bez omezení?
Vy jste odpovědní za dodržování licenčních podmínek písem. Podmínky se liší; některé licence zakazují vkládání nebo komerční použití. Vždy si před distribucí výstupů prostudujte EULA daného písma.