Es gibt zwei verschiedene Möglichkeiten, die Größe und Position eines Seitenelements abzurufen und zu ändern:
- Dazu werden die Getter- und Setter-Funktionen für Größe und Position verwendet.
- Die affine Transformation wird mithilfe der Funktionen
getTransform()undsetTransform()manipuliert, wobei die ursprüngliche Größe beibehalten wird.
Eigenschaften von Seitenelementen lesen

Wie in der Abbildung dargestellt, werden Größe und Position in Bezug auf das umgebende Rechteck eines gerenderten Seitenelements gemessen, wenn es nicht gedreht ist:
- Links und Oben: gemessen von der oberen linken Ecke der Seite bis zur oberen linken Ecke des nicht gedrehten Begrenzungsrahmens. Verwenden Sie
getLeft()undgetTop(), um die Werte zu lesen. - Breite und Höhe: Breite und Höhe des nicht gedrehten Begrenzungsrahmens.
Verwenden Sie
getWidth()undgetHeight(), um die Werte zu lesen. - Drehung: die Drehung im Uhrzeigersinn in Bezug auf die vertikale Linie um den Mittelpunkt des Begrenzungsrahmens. Verwenden Sie
getRotation(), um den Wert zu lesen.
Alle Längen werden in Punkten (pt) gemessen. Die Drehung wird in Grad (°) gemessen.
Attribute für Seitenelemente festlegen
Legen Sie die Größe und Position eines Seitenelements fest, wenn Sie es mit einer Einfügemethode wie insertShape() erstellen. Bei einer vorhandenen Form können Sie die Größe, Position und Drehung festlegen. Sie können auch die Skalierung eines Elements festlegen, um es in der Größe zu ändern oder es an einer seiner Kanten zu spiegeln.
Bei der Erstellung
Geben Sie beim Erstellen eines Seitenelements Informationen zu Position und Größe an.
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.TEXT_BOX, 100, 200, 300, 60);
Logger.log('Left: ' + shape.getLeft() + 'pt; Top: '
+ shape.getTop() + 'pt; Width: '
+ shape.getWidth() + 'pt; Height: '
+ shape.getHeight() + 'pt; Rotation: '
+ shape.getRotation() + ' degrees.');
Mit dem vorherigen Skript wird auf der ersten Folie der aktiven Präsentation eine Form mit der angegebenen Position und Größe erstellt und die Positions- und Größeninformationen der Form werden gelesen. Das erwartete Log sieht so aus:
Left: 100pt; Top: 200pt; Width: 300pt; Height: 60pt; Rotation: 0 degrees.
Größe, Position und Drehung
So passen Sie die Größe und Position eines Seitenelements nach der Erstellung an:
- Verwenden Sie
setLeft()undsetTop(), um die Position der oberen linken Ecke des nicht gedrehten umgebenden Rechtecks festzulegen. - Mit
setWidth()undsetHeight()können Sie die gerenderte Breite und Höhe des umgebenden Rechtecks festlegen. - Mit
setRotation()wird die Drehung des umgebenden Rechtecks im Uhrzeigersinn um den Mittelpunkt festgelegt.
Mit dem folgenden Skript wird eine Form auf der ersten Folie der aktiven Präsentation erstellt. Mit Settern werden ihre Position, Größe und Drehung aktualisiert und die Positions- und Größeninformationen der Form werden gelesen.
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setLeft(100).setTop(200).setWidth(50).setHeight(60).setRotation(90);
Logger.log('Left: ' + shape.getLeft()
+ 'pt; Top: ' + shape.getTop()
+ 'pt; Width: ' + shape.getWidth()
+ 'pt; Height: ' + shape.getHeight()
+ 'pt; Rotation: ' + shape.getRotation() + '\u00B0.');
Das erwartete Log sieht so aus:
Left: 100pt; Top: 200pt; Width: 50pt; Height: 60pt; Rotation: 90°.
Die Setter für Größe, Position und Drehung können in beliebiger Reihenfolge oder Kombination verwendet werden. Wenn Sie die dritte Zeile im vorherigen Skript durch das folgende Skript ersetzen, erhalten Sie dasselbe Ergebnis:
shape.setWidth(55);
shape.setRotation(90).setHeight(60).setLeft(100);
shape.setWidth(50).setTop(200);
Größe eines Seitenelements anpassen
Statt mit setWidth() und setHeight() die Größe der Form auf einen absoluten Wert festzulegen, können Sie mit scaleWidth() und scaleHeight() ein Seitenelement mit einem relativen Skalierungsfaktor strecken oder stauchen.
shape.scaleHeight(0.5).scaleWidth(2);
Die folgende Abbildung zeigt, wie der vorherige Code auf ein um 45° gedrehtes Quadrat angewendet wird. Die obere linke Ecke des Begrenzungsrahmens bleibt beim Skalieren unverändert.

