数学文本
Contents
[
Hide
]
演示如何使用 Aspose.Slides for PHP via Java 处理数学文本形状并格式化公式。
添加数学文本
创建一个包含分数和勾股定理公式的数学形状。
function addMathText() {
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// 向幻灯片添加一个数学形状。
$mathShape = $slide->getShapes()->addMathShape(0, 0, 720, 150);
// 访问数学段落。
$paragraph = $mathShape->getTextFrame()->getParagraphs()->get_Item(0);
$portion = $paragraph->getPortions()->get_Item(0);
$mathParagraph = $portion->getMathParagraph();
// 添加一个简单分数:x / y。
$fraction = (new MathematicalText("x"))->divide("y");
$mathParagraph->add(new MathBlock($fraction));
// 添加公式:c² = a² + b²。
$mathBlock = (new MathematicalText("c"))
- >setSuperscript("2")
- >join("=")
- >join((new MathematicalText("a"))->setSuperscript("2"))
- >join("+")
- >join((new MathematicalText("b"))->setSuperscript("2"));
$mathParagraph->add($mathBlock);
$presentation->save("math_text.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
}
访问数学文本
定位幻灯片上包含数学段落的形状。
function accessMathText() {
$presentation = new Presentation("math_text.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
// 查找第一个包含数学段落的形状。
$mathShape = null;
$shapeCount = java_values($slide->getShapes()->size());
for ($shapeIndex = 0; $shapeIndex < $shapeCount; $shapeIndex++) {
$shape = $slide->getShapes()->get_Item($shapeIndex);
if (java_instanceof($shape, new JavaClass("com.aspose.slides.AutoShape"))) {
$textFrame = $shape->getTextFrame();
if ($textFrame !== null) {
$paragraphCount = java_values($textFrame->getParagraphs()->getCount());
for ($paragraphIndex = 0; $paragraphIndex < $paragraphCount; $paragraphIndex++) {
$paragraph = $textFrame->getParagraphs()->get_Item($paragraphIndex);
$portionCount = java_values($paragraph->getPortions()->getCount());
for ($portionIndex = 0; $portionIndex < $portionCount; $portionIndex++) {
$portion = $paragraph->getPortions()->get_Item($portionIndex);
if (java_instanceof($portion, new JavaClass("com.aspose.slides.MathPortion"))) {
$mathShape = $shape;
break 3;
}
}
}
}
}
}
} finally {
$presentation->dispose();
}
}
删除数学文本
从幻灯片中删除数学形状。
function removeMathText() {
$presentation = new Presentation("math_text.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
// 假设幻灯片上的第一个形状是数学形状。
$mathShape = $slide->getShapes()->get_Item(0);
// 从幻灯片中移除数学形状。
$slide->getShapes()->remove($mathShape);
$presentation->save("math_text_removed.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
}
格式化数学文本
为数学部分设置字体属性。
function formatMathText() {
$presentation = new Presentation("math_text.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
// 假设幻灯片上的第一个形状是数学形状。
$mathShape = $slide->getShapes()->get_Item(0);
$paragraph = $mathShape->getTextFrame()->getParagraphs()->get_Item(0);
$portion = $paragraph->getPortions()->get_Item(0);
$portion->getPortionFormat()->setFontHeight(20);
$presentation->save("math_text_formatted.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
}