Testreszabott PowerPoint betűkészletek Pythonban

Áttekintés

Az Aspose.Slides for Python lehetővé teszi egyedi betűkészletek biztosítását futásidőben, így a bemutatók helyesen jelennek meg akkor is, ha a szükséges betűkészletek nincsenek telepítve a gazda rendszeren. PDF‑ vagy képekre való exportálás közben betűkészlet‑mappákat vagy memóriában lévő betűkészlet‑adatokat adhat meg a szövegelrendezés, a glif‑metrikák és a tipográfia megőrzése érdekében. Ez előre láthatóvá teszi a szerveroldali renderelést különböző környezetekben, eltávolítja az operációs rendszer szintű betűkészlet‑függőségeket, és megakadályozza a nem kívánt helyettesítéseket vagy újra‑tördelést. A cikk bemutatja, hogyan regisztrálhat betűkészlet‑forrásokat.

Az Aspose.Slides a következő betűkészleteket töltheti be a load_external_font és load_external_fonts metódusokkal a FontsLoader osztályból:

  • TrueType (.ttf) és TrueType Collection (.ttc) betűkészletek. Lásd a TrueType oldalt.
  • OpenType (.otf) betűkészletek. Lásd a OpenType oldalt.

Egyedi betűkészletek betöltése

Az Aspose.Slides lehetővé teszi, hogy a bemutatóban használt betűkészleteket betöltse anélkül, hogy azokat a rendszerre telepítené. Ez hatással van az exportálási kimenetre – például PDF, képek és más támogatott formátumok – így a keletkező dokumentumok környezetfüggetlenül egységesek maradnak. A betűkészleteket egyedi könyvtárakból tölti be.

  1. Adjon meg egy vagy több mappát, amely a betűkészlet‑fájlokat tartalmazza.
  2. Hívja meg a statikus FontsLoader.load_external_fonts metódust a betűkészletek betöltéséhez az adott mappákból.
  3. Töltse be és renderelje/exportálja a bemutatót.
  4. Hívja meg a FontsLoader.clear_cache metódust a betűkészlet‑gyorsítótár törléséhez.

Az alábbi kódrészlet bemutatja a betűkészlet‑betöltési folyamatot:

import aspose.slides as slides

# Határozzon meg mappákat, amelyek egyedi betűkészlet-fájlokat tartalmaznak.
font_folders = [ external_font_folder1, external_font_folder2 ]

# Töltse be az egyedi betűkészleteket a megadott mappákból.
slides.FontsLoader.load_external_fonts(font_folders)

with slides.Presentation("sample.pptx") as presentation:
    # Renderelje/exportálja a bemutatót (például PDF-re, képekre vagy más formátumokra) a betöltött betűkészletek használatával.
    presentation.save("output.pdf", slides.export.SaveFormat.PDF)

# Törölje a betűkészlet gyorsítótárát a munka befejezése után.
slides.FontsLoader.clear_cache()

Az egyedi betűkészlet‑mappa lekérése

Az Aspose.Slides a get_font_folders metódust biztosítja a betűkészlet‑mappák lekérdezéséhez. Visszaadja mind a load_external_fonts‑szel hozzáadott, mind a rendszer betűkészlet‑mappáit.

Ez a Python‑kód bemutatja a get_font_folders használatát:

import aspose.slides as slides

# Ez a hívás visszaadja azokat a mappákat, amelyekben betűkészlet-fájlok keresésre kerülnek.
# Ezek tartalmazzák a load_external_fonts metódussal hozzáadott mappákat és a rendszer betűkészlet-mappákat.
font_folders = slides.FontsLoader.get_font_folders()

Egyedi betűkészletek megadása egy bemutatóhoz

Az Aspose.Slides a document_level_font_sources tulajdonságot biztosítja, amely lehetővé teszi külső betűkészletek megadását egy bemutatóhoz.

Az alábbi Python‑példa megmutatja a document_level_font_sources használatát:

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:
    # ...
    # A prezentációval dolgozni.
    # A CustomFont1, CustomFont2 és a assets\fonts és global\fonts mappákból (és azok alkönyvtáraiból) származó betűkészletek elérhetők a prezentáció számára.
    # ...
    print(len(presentation.slides))

Külső betűkészletek betöltése bináris adatokból

Az Aspose.Slides a load_external_font metódust kínálja külső betűkészletek bináris adatokból történő betöltéséhez.

Az alábbi Python‑példa demonstrálja egy betűkészlet betöltését egy bájt‑tömbből:

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

# Betöltse a külső betűkészleteket bájt tömbökből.
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:
        # A külső betűkészletek a bemutató példány élettartama alatt érhetők el.
        print("processing")
finally:
    slides.FontsLoader.clear_cache()

GYIK

Érintik-e az egyedi betűkészletek az összes formátumra (PDF, PNG, SVG, HTML) történő exportálást?

Igen. A kapcsolódó betűkészleteket a renderelő minden exportálási formátumban használja.

Ágyazódnak‑e automatikusan az egyedi betűkészletek a létrejövő PPTX‑be?

Nem. A betűkészlet regisztrálása a rendereléshez nem ugyanaz, mint a PPTX‑be való beágyazás. Ha a betűkészletet a bemutató fájljába szeretné beágyazni, használja a kifejezett beágyazási funkciókat.

Szabályozhatom‑e a helyettesítési viselkedést, ha egy egyedi betűkészletnek hiányoznak bizonyos glify?

Igen. Állítsa be a betűkészlet‑helyettesítést, a csere‑szabályokat, és a helyettesítő‑készleteket, hogy pontosan meghatározza, melyik betűkészletet használja a hiányzó glif esetén.

Használhatok‑e betűkészleteket Linux/Docker konténerekben anélkül, hogy rendszer‑szintű telepítést végeznék?

Igen. Mutasson saját betűkészlet‑mappákra vagy töltse be a betűkészleteket bájt‑tömbökből. Ez eltávolítja a rendszer betűkészlet‑könyvtárakra való függőséget a konténer‑képből.

Mi a helyzet a licenceléssel – beágyazhatok‑e bármilyen egyedi betűkészletet korlátozások nélkül?

Ön felelős a betűkészlet‑licenceléssel kapcsolatos megfelelésért. A feltételek változóak; egyes licencek tilthatják a beágyazást vagy a kereskedelmi felhasználást. Mindig ellenőrizze a betűkészlet EULA‑ját, mielőtt a kimeneteket terjesztené.