Aprire presentazioni in Python
Introduzione
Aspose.Slides for Python via .NET può caricare presentazioni PowerPoint e OpenDocument da file e stream. Dopo che una presentazione è stata caricata, è possibile ispezionarne la struttura, modificare le diapositive, gestire le risorse e salvarla nel formato originale o in un altro formato supportato.
Il comportamento di caricamento può essere personalizzato tramite la classe LoadOptions. Ad esempio, è possibile fornire una password di apertura, mantenere grandi oggetti binari fuori dalla memoria o omettere i dati binari incorporati.
Aprire le presentazioni
Dopo aver caricato un file o uno stream, è possibile determinare il formato originale della presentazione per scegliere come l’applicazione lo elabora.
Per aprire una presentazione esistente, passare il percorso del file al costruttore Presentation. Utilizzare un’istruzione with affinché i handle dei file, i dati temporanei e altre risorse vengano rilasciati tempestivamente.
Il seguente esempio Python mostra come aprire una presentazione e ottenere il numero di diapositive:
import aspose.slides as slides
with slides.Presentation("sample.pptx") as presentation:
print("Slide count: " + str(len(presentation.slides)))
Aprire presentazioni protette da password
Una password di apertura crittografa il contenuto della presentazione. Per caricare l’intera presentazione, assegnare la password corretta a LoadOptions.password e passare le opzioni al costruttore Presentation. Il caricamento fallisce quando la password è mancante o errata.
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)))
Per il rilevamento della password, la convalida e i flussi di lavoro di crittografia, vedere Password-Protect Presentations. Se una presentazione crittata è stata salvata deliberatamente con proprietà del documento pubbliche, tali proprietà possono essere lette senza password; vedere Manage Presentation Properties.
Aprire presentazioni di grandi dimensioni
LoadOptions.blob_management_options controlla come Aspose.Slides gestisce oggetti binari di grandi dimensioni come immagini, audio e video. È possibile mantenere il file sorgente bloccato, consentire file temporanei e limitare la quantità di dati BLOB conservati in memoria.
Questo codice Python dimostra il caricamento di una presentazione di grandi dimensioni (ad esempio, 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
Con PresentationLockingBehavior.KEEP_LOCKED, il file sorgente rimane bloccato fino a quando l’oggetto Presentation non viene eliminato. Non spostare, sovrascrivere o eliminare il file sorgente mentre quell’oggetto è attivo.
Aspose.Slides può copiare il contenuto di uno stream di input durante il caricamento. Per presentazioni di grandi dimensioni, un percorso file è generalmente più efficiente di uno stream. Vedere Manage BLOBs per ulteriori opzioni di archiviazione e gestione della memoria.
Caricare presentazioni senza oggetti binari incorporati
Una presentazione può contenere dati binari incorporati che un’applicazione non necessita o non vuole conservare. Esempi includono:
- progetti VBA, disponibili tramite Presentation.vba_project;
- dati OLE incorporati, disponibili tramite OleEmbeddedDataInfo.embedded_file_data;
- dati di controllo ActiveX, disponibili tramite Control.active_x_control_binary.
Impostare LoadOptions.delete_embedded_binary_objects su True per rimuovere questi dati binari durante il caricamento. Salvare la presentazione caricata per conservare il risultato sanificato.
Questa opzione riduce l’esposizione a payload incorporati indesiderati, ma non è un sistema completo di rilevamento malware o di sanificazione dei contenuti.
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
Come posso capire se un file è corrotto e non può essere aperto?
Aspose.Slides genera un’eccezione di parsing o di formato durante il caricamento. Gestire tale errore separatamente da un errore di password errata in modo che l’applicazione possa segnalare correttamente la causa.
Cosa succede se mancano i font richiesti?
La presentazione può ancora essere caricata, ma il rendering e l’esportazione potrebbero sostituire i font. È possibile configurare la sostituzione dei font o fornire font personalizzati per rendere l’output più prevedibile.
Il caricamento di una presentazione carica anche i media incorporati?
Audio e video incorporati diventano disponibili tramite il modello di oggetti della presentazione. Le risorse esterne vengono risolte secondo il comportamento predefinito di caricamento delle risorse e potrebbero non essere disponibili se le loro posizioni non possono essere raggiunte.