Exportera matematiska ekvationer från presentationer i Python

Introduktion

Aspose.Slides för Python via .NET gör det möjligt att exportera matematiska ekvationer från presentationer. Till exempel kan du behöva extrahera ekvationer från specifika bilder och återanvända dem i ett annat program eller plattform.

Exportera matematiska ekvationer till LaTeX

Aspose.Slides kan konvertera en PowerPoint‑matematikekvation direkt till LaTeX; en mellanliggande MathML‑fil och en extern konverterare krävs inte. En matematikekvation lagras i en textruta som en MathPortion. Använd MathPortion.math_paragraph för att få ett MathParagraph, och anropa sedan MathParagraph.to_latex. Metoden returnerar en sträng som du kan spara, visa, skicka till en annan applikation eller bearbeta vidare.

Följande exempel granskar varje textruta på varje bild, hittar alla matematiska delar och skriver varje ekvation till en separat .tex‑fil:

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 returnerar alla textrutor som hittas på en bild. Typkontrollen MathPortion separerar äkta redigerbara ekvationer från vanlig text och bilder.

LaTeX‑motorer och dokumentmallar stödjer inte alla samma kommandon, paket eller Unicode‑tecken. Testa den returnerade strängen med den LaTeX‑motor som din applikation använder. Om en symbol eller Office‑Math‑element saknar en lämplig representation i den miljön, ersätt den i den returnerade strängen med ett projektspecifikt kommando eller hoppa över ekvationen och logga problemet för granskning.

Spara matematiska ekvationer som MathML

Även om människor enkelt kan skriva LaTeX, genereras MathML vanligtvis automatiskt av applikationer. Eftersom MathML är XML‑baserat kan program läsa och tolka det på ett pålitligt sätt, vilket gör det till ett vanligt output‑ och utskriftsformat inom många områden.

Följande exempel‑kod visar hur man exporterar en matematikekvation från en presentation till 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)

Vanliga frågor

Vad exporteras exakt till MathML—ett stycke eller ett enskilt formelblock?
Du kan exportera antingen ett helt matematiskt stycke (MathParagraph) eller ett enskilt block (MathBlock) till MathML. Båda typerna erbjuder en metod för att skriva till MathML.

Hur kan jag avgöra att ett objekt på en bild är en matematikformel snarare än vanlig text eller en bild?
En formel finns i en MathPortion och har ett MathParagraph. Bilder och vanliga textdelar utan ett MathParagraph är inte exportbara formler.

Varifrån kommer MathML i en presentation—är det PowerPoint‑specifikt eller en standard?
Exporten riktar sig mot standard‑MathML (XML). Aspose använder Presentation MathML—presentationsdelmängden av standarden—som är brett använd i applikationer och på webben.

Stöds export av formler inuti tabeller, SmartArt, grupper osv.?
Ja, om dessa objekt innehåller textdelar med ett MathParagraph (dvs. äkta PowerPoint‑formler) exporteras de. Om en formel är inbäddad som en bild, exporteras den inte.

Modifierar export till MathML den ursprungliga presentationen?
Nej. Att skriva MathML är en serialisering av formelns innehåll; det ändrar inte presentationsfilen.