Estrazione avanzata di testo da presentazioni in Python

Panoramica

Estrarre il testo dalle presentazioni è un’operazione comune ma essenziale per gli sviluppatori che lavorano con il contenuto delle diapositive. Che tu stia gestendo file Microsoft PowerPoint in formato PPT o PPTX, o presentazioni OpenDocument (ODP), accedere e recuperare i dati testuali può essere fondamentale per analisi, automazione, indicizzazione o migrazione di contenuti.

Questo articolo fornisce una guida completa su come estrarre in modo efficiente testo da vari formati di presentazione, inclusi PPT, PPTX e ODP, utilizzando Aspose.Slides for Python via .NET. Imparerai come iterare sistematicamente gli elementi della presentazione per recuperare con precisione il contenuto testuale di cui hai bisogno.

Estrarre testo da una diapositiva

Aspose.Slides for Python via .NET fornisce lo spazio dei nomi aspose.slides.util che include la classe SlideUtil. Questa classe espone diversi metodi statici sovraccaricati per estrarre tutto il testo da una presentazione o da una diapositiva. Per estrarre il testo da una diapositiva in una presentazione, usa il metodo get_all_text_boxes. Questo metodo accetta come parametro un oggetto di tipo BaseSlide. Quando viene eseguito, il metodo scansiona l’intera diapositiva alla ricerca di testo e restituisce un array di oggetti di tipo TextFrame, preservando qualsiasi formattazione del testo.

Il frammento di codice seguente estrae tutto il testo dalla prima diapositiva della presentazione:

import aspose.slides as slides

slide_index = 0

with slides.Presentation("demo.pptx") as presentation:
    slide = presentation.slides[slide_index]

    text_frames = slides.util.SlideUtil.get_all_text_boxes(slide)

    for text_frame in text_frames:
        for paragraph in text_frame.paragraphs:
            for portion in paragraph.portions:
                portion_text = portion.text
                print(portion_text)

                portion_format = portion.portion_format
                font_height = portion_format.font_height
                print(font_height)

                latin_font = portion_format.latin_font
                if latin_font is not None:
                    font_name = latin_font.font_name
                    print(font_name)

Estrarre testo da una presentazione

Per scansionare il testo dell’intera presentazione, utilizza il metodo statico get_all_text_frames esposto dalla classe SlideUtil. Accetta due parametri:

  1. Prima, un oggetto Presentation che rappresenta una presentazione PowerPoint o OpenDocument da cui verrà estratto il testo.
  2. Secondo, un valore Boolean che indica se le diapositive master devono essere incluse durante la scansione del testo nella presentazione.

Il metodo restituisce un array di oggetti di tipo TextFrame, includendo le informazioni di formattazione del testo. Il codice qui sotto scansiona il testo e i dettagli di formattazione da una presentazione, comprese le diapositive master.

import aspose.slides as slides

with slides.Presentation("demo.pptx") as presentation:
    include_master_slides = True
    text_frames = slides.util.SlideUtil.get_all_text_frames(presentation, include_master_slides)

    for text_frame in text_frames:
        for paragraph in text_frame.paragraphs:
            for portion in paragraph.portions:
                portion_text = portion.text
                print(portion_text)

                portion_format = portion.portion_format
                font_height = portion_format.font_height
                print(font_height)

                latin_font = portion_format.latin_font
                if latin_font is not None:
                    font_name = latin_font.font_name
                    print(font_name)

Estrazione di testo categorizzata e veloce

La classe PresentationFactory fornisce anche metodi per estrarre tutto il testo dalle presentazioni:

PresentationFactory.get_presentation_text(file, mode)
PresentationFactory.get_presentation_text(stream, mode)
PresentationFactory.get_presentation_text(stream, mode, options)

L’argomento enum TextExtractionArrangingMode indica la modalità per organizzare il risultato dell’estrazione del testo e può essere impostato sui seguenti valori:

  • UNARRANGED - Il testo grezzo senza considerare la sua posizione sulla diapositiva.
  • ARRANGED - Il testo è disposto nello stesso ordine in cui appare sulla diapositiva.

La modalità UNARRANGED può essere usata quando la velocità è fondamentale; è più veloce della modalità ARRANGED.

PresentationText rappresenta il testo grezzo estratto dalla presentazione. La sua proprietà slides_text restituisce un array di oggetti di testo delle diapositive. Cada oggetto rappresenta il testo della diapositiva corrispondente e possiede le seguenti proprietà:

  • text - Il testo all’interno delle forme della diapositiva.
  • master_text - Il testo all’interno delle forme della diapositiva master associate a questa diapositiva.
  • layout_text - Il testo all’interno delle forme della diapositiva layout associate a questa diapositiva.
  • notes_text - Il testo all’interno delle forme della diapositiva delle note associate a questa diapositiva.
  • comments_text - Il testo all’interno dei commenti associati a questa diapositiva.
import aspose.slides as slides

presentation_path = "presentation.ppt"
arranging_mode = slides.TextExtractionArrangingMode.UNARRANGED
presentation_text = slides.PresentationFactory.instance.get_presentation_text(presentation_path, arranging_mode)
first_slide_text = presentation_text.slides_text[0]

print(first_slide_text.text)
print(first_slide_text.layout_text)
print(first_slide_text.master_text)
print(first_slide_text.notes_text)
print(first_slide_text.comments_text)

FAQ

Quanto velocemente Aspose.Slides elabora presentazioni di grandi dimensioni durante l’estrazione del testo?

Aspose.Slides è ottimizzato per alte prestazioni e può elaborare anche presentazioni di grandi dimensioni, rendendolo adatto a scenari di elaborazione in tempo reale o in blocco.

Aspose.Slides può estrarre testo da tabelle e grafici all’interno delle presentazioni?

Sì. Aspose.Slides può estrarre testo da molti elementi della diapositiva, incluse tabelle e oggetti correlati a grafici, consentendoti di accedere e analizzare il contenuto testuale nelle strutture di presentazione più comuni.

È necessaria una licenza speciale di Aspose.Slides per estrarre testo dalle presentazioni?

Puoi estrarre il testo usando la versione di prova gratuita di Aspose.Slides, anche se avrà alcune limitazioni, come l’elaborazione limitata a un numero ristretto di diapositive. Per un utilizzo illimitato e per gestire presentazioni di dimensioni maggiori, è consigliato acquistare una licenza completa.