Osadzanie czcionek w prezentacjach przy użyciu Pythona

Wstęp

Osadzanie czcionek w PowerPoint zapewnia, że Twoja prezentacja zachowuje zamierzony wygląd na różnych systemach. Niezależnie od tego, czy używasz unikalnych czcionek w celach kreatywnych, czy standardowych, osadzanie czcionek zapobiega zakłóceniom tekstu i układu.

Jeśli użyłeś czcionki zewnętrznej lub niestandardowej, ponieważ byłeś kreatywny w swojej pracy, masz jeszcze więcej powodów, aby osadzić tę czcionkę. W przeciwnym razie (bez osadzonych czcionek) teksty lub liczby na slajdach, układ, stylizacja itp. mogą ulec zmianie lub zamienić się w mylące prostokąty.

Użyj klas FontsManager, FontData i Compress do zarządzania osadzonymi czcionkami.

Pobieranie i usuwanie osadzonych czcionek

Łatwo pobieraj lub usuwaj osadzone czcionki z prezentacji za pomocą metod get_embedded_fonts i remove_embedded_font.

Ten kod w Pythonie pokazuje, jak pobrać i usunąć osadzone czcionki z prezentacji:

import aspose.slides as slides
import aspose.pydrawing as draw

    # Utwórz instancję klasy Presentation, która reprezentuje plik prezentacji.
    with slides.Presentation("EmbeddedFonts.pptx") as presentation:
        slide = presentation.slides[0]

        # Renderuj slajd zawierający ramkę tekstową używającą osadzonej czcionki 'FunSized'.
        with slide.get_image(draw.Size(960, 720)) as image:
            image.save("picture1_out.png", slides.ImageFormat.PNG)

        fonts_manager = presentation.fonts_manager

        # Pobierz wszystkie osadzone czcionki.
        embedded_fonts = fonts_manager.get_embedded_fonts()

        # Znajdź czcionkę 'Calibri'.
        font_data = list(filter(lambda data : data.font_name == "Calibri", embedded_fonts))[0]

        # Usuń czcionkę 'Calibri'.
        fonts_manager.remove_embedded_font(font_data)

        # Renderuj slajd; czcionka 'Calibri' zostanie zastąpiona istniejącą.
        with slide.get_image(draw.Size(960, 720)) as image:
            image.save("picture2_out.png", slides.ImageFormat.PNG)

        # Zapisz prezentację bez osadzonej czcionki 'Calibri' na dysku.
        presentation.save("WithoutEmbeddedFonts.ppt", slides.export.SaveFormat.PPT)

Dodawanie osadzonych czcionek

Korzystając z wyliczenia EmbedFontCharacters oraz dwóch przeciążeń metody add_embedded_font, możesz wybrać preferowaną regułę (osadzania) w celu osadzenia czcionek w prezentacji. Ten kod w Pythonie pokazuje, jak osadzić i dodać czcionki do prezentacji:

import aspose.slides as slides

# Załaduj prezentację.
with slides.Presentation("Fonts.pptx") as presentation:
    all_fonts = presentation.fonts_manager.get_fonts()
    embedded_fonts = presentation.fonts_manager.get_embedded_fonts()

    for font in all_fonts:
        if font not in embedded_fonts:
            presentation.fonts_manager.add_embedded_font(font, slides.export.EmbedFontCharacters.ALL)

    # Zapisz prezentację na dysku.
    presentation.save("AddEmbeddedFont.pptx", slides.export.SaveFormat.PPTX)

Kompresja osadzonych czcionek

Optymalizuj rozmiar pliku, kompresując osadzone czcionki za pomocą compress_embedded_fonts.

Przykładowy kod kompresji:

import aspose.slides as slides

with slides.Presentation("sample.pptx") as presentation:
    slides.lowcode.Compress.compress_embedded_fonts(presentation)
    presentation.save("output.pptx", slides.export.SaveFormat.PPTX)

FAQ

Jak mogę stwierdzić, że konkretna czcionka w prezentacji zostanie zastąpiona podczas renderowania pomimo osadzenia?

Sprawdź informacje o zastępowaniu w menedżerze czcionek oraz reguły awaryjnego/zastępowania: jeśli czcionka jest niedostępna lub ograniczona, zostanie użyta czcionka awaryjna.

Czy warto osadzać czcionki „systemowe”, takie jak Arial/Calibri?

Zazwyczaj nie — są prawie zawsze dostępne. Jednak w celu pełnej przenośności w „cienkich” środowiskach (Docker, serwer Linux bez wstępnie zainstalowanych czcionek) osadzanie czcionek systemowych może wyeliminować ryzyko nieoczekiwanych zastąpień.