Seiteninhalt spiegeln
Das Argument in scaleWidth() und scaleHeight() kann negativ sein, sodass damit ein Seitenelement horizontal oder vertikal gespiegelt werden kann.
// Flip horizontally along the left edge of the bounding box.
shape.scaleWidth(-1);
// Flip vertically along the top edge of the bounding box.
shape.scaleHeight(-1);
Die folgende Abbildung zeigt, wie der vorherige Code auf eine um 45° gedrehte Form angewendet wird. Das Seitenelement wird entlang einer der Kanten des Begrenzungsrahmens gespiegelt, nicht entlang der Mitte.

Linienrotation
Wie bei anderen Seitenelementen ist die Drehung einer Linie nicht der vertikale Winkel der Linie, sondern die Drehung des umgebenden Rechtecks. Wenn Sie eine Linie mit angegebenen Start- und Endpunkten erstellen, beträgt ihre Drehung immer 0°. Wenn Sie die Endpunkte der Linie in der Google-Präsentationen-Benutzeroberfläche ziehen, ändert sich ihr vertikaler Winkel sowie die Größe und Position des umgebenden Rechtecks, aber nicht ihre Drehung. Durch die Verwendung von setRotation() wird der Begrenzungsrahmen der Linie gedreht, wodurch sich der vertikale Winkel ändert. Zwei Zeilen können also denselben visuellen vertikalen Winkel, aber unterschiedliche Begrenzungsrahmen und damit unterschiedliche Werte für Größe, Position und Drehung haben.
Beschränkungen
Einige Methoden zur Größenanpassung und Positionierung sind mit bestimmten Arten von Seitenelementen nicht kompatibel. In der folgenden Tabelle sind die Methoden zusammengefasst, die mit bestimmten Arten von Seitenelementen nicht kompatibel sind.
| Methoden | Form | Video | Tabelle |
|---|---|---|---|
| getHeight(), getWidth() | ✔ | ✔ | NEIN (gibt „null“ zurück) |
| setHeight(), setWidth() | ✔ | ✔ | NEIN |
| setRotation() | ✔ | NEIN | NEIN |
| scaleHeight(), scaleWidth() | ✔ | ✔ | NEIN |
Alle Methoden zur Größenanpassung und Positionierung können zu unerwarteten Ergebnissen führen, wenn das Seitenelement Scherung aufweist. Alle Einschränkungen können sich ändern. Aktuelle Informationen finden Sie in der Referenz.
Affine Transformationen verwenden
Zur erweiterten Steuerung können Größe und Position eines Seitenelements auch über seine inhärente (native) Größe und affine Transformation berechnet und angepasst werden.
Google Apps Script bietet eine Schnittstelle, die der Google Slides API ähnelt, um affine Transformationen zu verwenden.
- Zum Lesen von Eigenschaften können Sie eine affine Transformation verwenden, die beschreibt, wie ein Element skaliert, gedreht, geschert und positioniert wird. Informationen dazu, wie Sie die visuelle Größe eines Elements auf einer Folie anhand seiner Transformation und seiner inhärenten (nativen) Größe berechnen, finden Sie unter Transformationen. In Apps Script verwenden Sie:
getInherentWidth()undgetInherentHeight()für die inhärente (native) Größe von Seitenelementen;getTransform()für die affine Transformation der Seitenelemente.
- Um Eigenschaften zu ändern, können Sie affine Transformationen verwenden, um Skalierung, Drehung, Spiegelung und mehr durchzuführen. Informationen zum Anpassen der Größe und Position von Seitenelementen mithilfe affiner Transformationen finden Sie unter Größe und Position.
In Apps Script verwenden Sie:
setTransform(), um die affine Transformation von Seitenelementen festzulegen (ähnlich dem ABSOLUTE-Modus);preconcatenateTransform(), um eine affine Transformation mit der aktuellen Transformation von Seitenelementen zu verketten (ähnlich dem RELATIVE-Modus).
Im folgenden Skript wird eine Form erstellt, ihre Transformation festgelegt, ihre inhärente Größe und ihre affine Transformation gelesen.
var slide = SlidesApp.getActivePresentation().getSlides()[0];
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE);
shape.setTransform(SlidesApp.newAffineTransformBuilder()
.setScaleX(2)
.setScaleY(1)
.setTranslateX(100)
.setTranslateY(200)
.build());
Logger.log('Inherent width: ' + shape.getInherentWidth()
+ 'pt; Inherent height: '
+ shape.getInherentHeight() + 'pt.');
Die erwartete Protokollausgabe ist:
Inherent width: 236.2pt; Inherent height: 236.2pt.
Die resultierende Form hat die folgende Transformation, gerenderte Größe und Position:
AffineTransform{scaleX=2.0, scaleY=1.0, shearX=0.0, shearY=0.0, translateX=100.0, translateY=200.0}
Left: 100pt; Top: 200pt; Width: 472.4pt; Height: 236.2pt; Rotation: 0°.