En utilisant l'application Google script, je génère une grille avec des éléments sélectionnés. Dans l'exemple ci-dessous, j'ai saisi les lignes 2 et les colonnes 3 pour générer l'ordre de la grille. Ma logique semble être la production de lignes et de colonnes erronées.
Enjeu Le nombre de lignes et de colonnes est erroné.
function grid() {
var selection = SlidesApp.getActivePresentation().getSelection();
var pageElements = selection.getPageElementRange().getPageElements();
//init
var numRows = 2;
var horizontalSpace = 5;
var numColumns = 3;
var verticalSpace = 10;
/*get Left, Top, width, height of ist shape.*/
var shape0Left = pageElements[0].asShape().getLeft(),
shape0Top = pageElements[0].asShape().getTop(),
shape0Width = pageElements[0].asShape().getWidth(),
shape0Height = pageElements[0].asShape().getHeight();
/*Set the element properties*/
var elemLeft = shape0Left,
elemTop = shape0Top,
elemWidth = 0,
elemHeight = 0;
/*Iterate the page selected elements*/
pageElements.forEach(function(item, index) {
pageElements[index]
.asShape()
.setLeft(elemLeft)
.setTop(elemTop);
/*Something wrong with the logic*/
if ((index + 1) % numRows == 0) {
/*update the properties of each shape to place in row column order */
elemTop = shape0Top + pageElements[index].asShape().getHeight() + 10;
elemLeft = shape0Left;
} else {
elemLeft = shape0Left + pageElements[index].asShape().getWidth() + 10;
}
});
}
Résultat à venir Résultat attendu :