Přizpůsobení písem PowerPoint v Pythonu přes Java
Přehled
Aspose.Slides vám umožňuje používat vlastní písma v prezentacích, aniž byste je instalovali 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.
Načtená písma jsou používána 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é popisuje, jak zkontrolovat složky písem používané Aspose.Slides a jak vymazat mezipaměť písem po práci s externími písmy.
Registrace vlastních písem pro vykreslování je oddělena od vložení písem do souboru PPTX. Pokud je nutné, aby písmo bylo uloženo přímo v prezentaci, použijte funkce vkládání písem explicitně.
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 neinicializují 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 byla odkazovaná písma dostupná pro konzistentní vykreslování.
Poznámka
Aspose.Slides vám umožňuje načíst tato písma pomocí metody loadExternalFonts:
Načíst vlastní písma
Aspose.Slides vám 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 jsou načítána z vlastních adresářů.
- Zadejte jeden nebo více adresářů obsahujících soubory písem.
- Zavolejte statickou metodu FontsLoader.loadExternalFonts pro načtení písem z těchto adresářů.
- Načtěte a vykreslete/exportujte prezentaci.
- Zavolejte FontsLoader.clearCache, aby se vymazala mezipaměť písem.
Následující příklad kódu demonstruje proces načítání písem:
from jpype import JArray, JString
from asposeslides.api import FontsLoader, Presentation, SaveFormat
# Definujte složky obsahující soubory vlastních písem.
font_folders = JArray(JString)(["assets/fonts", "global/fonts"])
# Načtěte vlastní písma ze zadaných složek.
FontsLoader.loadExternalFonts(font_folders)
presentation = None
try:
presentation = Presentation("sample.pptx")
# Vykreslete/exportujte prezentaci pomocí načtených písem.
presentation.save("output.pdf", SaveFormat.Pdf)
finally:
if presentation is not None:
presentation.dispose()
# Vymaž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 složky s vlastními písmy
Aspose.Slides poskytuje metodu getFontFolders, která vám umožňuje 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 Python kód vám ukazuje, jak použít getFontFolders:
from asposeslides.api import FontsLoader
# Získat složky přidané pomocí loadExternalFonts a systémové složky s písmy.
font_folders = FontsLoader.getFontFolders()
Specifikovat vlastní písma použité v prezentaci
Aspose.Slides poskytuje metodu getDocumentLevelFontSources, která vám umožňuje specifikovat externí písma, která budou použita v prezentaci.
Tento Python kód vám ukazuje, jak použít metodu getDocumentLevelFontSources:
from pathlib import Path
from jpype import JArray, JByte, JString
from asposeslides.api import LoadOptions, Presentation
memory_font_primary = Path("customfonts/CustomFont1.ttf").read_bytes()
memory_font_secondary = Path("customfonts/CustomFont2.ttf").read_bytes()
load_options = LoadOptions()
font_folders = JArray(JString)(["assets/fonts", "global/fonts"])
memory_fonts = JArray(JByte, 2)([memory_font_primary, memory_font_secondary])
load_options.getDocumentLevelFontSources().setFontFolders(font_folders)
load_options.getDocumentLevelFontSources().setMemoryFonts(memory_fonts)
presentation = Presentation("MyPresentation.pptx", load_options)
try:
# Pracovat s prezentací.
# CustomFont1, CustomFont2 a písma z assets/fonts a global/fonts
# a jejich podsložky jsou k dispozici pro prezentaci.
pass
finally:
presentation.dispose()
Spravovat písma externě
Aspose.Slides poskytuje metodu loadExternalFont, která vám umožňuje načíst externí písma z binárních dat.
Tento Python kód demonstruje proces načítání písem z pole bajtů:
from pathlib import Path
from jpype import JArray, JByte
from asposeslides.api import FontsLoader, Presentation
font_data = Path("ARIALN.TTF").read_bytes()
FontsLoader.loadExternalFont(JArray(JByte)(font_data))
font_data = Path("ARIALNBI.TTF").read_bytes()
FontsLoader.loadExternalFont(JArray(JByte)(font_data))
font_data = Path("ARIALNI.TTF").read_bytes()
FontsLoader.loadExternalFont(JArray(JByte)(font_data))
try:
presentation = Presentation()
try:
# Externí písma jsou načtena během životnosti prezentace.
pass
finally:
presentation.dispose()
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 renderovačem 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í vkládací funkce.
Mohu řídit chování náhradního písma, když vlastní písmo postrádá určité glyfy?
Ano. Nakonfigurujte nahrazení písem, pravidla nahrazování, a sady náhrad, aby bylo přesně určeno, 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 vlastní složky s písmy nebo načítejte písma z polí bajtů. Tím se odstraní jakákoli závislost na systémových složkách s písmy v obrazu kontejneru.
Co se týče licencování – mohu vložit jakékoli vlastní písmo bez omezení?
Vy 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 distribucí výstupů přečtěte smluvní podmínky (EULA) daného písma.