Anpassa PowerPoint-typsnitt i Python
Översikt
Aspose.Slides för Python låter dig tillhandahålla anpassade typsnitt vid körning så att presentationer renderas korrekt även när de nödvändiga typsnitten inte är installerade på värdsystemet. Vid export till PDF eller bilder kan du ange typsnittsmappor eller typsnitt i minnet för att bevara textlayout, glyfmetriker och typografi. Detta gör server‑sidigerendering förutsägbar över olika miljöer, tar bort OS‑nivå typsnittsberoenden och förhindrar oönskade reservtypsnitt eller omslagning. Artikeln visar hur du registrerar typsnittskällor.
Aspose.Slides låter dig ladda följande typsnitt med metoderna load_external_font och load_external_fonts i klassen FontsLoader:
- TrueType (.ttf) och TrueType Collection (.ttc) typsnitt. Se TrueType.
- OpenType (.otf) typsnitt. Se OpenType.
Ladda anpassade typsnitt
Aspose.Slides gör det möjligt att ladda typsnitt som används i en presentation utan att installera dem på systemet. Detta påverkar exportutdata—t.ex. PDF, bilder och andra stödjade format—så att de resulterande dokumenten ser konsekventa ut över miljöer. Typsnitt laddas från anpassade kataloger.
- Ange en eller flera mappar som innehåller typsnittsfilerna.
- Anropa den statiska metoden FontsLoader.load_external_fonts för att ladda typsnitt från dessa mappar.
- Ladda och rendera/exportera presentationen.
- Anropa FontsLoader.clear_cache för att rensa typsnittscachen.
Följande kodexempel demonstrerar processen för att ladda typsnitt:
import aspose.slides as slides
# Definiera mappar som innehåller anpassade typsnittsfiler.
font_folders = [ external_font_folder1, external_font_folder2 ]
# Ladda anpassade typsnitt från de angivna mapparna.
slides.FontsLoader.load_external_fonts(font_folders)
with slides.Presentation("sample.pptx") as presentation:
# Rendera/exportera presentationen (t.ex. till PDF, bilder eller andra format) med de inlästa typsnitten.
presentation.save("output.pdf", slides.export.SaveFormat.PDF)
# Rensa typsnittscachen när arbetet är slutfört.
slides.FontsLoader.clear_cache()
Note
FontsLoader.load_external_fonts lägger till ytterligare mappar i typsnittssökvägarna, men ändrar inte ordningen för typsnittsininitiering. Typsnitt initieras i följande ordning:
- Standard‑operativsystemets typsnittsväg.
- Vägarna som laddas via FontsLoader.
Hämta mappen för anpassade typsnitt
Aspose.Slides tillhandahåller metoden get_font_folders för att hämta typsnittsmappar. Den returnerar både de mappar som lagts till via load_external_fonts och systemets typsnittsmappar.
Denna Python‑kod visar hur man använder get_font_folders:
import aspose.slides as slides
# Detta anrop returnerar mapparna som kontrolleras för typsnittsfiler.
# Dessa inkluderar mappar som lagts till via load_external_fonts-metoden och systemets typsnittsmappor.
font_folders = slides.FontsLoader.get_font_folders()
Ange anpassade typsnitt för en presentation
Aspose.Slides erbjuder egenskapen document_level_font_sources, som låter dig ange externa typsnitt att använda med en presentation.
Följande Python‑exempel visar hur man använder document_level_font_sources:
import aspose.slides as slides
with open("CustomFont1.ttf", "br") as font1_stream:
font1_data = font1_stream.read()
with open("CustomFont2.ttf", "br") as font2_stream:
font2_data = font2_stream.read()
load_options = slides.LoadOptions()
load_options.document_level_font_sources.font_folders = ["assets\\fonts", "global\\fonts"]
load_options.document_level_font_sources.memory_fonts = [font1_data, font2_data]
with slides.Presentation("Fonts.pptx", load_options) as presentation:
# ...
# Arbeta med presentationen.
# CustomFont1, CustomFont2 och typsnitt från mapparna assets\fonts och global\fonts (och deras undermappar) är tillgängliga för presentationen.
# ...
print(len(presentation.slides))
Ladda externa typsnitt från binär data
Aspose.Slides tillhandahåller metoden load_external_font för att ladda externa typsnitt från binär data.
Följande Python‑exempel demonstrerar hur man laddar ett typsnitt från en byte‑array:
import aspose.slides as slides
def read_all_bytes(file_path):
with open(file_path, "rb") as file_stream:
file_data = file_stream.read()
return file_data
# Ladda externa typsnitt från byte-arrayer.
slides.FontsLoader.load_external_font(read_all_bytes("ARIALN.TTF"))
slides.FontsLoader.load_external_font(read_all_bytes("ARIALNBI.TTF"))
slides.FontsLoader.load_external_font(read_all_bytes("ARIALNI.TTF"))
try:
with slides.Presentation() as presentation:
# Externa typsnitt är tillgängliga under hela livslängden för detta presentationsobjekt.
print("processing")
finally:
slides.FontsLoader.clear_cache()
FAQ
Påverkar anpassade typsnitt export till alla format (PDF, PNG, SVG, HTML)?
Ja. Anslutna typsnitt används av renderaren i alla exportformat.
Bäddas anpassade typsnitt automatiskt i den resulterande PPTX‑filen?
Nej. Att registrera ett typsnitt för rendering är inte detsamma som att bädda in det i en PPTX. Om du behöver att typsnittet finns i presentationsfilen måste du använda de explicita inbäddningsfunktionerna.
Kan jag styra fallback‑beteendet när ett anpassat typsnitt saknar vissa glyfer?
Ja. Konfigurera font substitution, replacement rules och fallback sets för att exakt ange vilket typsnitt som ska användas när den begärda glyfen saknas.
Kan jag använda typsnitt i Linux/Docker‑behållare utan att installera dem systemomfattande?
Ja. Peka på dina egna typsnittsmappar eller ladda typsnitt från byte‑arrayer. Detta tar bort alla beroenden av systemets typsnittskataloger i container‑avbilden.
Hur är det med licensiering—kan jag bädda in vilket anpassat typsnitt som helst utan restriktioner?
Du är ansvarig för att följa typsnittens licensvillkor. Villkoren varierar; vissa licenser förbjuder inbäddning eller kommersiell användning. Granska alltid typsnittets EULA innan du distribuerar resultat.