Otwieranie prezentacji w Pythonie
Wprowadzenie
Aspose.Slides for Python via .NET może ładować prezentacje PowerPoint i OpenDocument z plików oraz strumieni. Po załadowaniu prezentacji możesz przeglądać jej strukturę, edytować slajdy, zarządzać zasobami i zapisać ją w pierwotnym lub innym obsługiwanym formacie.
Zachowanie ładowania można dostosować za pomocą klasy LoadOptions. Na przykład możesz podać hasło otwierające, trzymać duże obiekty binarne poza pamięcią lub pominąć osadzone dane binarne.
Otwieranie prezentacji
Po załadowaniu pliku lub strumienia możesz określić jego pierwotny format prezentacji, aby wybrać sposób przetwarzania go przez aplikację.
Aby otworzyć istniejącą prezentację, przekaż jej ścieżkę do konstruktora Presentation. Użyj instrukcji with, aby uchwyty plików, dane tymczasowe i inne zasoby zostały zwolnione niezwłocznie.
Poniższy przykład w Pythonie pokazuje, jak otworzyć prezentację i uzyskać liczbę slajdów:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
print("Slide count: " + str(len(presentation.slides)))
Otwieranie prezentacji chronionych hasłem
Hasło otwierające szyfruje zawartość prezentacji. Aby załadować całą prezentację, przypisz prawidłowe hasło do LoadOptions.password i przekaż opcje do konstruktora Presentation. Ładowanie nie powiedzie się, gdy hasło jest nieobecne lub nieprawidłowe.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.password = "open_password"
with slides.Presentation("encrypted-presentation.pptx", load_options) as presentation:
print("Slide count: " + str(len(presentation.slides)))
W celu wykrywania, weryfikacji i szyfrowania haseł zapoznaj się z artykułem Password-Protect Presentations. Jeśli zaszyfrowana prezentacja została celowo zapisana z publicznymi właściwościami dokumentu, można odczytać te właściwości bez hasła; zobacz Manage Presentation Properties.
Otwieranie dużych prezentacji
LoadOptions.blob_management_options kontroluje sposób, w jaki Aspose.Slides obsługuje duże obiekty binarne, takie jak obrazy, audio i wideo. Możesz utrzymać plik źródłowy w stanie zablokowanym, zezwolić na pliki tymczasowe oraz ograniczyć ilość danych BLOB przechowywanych w pamięci.
Ten kod w Pythonie demonstruje ładowanie dużej prezentacji (na przykład 2 GB):
import aspose.slides as slides
file_path = "large-presentation.pptx"
load_options = slides.LoadOptions()
load_options.blob_management_options.presentation_locking_behavior = slides.PresentationLockingBehavior.KEEP_LOCKED
load_options.blob_management_options.is_temporary_files_allowed = True
load_options.blob_management_options.max_blobs_bytes_in_memory = 10 * 1024 * 1024
with slides.Presentation(file_path, load_options) as presentation:
presentation.slides[0].name = "Large presentation"
presentation.save("large-presentation-copy.pptx", slides.export.SaveFormat.PPTX)
Note
PrzyPresentationLockingBehavior.KEEP_LOCKED plik źródłowy pozostaje zablokowany, aż obiekt Presentation zostanie zwolniony. Nie przenoś, nie nadpisuj ani nie usuwaj pliku źródłowego, dopóki ten obiekt istnieje.
Aspose.Slides może kopiować zawartość strumienia wejściowego podczas jego ładowania. W przypadku dużych prezentacji ścieżka do pliku jest zazwyczaj bardziej wydajna niż strumień. Zobacz Zarządzaj BLOB‑ami po dodatkowe opcje przechowywania i zarządzania pamięcią.
Ładowanie prezentacji bez osadzonych obiektów binarnych
Prezentacja może zawierać osadzone dane binarne, które aplikacja nie potrzebuje lub nie chce zachowywać. Przykłady obejmują:
- projekty VBA, dostępne poprzez Presentation.vba_project;
- osadzone dane OLE, dostępne poprzez OleEmbeddedDataInfo.embedded_file_data;
- dane kontroli ActiveX, dostępne poprzez Control.active_x_control_binary.
Ustaw LoadOptions.delete_embedded_binary_objects na True, aby usunąć te dane binarne podczas ładowania. Zapisz załadowaną prezentację, aby zachować wyczyszczony wynik.
Ta opcja zmniejsza ryzyko niechcianych osadzonych ładunków, ale nie jest pełnym systemem wykrywania złośliwego oprogramowania ani sanitizacji treści.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.delete_embedded_binary_objects = True
with slides.Presentation("presentation-with-embedded-data.pptx", load_options) as presentation:
presentation.save("presentation-without-embedded-data.pptx", slides.export.SaveFormat.PPTX)
FAQ
Jak mogę stwierdzić, że plik jest uszkodzony i nie może zostać otwarty?
Aspose.Slides zgłasza wyjątek parsowania lub formatu podczas ładowania. Obsłuż tę awarię osobno od błędu nieprawidłowego hasła, aby aplikacja mogła dokładnie poinformować o przyczynie.
Co się stanie, jeśli brakuje wymaganych czcionek?
Prezentacja może się nadal ładować, ale renderowanie i eksport mogą zastępować czcionki. Możesz skonfiguruj podstawianie czcionek lub zapewnij własne czcionki, aby wynik był bardziej przewidywalny.
Czy ładowanie prezentacji powoduje również ładowanie jej osadzonych mediów?
Osadzone dźwięki i wideo stają się dostępne poprzez model obiektowy prezentacji. Zasoby zewnętrzne są rozwiązywane zgodnie z domyślnym zachowaniem ładowania zasobów i mogą być niedostępne, jeśli ich lokalizacji nie da się uzyskać.