ส่งออกสมการคณิตศาสตร์จากงานนำเสนอใน .NET
เบื้องต้น
Aspose.Slides for .NET ให้คุณส่งออกสมการคณิตศาสตร์จากงานนำเสนอ ตัวอย่างเช่น คุณอาจต้องการดึงสมการคณิตศาสตร์บนสไลด์ (จากงานนำเสนอเฉพาะ) และใช้ในโปรแกรมหรือแพลตฟอร์มอื่น
ส่งออกสมการคณิตศาสตร์เป็น LaTeX
Aspose.Slides สามารถแปลงสมการคณิตศาสตร์ใน PowerPoint ไปเป็น LaTeX ได้โดยตรง; ไม่จำเป็นต้องใช้ไฟล์ MathML ชั้นกลางหรือเครื่องแปลงภายนอก สมการคณิตศาสตร์ถูกจัดเก็บในกรอบข้อความเป็น MathPortion. ใช้ MathPortion.MathParagraph เพื่อรับ IMathParagraph, แล้วเรียก IMathParagraph.ToLatex. วิธีนี้จะคืนค่ารูปแบบ string ที่คุณสามารถบันทึก, แสดง, ส่งไปยังแอปพลิเคชันอื่น หรือประมวลผลต่อได้
ตัวอย่างต่อไปนี้จะตรวจสอบทุกกรอบข้อความบนแต่ละสไลด์, ค้นหาส่วนคณิตศาสตร์ทั้งหมด, และเขียนแต่ละสมการลงในไฟล์ .tex แยกไฟล์:
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 คืนค่ากรอบข้อความทั้งหมดที่พบบนสไลด์ การตรวจสอบชนิด MathPortion แยกสมการที่สามารถแก้ไขได้จริงออกจากข้อความและรูปภาพทั่วไป
เครื่องยนต์ LaTeX และเทมเพลตเอกสารไม่ได้รองรับคำสั่ง, แพคเกจ หรืออักขระ Unicode ทั้งหมดเดียวกัน ทดสอบสตริงที่คืนค่าด้วยเครื่องยนต์ LaTeX ที่แอปพลิเคชันของคุณใช้ หากสัญลักษณ์หรือองค์ประกอบ Office Math ไม่มีการแสดงผลที่เหมาะสมในสภาพแวดล้อมนั้น ให้แทนที่ในสตริงที่คืนค่าด้วยคำสั่งเฉพาะโครงการหรือข้ามสมการและบันทึกปัญหาเพื่อการตรวจสอบต่อไป
บันทึกสมการคณิตศาสตร์เป็น MathML
แม้ว่ามนุษย์จะเขียนโค้ดสำหรับบางรูปแบบสมการอย่าง LaTeX ได้ง่าย แต่การเขียนโค้ดสำหรับ MathML กลับทำได้ยาก เนื่องจาก MathML ถูกออกแบบให้สร้างโดยอัตโนมัติโดยแอปพลิเคชัน โปรแกรมสามารถอ่านและแยกวิเคราะห์ MathML ได้ง่ายเนื่องจากโค้ดอยู่ในรูป XML ดังนั้น MathML จึงถูกใช้เป็นรูปแบบการส่งออกและการพิมพ์อย่างทั่วไปในหลายสาขา
ตัวอย่างโค้ดนี้แสดงวิธีส่งออกสมการคณิตศาสตร์จากงานนำเสนอเป็น MathML:
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);
}
คำถามที่พบบ่อย
อะไรที่ถูกส่งออกเป็น MathML—ย่อหน้าหรือบล็อกสูตรแยกส่วน?
คุณสามารถส่งออกทั้งย่อหน้าคณิตศาสตร์ทั้งหมด (MathParagraph) หรือบล็อกสูตรแยกส่วน (MathBlock) ไปเป็น MathML ทั้งสองประเภทมีเมธอดสำหรับเขียนเป็น MathML
ฉันจะบ่งบอกได้อย่างไรวัตถุบนสไลด์เป็นสูตรคณิตศาสตร์ไม่ใช่ข้อความหรือรูปภาพปกติ?
สูตรจะอยู่ใน MathPortion และมี MathParagraph. รูปภาพและข้อความทั่วไปที่ไม่มี MathParagraph จะไม่สามารถส่งออกเป็นสูตรได้
MathML มาจากไหนในงานนำเสนอ—เป็นของ PowerPoint อย่างเฉพาะหรือเป็นมาตรฐาน?
การส่งออกมุ่งเป้าไปยัง MathML มาตรฐาน (XML) Aspose ใช้ Presentation MathML—ส่วนการนำเสนอของมาตรฐาน—ซึ่งได้รับการใช้อย่างกว้างขวางในแอปพลิเคชันและบนเว็บ
การส่งออกสูตรภายในตาราง, SmartArt, กลุ่ม ฯลฯ รองรับหรือไม่?
ใช่ หากวัตถุเหล่านั้นมีส่วนข้อความที่มี MathParagraph (คือสูตร PowerPoint ของจริง) จะถูกส่งออก หากสูตรฝังเป็นรูปภาพจะไม่ถูกส่งออก
การส่งออกเป็น MathML ทำให้ไฟล์งานนำเสนอเดิมเปลี่ยนแปลงหรือไม่?
ไม่ การเขียน MathML เป็นการจัดลำดับข้อมูลของสูตรเท่านั้น ไม่ได้แก้ไขไฟล์งานนำเสนอ.