Esporta equazioni matematiche dalle presentazioni in Python

Introduzione

Aspose.Slides per Python tramite .NET consente di esportare equazioni matematiche dalle presentazioni. Ad esempio, potresti dover estrarre le equazioni da diapositive specifiche e riutilizzarle in un altro programma o piattaforma.

Esporta equazioni matematiche in LaTeX

Aspose.Slides può convertire direttamente un’equazione matematica di PowerPoint in LaTeX; non è necessario un file MathML intermedio né un convertitore esterno. Un’equazione matematica è memorizzata in una casella di testo come MathPortion. Utilizza MathPortion.math_paragraph per ottenere un MathParagraph, e poi chiama MathParagraph.to_latex. Il metodo restituisce una stringa che è possibile salvare, visualizzare, inviare a un’altra applicazione o elaborare ulteriormente.

Il seguente esempio esamina tutte le caselle di testo in ogni diapositiva, individua tutte le porzioni matematiche e scrive ogni equazione in un file .tex separato:

import aspose.slides as slides

with slides.Presentation("equations.pptx") as presentation:
    for slide_number, slide in enumerate(presentation.slides, start=1):
        equation_number = 1
        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:
                    if not isinstance(portion, slides.mathtext.MathPortion):
                        continue

                    math_paragraph = portion.math_paragraph
                    latex_path = f"slide_{slide_number}_equation_{equation_number}.tex"

                    latex_text = math_paragraph.to_latex()
                    with open(latex_path, "w", encoding="utf-8") as latex_file:
                        latex_file.write(latex_text)
                    equation_number += 1

SlideUtil.get_all_text_boxes restituisce tutte le caselle di testo trovate in una diapositiva. Il controllo del tipo MathPortion separa le vere equazioni modificabili dal testo e dalle immagini ordinarie.

I motori LaTeX e i modelli di documento non supportano tutti gli stessi comandi, pacchetti o caratteri Unicode. Verifica la stringa restituita con il motore LaTeX utilizzato dalla tua applicazione. Se un simbolo o un elemento Office Math non ha una rappresentazione adeguata in quell’ambiente, sostituiscilo nella stringa restituita con un comando specifico del progetto oppure ignora l’equazione e registra il problema per la revisione.

Salva le equazioni matematiche come MathML

Sebbene gli esseri umani possano scrivere LaTeX con facilità, MathML viene normalmente generato automaticamente dalle applicazioni. Poiché MathML è basato su XML, i programmi possono leggerlo e analizzarlo in modo affidabile, perciò è comunemente usato come formato di output e stampa in molti settori.

Il seguente esempio di codice mostra come esportare un’equazione matematica da una presentazione a MathML:

import aspose.slides as slides
import aspose.slides.mathtext as math

with slides.Presentation() as presentation:
    slide = presentation.slides[0]

    auto_shape = slide.shapes.add_math_shape(0, 0, 500, 50)
    math_paragraph = auto_shape.text_frame.paragraphs[0].portions[0].math_paragraph

    math_paragraph.add(
        math.MathematicalText("a").
            set_superscript("2").
            join("+").
            join(math.MathematicalText("b").set_superscript("2")).
            join("=").
            join(math.MathematicalText("c").set_superscript("2")))

    with open("mathml.xml", "wb") as file_stream:
        math_paragraph.write_as_math_ml(file_stream)

FAQ

Cosa viene esattamente esportato in MathML—un paragrafo o un blocco formula individuale?

È possibile esportare sia un intero paragrafo matematico (MathParagraph) sia un blocco individuale (MathBlock) in MathML. Entrambi i tipi forniscono un metodo per scrivere in MathML.

Come posso capire se un oggetto su una diapositiva è una formula matematica anziché testo normale o un’immagine?

Una formula risiede in una MathPortion e possiede un MathParagraph. Le immagini e le porzioni di testo normali senza un MathParagraph non sono formule esportabili.

Da dove proviene il MathML in una presentazione—è specifico di PowerPoint o è uno standard?

L’esportazione punta al MathML standard (XML). Aspose utilizza il Presentation MathML—il sottoinsieme di presentazione dello standard—che è ampiamente usato in molte applicazioni e sul web.

L’esportazione di formule all’interno di tabelle, SmartArt, gruppi, ecc. è supportata?

Sì, se quegli oggetti contengono porzioni di testo con un MathParagraph (cioè vere formule PowerPoint), vengono esportati. Se una formula è incorporata come immagine, non lo è.

L’esportazione in MathML modifica la presentazione originale?

No. La scrittura del MathML è una serializzazione del contenuto della formula; non modifica il file della presentazione.