Najczęściej zadawane pytania
Najczęściej zadawane pytania
Jak zainstalować Aspose.Slides FOSS?
Zainstaluj z PyPI przy użyciu pip. Wymagany jest Python 3.10 lub nowszy.
pip install aspose-slides-fossSprawdź instalację:
import aspose.slides_foss as slides
with slides.Presentation() as prs:
print(f"Slides: {len(prs.slides)}")Zależność lxml jest instalowana automatycznie. Nie jest wymagany Microsoft Office ani inne środowisko uruchomieniowe systemu.
Dlaczego muszę używać with slides.Presentation() as prs:?
Klasa Presentation zarządza wewnętrznymi uchwytami plików i zasobami XML. Bez menedżera kontekstu te zasoby nie są zwalniane, gdy obiekt Presentation wychodzi poza zakres, co może powodować wycieki zasobów lub blokady plików w systemie Windows.
Zawsze stosuj ten wzór:
with slides.Presentation("input.pptx") as prs:
# work here
prs.save("output.pptx", SaveFormat.PPTX)Do jakich formatów plików mogę zapisać?
Enum SaveFormat definiuje stałe dla wielu formatów — PPTX, PDF, HTML, SVG, JPEG, PNG i inne — w celu zapewnienia kompatybilności API z edycją komercyjną. W czasie wykonywania w tej edycji FOSS wszystkie wywołania save() ignorują argument formatu i zawsze zapisują wyjście w formacie PPTX. Przekazanie SaveFormat.PDF kompiluje się i uruchamia bez błędu, ale generuje plik .pptx, a nie .pdf.
from aspose.slides_foss.export import SaveFormat
prs.save("output.pptx", SaveFormat.PPTX)Eksport do formatów innych niż PPTX nie jest dostępny funkcjonalnie w tej edycji. Użyj SaveFormat.PPTX do wszystkich operacji zapisu.
Czy mogę otworzyć .ppt (stare PowerPoint 97–2003) pliki?
Nie. Tylko pliki .pptx (Office Open XML) są obsługiwane. Starszy format binarny .ppt nie jest obsługiwany przez tę bibliotekę.
Jak mogę uzyskać dostęp do slajdów?
Slajdy są listą indeksowaną od zera, dostępną przez prs.slides:
first_slide = prs.slides[0]
slide_count = len(prs.slides)Jak dodać drugi slajd?
Użyj prs.slides.add_empty_slide() z układem:
with slides.Presentation() as prs:
layout = prs.layout_slides[0]
prs.slides.add_empty_slide(layout)
slide2 = prs.slides[1]
prs.save("two-slides.pptx", SaveFormat.PPTX)Jak ustawić kolor tła slajdu?
Kolorowanie tła slajdu nie jest dostępne w tej edycji. Klasa Slide nie udostępnia właściwości background. Próba slide.background spowoduje podniesienie AttributeError. Ta funkcja nie jest zaimplementowana w bieżącej wersji.
Jak używać NullableBool?
NullableBool jest wyliczeniem trójstanowym używanym do właściwości formatowania. Użyj NullableBool.TRUE (nie Pythona True) do pogrubienia, kursywy i podobnych właściwości:
from aspose.slides_foss import NullableBool, TextUnderlineType
fmt.font_bold = NullableBool.TRUE
fmt.font_italic = NullableBool.FALSE
# font_underline is TextUnderlineType, not NullableBool:
fmt.font_underline = TextUnderlineType.NOT_DEFINED # inherits from themeDlaczego ustawienie koloru tekstu nie ma żadnego efektu?
Musisz także ustawić fill_type = FillType.SOLID przed przypisaniem koloru:
from aspose.slides_foss import FillType
from aspose.slides_foss.drawing import Color
fmt.fill_format.fill_type = FillType.SOLID
fmt.fill_format.solid_fill_color.color = Color.from_argb(255, 200, 0, 0)Czy mogę używać wykresów lub SmartArt?
Nie. Wykresy, SmartArt, obiekty OLE, animacje, przejścia, hiperłącza, makra VBA i podpisy cyfrowe nie są zaimplementowane w tej edycji i generują NotImplementedError.
Czy biblioteka obsługuje Pythona 3.9?
Nie. Wymagany jest Python 3.10 lub nowszy.
Czy ta biblioteka jest bezpieczna wątkowo?
Każdy obiekt Presentation jest niezależny. Tworzenie i używanie oddzielnych instancji Presentation z różnych wątków jest bezpieczne, o ile nie udostępniasz jednego obiektu Presentation pomiędzy wątkami bez zewnętrznego blokowania.
Jak osadzić obraz?
Odczytaj bajty obrazu i dodaj je do prs.images, a następnie utwórz PictureFrame:
with open("logo.png", "rb") as f:
image_data = f.read()
image = prs.images.add_image(image_data)
slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 50, 50, 200, 150, image)