我通过一系列演示文稿选择了许多图像,这些图像需要调整为标准尺寸。我想知道如何让我的脚本仅在当前幻灯片上的“选定”图像下运行。
我找到了一种解决方案,有人可以将其用于幻灯片上的所有图像,但是我只是在寻找那些被选中的对象(多个和单个)。
我尝试更改下面的代码,但没有成功!
function rearrangeImages() {
//Select current page
var currentPage =
SlidesApp.getActivePresentation().getSelection().getCurrentPage();
var slide = currentPage;
//Get selected images of CurrentPage
var pageElements = slide.getImages();
//For each image, change the size and position
for (var i = 0; i < pageElements.length; i++) {
pageElements[i].select(true);
var image = pageElements[i];
var imgWidth = image.getWidth();
var newWidth = 690;
var imgHeight = image.getHeight();
var forhold = imgHeight/imgWidth;
var newHeight = forhold*newWidth;
image.setLeft(14).setTop(14).setWidth(newWidth).setHeight(newHeight).setRotation(0);
var ui = SlidesApp.getUi();
// ui.alert (imgWidth);
pageElements[i].select(false);
}
}
答案 0 :(得分:0)
如果我的理解是正确的,那么该修改如何?
getSelection()
直接检索所选对象。在此修改中,使用了它。
function rearrangeImages() {
var selectedObjects = SlidesApp.getActivePresentation().getSelection(); // Modified
if (selectedObjects.getSelectionType() == SlidesApp.SelectionType.PAGE_ELEMENT) { // Added
var pageElements = selectedObjects.getPageElementRange().getPageElements(); // Added
for (var i = 0; i < pageElements.length; i++) {
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE) { // Added
//For each image, change the size and position
pageElements[i].select(true);
var image = pageElements[i];
var imgWidth = image.getWidth();
var newWidth = 690;
var imgHeight = image.getHeight();
var forhold = imgHeight/imgWidth;
var newHeight = forhold*newWidth;
image.setLeft(14).setTop(14).setWidth(newWidth).setHeight(newHeight).setRotation(0);
var ui = SlidesApp.getUi();
// ui.alert (imgWidth);
pageElements[i].select(false);
}
}
}
}
if (pageElements[i].getPageElementType() == SlidesApp.PageElementType.IMAGE)
。如果我误解了您的问题,而这不是您想要的结果,我深表歉意。