在当今世界,演示文稿在商务会议和学术项目中都扮演着至关重要的角色,是向听众阐述我们愿景的工具。在我们之前的一篇文章中,我们介绍了一个宏,它可以用图表替换每张幻灯片上的形状。今天,我们将更上一层楼,使用一个新的宏来修改演示文稿中每张幻灯片的字体家族和大小。

构建宏
首先,我们使用 Api.GetPresentation() 方法获取一个演示对象,并将其赋值给变量 oPresentation:
var oPresentation = Api.GetPresentation();
然后,循环使用 slideIndex 变量遍历演示文稿中的每张幻灯片。条件确保循环继续进行,直到处理完所有幻灯片:
for (var slideIndex = 0; slideIndex < oPresentation.GetSlidesCount(); slideIndex++) {
}
在循环内部,我们使用 oPresentation.GetSlideByIndex(slideIndex) 方法获取特定幻灯片,并将其赋值给变量 oSlide:
var oSlide = oPresentation.GetSlideByIndex(slideIndex);
然后,我们检索当前幻灯片 oSlide 上的所有形状,并将其存储到名为 aShape 的数组中:
var aShape = oSlide.GetAllShapes();
另一个循环使用 shapeIndex 变量遍历当前幻灯片上的每个形状:
for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) {
}
在形状循环内部,我们使用 aShape[shapeIndex].GetDocContent() 获取当前形状的文档内容,并将其存储到变量 content 中:
var content = aShape[shapeIndex].GetDocContent();
在进行进一步操作前,我们会检查内容是否有效(即不是空值或未定义):
if (content) {
}
如果是有效的,我们将使用 content.GetElementsCount() 获得内容中元素的数量,并将其存储到 count 变量中:
var count = content.GetElementsCount();
第三个循环使用 elementIndex 变量遍历内容中的每个元素:
for (var elementIndex = 0; elementIndex < count; elementIndex++) {
}
在循环内部,我们使用 content.GetElement(elementIndex) 获取当前元素:
var element = content.GetElement(elementIndex);
我们检查元素是否有效,以避免可能出现的错误:
if (element) {
}
如果元素有效,我们将设置字体大小和字体族:
element.SetFontSize(10);
element.SetFontFamily("Comic Sans");
整个宏如下所示:
(function()
{
var oPresentation = Api.GetPresentation();
for (var slideIndex = 0; slideIndex < oPresentation.GetSlidesCount(); slideIndex++) {
var oSlide = oPresentation.GetSlideByIndex(slideIndex);
var aShape = oSlide.GetAllShapes();
for (var shapeIndex = 0; shapeIndex < aShape.length; shapeIndex++) {
var content = aShape[shapeIndex].GetDocContent();
// Check if content is valid before proceeding
if (content) {
var count = content.GetElementsCount();
for (var elementIndex = 0; elementIndex < count; elementIndex++) {
var element = content.GetElement(elementIndex);
// Check if element is valid before using it
if (element) {
element.SetFontSize(10);
element.SetFontFamily("Comic Sans");
}
}
}
}
}
})();
让我们运行宏,看看它是如何工作的!
我们希望这个宏能成为您的有用资产,为您的日常工作提高效率。使用 ONLYOFFICE 宏,您可以提高工作效率,简化工作流程。
在您制作宏时,请抓住ONLYOFFICE API提供的机会。ONLYOFFICE宏的灵活性使您能够根据自己的具体需求对其进行微调。如有任何问题,请随时联系我们,或与我们分享您的创意想法。我们欢迎讨论和合作。祝您在解释工作中一切顺利!

渝公网安备50010702505508