Es gibt zwei Möglichkeiten, die Größe und Position eines Seitenelements abzurufen und zu ändern:
- Verwenden Sie die Getter- und Setter-Funktionen für Größe und Position.
- Bearbeiten Sie die affine Transformation mit den Funktionen
getTransform()undsetTransform(), wobei die ursprüngliche Größe beibehalten wird.
Eigenschaften von Seitenelementen lesen

Wie in der Abbildung gezeigt, werden Größe und Position in Bezug auf den Begrenzungsrahmen eines gerenderten Seitenelements gemessen, wenn es nicht gedreht ist:
- Links und Oben: Gemessen von der oberen linken Ecke der Seite zur
oberen linken Ecke des nicht gedrehten Begrenzungsrahmens. Verwenden Sie
getLeft()undgetTop(), um die Werte zu lesen. - Breite und Höhe: Die 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.
Eigenschaften von Seitenelementen festlegen
Legen Sie die Größe und Position eines Seitenelements fest, wenn Sie es mit einer Einfügemethode wie insertShape() erstellen. Für eine vorhandene Form können Sie Größe, Position und Drehung festlegen. Sie können auch die Skalierung eines Elements festlegen, um die Größe zu ändern oder es entlang 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.');
Das vorherige Skript erstellt eine Form auf der ersten Folie der aktiven Präsentation mit der angegebenen Position und Größe und liest die Informationen zu Position und Größe der Form. Das erwartete Log ist:
Left: 100pt; Top: 200pt; Width: 300pt; Height: 60pt; Rotation: 0 degrees.
Größe, Position und Drehung
Aktualisieren Sie die Größe und Position eines Seitenelements nach der Erstellung:
- Verwenden Sie
setLeft()undsetTop(), um die Position der oberen linken Ecke des nicht gedrehten Begrenzungsrahmens festzulegen. - Verwenden Sie
setWidth()undsetHeight(), um die gerenderte Breite und Höhe des Begrenzungsrahmens festzulegen. - Verwenden Sie
setRotation(), um die Drehung des Begrenzungsrahmens im Uhrzeigersinn um seinen Mittelpunkt festzulegen.
Das folgende Skript erstellt eine Form auf der ersten Folie der aktiven Präsentation, aktualisiert mit Settern ihre Position, Größe und Drehung und liest die Informationen zu Position und Größe der Form.
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 ist:
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
Anstatt mit setWidth() und setHeight() die Größe der Form auf einen absoluten Wert festzulegen, können Sie mit scaleWidth() und scaleHeight() die Größe eines Seitenelements mit einem relativen Skalierungsfaktor anpassen.
shape.scaleHeight(0.5).scaleWidth(2);
Die folgende Abbildung zeigt, wie der vorherige Code auf eine um 45° gedrehte quadratische Form angewendet wird. Beachten Sie, dass die obere linke Ecke des Begrenzungsrahmens während der Skalierung fixiert ist.

Seitenelement spiegeln
Das Argument in scaleWidth() und scaleHeight() kann negativ sein, sodass Sie damit ein Seitenelement horizontal oder vertikal spiegeln können.
// 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. Beachten Sie, dass das Seitenelement entlang einer der Kanten des Begrenzungsrahmens, aber nicht entlang des Mittelpunkts gespiegelt wird.

Drehung von Linien
Wie bei anderen Seitenelementen ist die Drehung einer Linie nicht der vertikale Winkel der Linie, sondern die Drehung des Begrenzungsrahmens. Wenn Sie eine Linie mit angegebenen Start- und Endpunkten erstellen, beträgt die Drehung immer 0°. Wenn Sie die Endpunkte der Linie in der Slides-Benutzeroberfläche ziehen, ändert sich der vertikale Winkel sowie die Größe und Position des Begrenzungsrahmens, aber nicht die Drehung. Mit setRotation() wird der Begrenzungsrahmen der Linie gedreht, wodurch sich der vertikale Winkel ändert. Zwei Linien können also denselben vertikalen Winkel haben, aber unterschiedliche Begrenzungsrahmen und daher unterschiedliche Werte für Größe, Position und Drehung.
Beschränkungen
Einige Methoden zum Anpassen von Größe und Position 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 zum Anpassen von Größe und Position können unerwartete Ergebnisse liefern, wenn das Seitenelement eine Scherung aufweist. Alle Beschränkungen können sich ändern. Aktuelle Informationen finden Sie in der Referenz.
Affine Transformationen verwenden
Für eine erweiterte Steuerung können Größe und Position eines Seitenelements auch über die ursprüngliche (native) Größe und die affine Transformation berechnet und angepasst werden.
Google Apps Script bietet eine ähnliche Schnittstelle wie die Google Slides API für die Verwendung affiner Transformationen.
- Zum Lesen von Eigenschaften können Sie eine affine Transformation verwenden, die beschreibt, wie ein Element skaliert, gedreht, geschert und positioniert wird. Informationen zum Berechnen der visuellen Größe eines Elements auf einer Folie mithilfe der Transformation und der ursprünglichen (nativen) Größe finden Sie unter
Transformationen. Verwenden Sie in Apps Script:
getInherentWidth()undgetInherentHeight()für die ursprüngliche (native) Größe von Seitenelementen.getTransform()für die affine Transformation der Seitenelemente.
- Zum Ändern von Eigenschaften können Sie affine Transformationen verwenden, um Skalierung, Drehung, Spiegelung und mehr durchzuführen. Informationen zum Anpassen von Größe und Position von Seitenelementen mithilfe affiner Transformationen finden Sie unter
Größe und Position anpassen.
Verwenden Sie in Apps Script:
setTransform(), um die affine Transformation von Seitenelementen festzulegen (ähnlich dem ABSOLUTE-Modus).preconcatenateTransform(), um eine affine Transformation vor der aktuellen Transformation von Seitenelementen zu verketten (ähnlich dem RELATIVE-Modus).
Das folgende Skript erstellt eine Form, legt ihre Transformation fest, liest ihre ursprüngliche Größe und liest ihre affine Transformation.
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 Logausgabe 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°.