Sunumlardan .NET'te Matematik Denklemlerini Dışa Aktarma

Introduction

Aspose.Slides for .NET, sunumlardan matematik denklemlerini dışa aktarmanıza olanak tanır. Örneğin, slaytlardaki (belirli bir sunumdan) matematik denklemlerini çıkarmanız ve bunları başka bir programda veya platformda kullanmanız gerekebilir.

Export Math Equations to LaTeX

Aspose.Slides, bir PowerPoint matematik denklemını doğrudan LaTeX’e dönüştürebilir; ara bir MathML dosyası ya da harici bir dönüştürücüye gerek yoktur. Bir matematik denklemi, bir metin çerçevesinde MathPortion olarak depolanır. Bir IMathParagraph elde etmek için MathPortion.MathParagraph kullanın ve ardından IMathParagraph.ToLatex metodunu çağırın. Metod, kaydedebileceğiniz, görüntüleyebileceğiniz, başka bir uygulamaya gönderebileceğiniz veya daha fazla işleyebileceğiniz bir dize döndürür.

Aşağıdaki örnek, her slayttaki tüm metin çerçevelerini inceler, tüm matematik bölümlerini bulur ve her denklemi ayrı bir .tex dosyasına yazar:

using var presentation = new Presentation("equations.pptx");

for (var slideIndex = 0; slideIndex < presentation.Slides.Count; slideIndex++)
{
    var slide = presentation.Slides[slideIndex];
    var slideNumber = slideIndex + 1;
    var equationNumber = 1;
    var textFrames = SlideUtil.GetAllTextBoxes(slide);

    foreach (var textFrame in textFrames)
    {
        foreach (var paragraph in textFrame.Paragraphs)
        {
            foreach (var portion in paragraph.Portions)
            {
                if (portion is not MathPortion mathPortion)
                    continue;

                IMathParagraph mathParagraph = mathPortion.MathParagraph;
                var latexPath = $"slide_{slideNumber}_equation_{equationNumber}.tex";

                var latexText = mathParagraph.ToLatex();
                File.WriteAllText(latexPath, latexText);
                equationNumber++;
            }
        }
    }
}

SlideUtil.GetAllTextBoxes bir slaytta bulunan tüm metin çerçevelerini döndürür. MathPortion tür kontrolü, gerçek düzenlenebilir denklemleri sıradan metin ve görüntülerden ayırır.

LaTeX motorları ve belge şablonları aynı komutları, paketleri ya da Unicode karakterlerini desteklemez. Dönen dizeyi uygulamanızın kullandığı LaTeX motoruyla test edin. Eğer bir simge veya Office Math öğesi o ortamda uygun bir temsil bulamazsa, dönen dizede onu proje‑özel bir komutla değiştirin ya da denklemi atlayıp sorunu inceleme için kaydedin.

Save Math Equations as MathML

İnsanlar LaTeX gibi bazı denklem formatlarının kodunu kolayca yazabilirken, MathML kodunu yazmakta zorlanırlar çünkü MathML, uygulamalar tarafından otomatik olarak üretilmek üzere tasarlanmıştır. Programlar MathML’i kodunun XML olması nedeniyle kolayca okur ve ayrıştırır; bu yüzden MathML birçok alanda çıktı ve baskı formatı olarak yaygın şekilde kullanılır.

Bu örnek kod, bir sunumdan matematik denklemini MathML’e nasıl dışa aktaracağınızı gösterir:

using (Presentation pres = new Presentation())
        {
            var autoShape = pres.Slides[0].Shapes.AddMathShape(0, 0, 500, 50);
            var mathParagraph = ((MathPortion)autoShape.TextFrame.Paragraphs[0].Portions[0]).MathParagraph;

            mathParagraph.Add(new MathematicalText("a").SetSuperscript("2").Join("+").Join(new MathematicalText("b").SetSuperscript("2")).Join("=").Join(new MathematicalText("c").SetSuperscript("2")));

       using (Stream stream = new FileStream("mathml.xml", FileMode.Create))
                mathParagraph.WriteAsMathMl(stream);
        }

SSS

MathML’e tam olarak ne dışa aktarılıyor—bir paragraf mı yoksa ayrı bir formül bloğu mu?

Tam bir matematik paragrafını (MathParagraph) veya ayrı bir bloğu (MathBlock) MathML’e dışa aktarabilirsiniz. Her iki tür de MathML’e yazma yöntemi sağlar.

Bir slayttaki nesnenin normal metin veya görüntü yerine bir matematik formülü olduğunu nasıl anlayabilirim?

Bir formül, bir MathPortion içinde bulunur ve bir MathParagraph içerir. MathParagraph olmayan görüntüler ve normal metin bölümleri dışa aktarılabilir formül değildir.

MathML bir sunumda nereden geliyor—PowerPoint’e özgü mü yoksa bir standart mı?

Dışa aktarma, standart MathML (XML) hedefler. Aspose, standardın sunum alt kümesi olan Presentation MathML’i kullanır; bu, uygulamalar ve web arasında yaygın olarak kullanılmaktadır.

Tablolar, SmartArt, gruplar vb. içindeki formüllerin dışa aktarılması destekleniyor mu?

Evet, bu nesneler bir MathParagraph içeren metin bölümleri (yani gerçek PowerPoint formülleri) içeriyorsa dışa aktarılırlar. Formül bir görüntü olarak yerleştirilmişse dışa aktarılmaz.

MathML’e dışa aktarma orijinal sunumu değiştirir mi?

Hayır. MathML yazma, formülün içeriğinin bir serileştirilmesidir; sunum dosyasını değiştirmez.