إضافة معادلات رياضية إلى عروض PowerPoint التقديمية في PHP
نظرة عامة
PowerPoint يخزّن المعادلات بصيغة Office Math Markup Language (OMML). باستخدام Aspose.Slides للـ PHP عبر Java، يمكنك إنشاء نفس نوع المحتوى الرياضي برمجيًا: الكسور، الجذور، الدوال، الحدود، عوامل N-ary، المصفوفات، المصفوفات، والكتل الرياضية المنسقة.
في PowerPoint، يقوم المستخدمون عادةً بإضافة المعادلات من إدراج > معادلة:

النتيجة هي نص رياضي قابل للتحرير على الشريحة:

يبني Aspose.Slides ذلك النص الرياضي من خلال ثلاثة كائنات رئيسية:
- شكل رياضي، يتم إنشاؤه باستخدام addMathShape، هو الشكل الذي يحتوي على المعادلة.
- MathPortion يخزن المحتوى الرياضي داخل إطار نص الشكل.
- MathParagraph يحتوي على كائن واحد أو أكثر من MathBlock
تستخدم معظم الأمثلة أدناه MathematicalText والطرق المتسلسلة من MathElementBase لجعل الشيفرة قصيرة وقابلة للقراءة.
لِحالات تصدير MathML، راجع Export Math Equations from Presentations in PHP via Java.
إنشاء معادلة
هذا المثال ينشئ شكلاً رياضيًا ويضيف مبرهنة فيثاغورس:

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$equation = (new MathematicalText("c"))
- >setSuperscript("2")
- >join("=")
- >join((new MathematicalText("a"))->setSuperscript("2"))
- >join("+")
- >join((new MathematicalText("b"))->setSuperscript("2"));
$mathParagraph->add($equation);
$presentation->save("pythagorean-theorem.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
addMathShape ينشئ شكلاً يحتوي بالفعل على فقرة رياضية. احصل على أول MathPortion، استخرج MathParagraph الخاص به، وأضف كتل رياضية أو عناصر رياضية إليه.
إضافة كسور
استخدم divide لإنشاء كسر. يمكنك اختيار نمط الكسر عبر MathFractionTypes.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$fraction = (new MathematicalText("1"))
- >divide("x", MathFractionTypes::Skewed);
$mathParagraph->add(new MathBlock($fraction));
$presentation->save("fraction.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
لإنشاء كسر مكدس، استخدم MathFractionTypes::Bar:
$stackedFraction = (new MathematicalText("x + 1"))->divide("y - 1", MathFractionTypes::Bar);
إضافة جذور
استخدم radical لإنشاء جذر تربيعي، جذر مكعب، أو أي جذر آخر. يصبح العنصر الحالي هو الأساس، وتصبح الوسيطة هي الدرجة.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$radical = (new MathematicalText("x"))
- >radical("n");
$mathParagraph->add(new MathBlock($radical));
$presentation->save("radical.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
إضافة دوال وحدود
استخدم asArgumentOfFunction أو function للدوال مثل sin(x), log(x), أو أسماء دوال مخصصة. للحدود، ضع lim داخل MathLimit أو استخدم setLowerLimit.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$limit = (new MathematicalText("lim"))
- >setLowerLimit("x\u{2192}\u{221E}")
- >function("x");
$mathParagraph->add(new MathBlock($limit));
$presentation->save("functions-and-limits.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
لإعطاء اسم دالة مخصص، اجعل اسم الدالة هو العنصر الحالي:
$customFunction = (new MathematicalText("f"))->function("x + 1");
إضافة عوامل N-ary وتكاملات
استخدم nary للجمع، الاتحاد، التقاطع، وغيرها من العوامل الكبيرة. استخدم integral للتكاملات. كلا الطريقتين تسمحان بتعيين الحدود السفلية والعلوية.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$summationBase = (new MathematicalText("x"))
- >setSuperscript("k")
- >join((new MathematicalText("a"))->setSuperscript("n-k"));
$summation = $summationBase->nary(MathNaryOperatorTypes::Summation, "k=0", "n");
$mathParagraph->add(new MathBlock($summation));
$presentation->save("nary-operators.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
عوامل N-ary تُستخدم للعمليات الكبيرة ذات الحدود الاختيارية. العوامل البسيطة مثل +, -, و= عادةً ما تُضاف كـ MathematicalText وتُدمج في التعبير.
لإنشاء تكامل، استخدم integral:
$integralBase = (new MathematicalText("x"))->join((new MathematicalText("dx"))->toBox());
$integral = $integralBase->integral(MathIntegralTypes::Simple, "0", "1");
إضافة مصفوفات
استخدم MathMatrix للصفوف والأعمدة. المصفوفات لا تتضمن الأقواس بشكل افتراضي، لذا احط المصفوفة بالأقواس أو الأقواس المربعة أو الأقواس المعقوفة حسب الحاجة.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$matrix = new MathMatrix(2, 3);
$matrix->set_Item(0, 0, new MathematicalText("1"));
$matrix->set_Item(0, 1, new MathematicalText("x"));
$matrix->set_Item(1, 0, new MathematicalText("x"));
$matrix->set_Item(1, 1, new MathematicalText("2"));
$matrix->set_Item(1, 2, new MathematicalText("y"));
$mathParagraph->add(new MathBlock($matrix));
$presentation->save("matrix.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
إضافة مصفوفات المعادلات
استخدم toMathArray عندما تحتاج إلى معادلات محاذاة أو مجموعة رأسية من التعبيرات.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 140);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$equationArray = (new MathematicalText("x"))
- >join("y")
- >toMathArray();
$mathParagraph->add(new MathBlock($equationArray));
$presentation->save("equation-array.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
إضافة دوال مثلثية
استخدم asArgumentOfFunction عندما يكون الوسيط هو العنصر الحالي ويكون اسم الدالة معروفًا.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$cosine = (new MathematicalText("2x"))
- >asArgumentOfFunction(MathFunctionsOfOneArgument::Cos);
$mathParagraph->add(new MathBlock($cosine));
$presentation->save("trigonometric-function.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
إضافة مؤشرات أسفلية وعليا
استخدم مساعدي المؤشر السفلي والعلوي للفهارس والقوى. عندما يجب أن تظهر الفهارس على الجانب الأيسر للأساس، استخدم setSubSuperscriptOnTheLeft.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$scripts = (new MathematicalText("Y"))
- >setSubSuperscriptOnTheLeft("1", "n");
$mathParagraph->add(new MathBlock($scripts));
$presentation->save("subscript-superscript.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
إضافة محددات
استخدم enclose لوضع تعبير داخل محددات. يمكنك أيضًا تعيين حرف فاصل لتعبيرات محددات تحتوي على عدة عناصر.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$delimiter = (new MathematicalText("x"))
- >join("y")
- >join("z")
- >enclose(new Java("java.lang.Character", "<"), new Java("java.lang.Character", ">"));
$delimiter->setSeparatorCharacter(new Java("java.lang.Character", "|"));
$mathParagraph->add(new MathBlock($delimiter));
$presentation->save("delimiters.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
إضافة صندوق حدود
استخدم toBorderBox عندما يجب تأطير المعادلة نفسها.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$boxedEquation = (new MathematicalText("a"))
- >setSuperscript("2")
- >join("=")
- >join((new MathematicalText("b"))->setSuperscript("2"))
- >join("+")
- >join((new MathematicalText("c"))->setSuperscript("2"))
- >toBorderBox();
$mathParagraph->add(new MathBlock($boxedEquation));
$presentation->save("border-box.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
تجميع المصطلحات
استخدم group لوضع حرف تجميع فوق أو أسفل تعبير. أضف حدًا لتسمية المصطلحات المجمعّة.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 120);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$grouped = (new MathematicalText("x + y"))
- >group(new Java("java.lang.Character", "\u{23DF}"), MathTopBotPositions::Bottom, MathTopBotPositions::Top)
- >setLowerLimit("any text");
$mathParagraph->add(new MathBlock($grouped));
$presentation->save("grouped-terms.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
تنسيق عناصر الرياضيات
استخدم مساعدي التنسيق فقط حيث يوضحون الصيغة. على سبيل المثال، overbar يضع شريطًا فوق عنصر رياضي.

$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
$mathShape = $slide->getShapes()->addMathShape(20, 20, 700, 100);
$mathParagraph = $mathShape->getTextFrame()->getParagraphs()
- >get_Item(0)->getPortions()->get_Item(0)->getMathParagraph();
$overbar = (new MathematicalText("ABC"))->overbar();
$mathParagraph->add(new MathBlock($overbar));
$presentation->save("overbar.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($presentation)) {
$presentation->dispose();
}
}
مرجع سريع
| المهمة | الواجهة البرمجية الرئيسية |
|---|---|
| إنشاء نص رياضي | MathematicalText |
| دمج العناصر | join |
| إنشاء كسور | divide |
| إضافة أسفلية أو عليا | setSuperscript, setSubscript |
| إضافة دوال | function, asArgumentOfFunction |
| إضافة جذور | radical |
| إضافة حدود | setLowerLimit, setUpperLimit |
| إضافة مؤشرات على الجانب الأيسر | setSubSuperscriptOnTheLeft |
| إضافة جمع وتكامل | nary, integral |
| إضافة مصفوفات | MathMatrix |
| إضافة مصفوفات المعادلات | toMathArray |
| إضافة محددات | enclose |
| إضافة أشرطة وحدود | overbar, toBorderBox |
| تجميع المصطلحات | group |
الأسئلة الشائعة
هل يمكنني تعديل معادلة PowerPoint موجودة؟
نعم. افتح العرض التقديمي، وابحث عن الشكل الذي يحتوي على MathPortion، احصل على MathParagraph الخاص به، وقم بتحديث كتل الرياضيات في تلك الفقرة.
هل تُحفظ المعادلات كرياضيات PowerPoint قابلة للتحرير؟
نعم. عند الحفظ إلى PPTX، تقوم Aspose.Slides بكتابة المعادلة ك محتوى رياضي Office قابل للتحرير.
هل يمكنني تصدير المعادلات إلى LaTeX؟
نعم. احصل على MathParagraph للمعادلة من MathPortion، واستدعِ MathParagraph::toLatex لتصديره مباشرة. للحصول على مثال كامل، راجع Export Math Equations from Presentations in PHP via Java.