Mit der Google Slides API können Sie Position, Größe und Ausrichtung eines Elements ändern:
PageElement
(Textfelder, Bilder, Tabellen und Grundformen) auf einer Seite, während die Linien
gerade und erhaltende Punkte
und parallele Linien. Diese werden als affine
Transformationen. Die folgenden Beispiele zeigen einige gängige Transformationen für Seitenelemente.
Operationen mithilfe der
presentations.batchUpdate
.
In diesen Beispielen werden die folgenden Variablen verwendet:
- PRESENTATION_ID: Gibt an, wo Sie die Präsentation ID fest. Sie können finden Sie den Wert für diese ID in der Präsentations-URL.
- PAGE_ID: Gibt an, wo Sie das Seitenobjekt bereitstellen. ID fest. Sie können die Daten abrufen, den Wert hierfür aus der URL oder mithilfe einer API-Leseanfrage.
- PAGE_ELEMENT_ID: Gibt an, wo Sie die Seite bereitstellen. Objekt-ID des Elements. Ich kann diese ID für von Ihnen erstellte Elemente angeben (mit einigen Einschränkungen) oder über die Slides API automatisch eine erstellen lassen. Element-IDs kann über eine API-Leseanfrage abgerufen werden.
Diese Beispiele werden als HTTP-Anfragen dargestellt, damit sie sprachneutral sind. Weitere Informationen Wie eine Batch-Aktualisierung in verschiedenen Sprachen mithilfe der Google API implementiert wird finden Sie unter Formen und Text.
Beispiel für Pfeilform
In den folgenden Beispielen wird davon ausgegangen, dass es eine Seite mit Beispielpfeilen gibt.
mit den folgenden Größen- und Transformationsdaten (die mit einem
presentations.pages.get
Methodenanfrage). Für die Beispielform wird die Messung
unit
EMU (englische Einheit) und pt
(Punkt).
{ "objectId": PAGE_ELEMENT_ID, "size": { "width": { "magnitude": 3000000, "unit": "EMU" }, "height": { "magnitude": 3000000, "unit": "EMU" } }, "transform": { "scaleX": 0.3, "scaleY": 0.12, "shearX": 0, "shearY": 0, "translateX": 2000000, "translateY": 550000, "unit": "EMU" }, "shape": { "shapeType": "RIGHT_ARROW" } }
Ein Element an einem anderen ausrichten
Die folgenden
presentations.batchUpdate
wird gezeigt, wie Sie mit der
CreateShapeRequest
um neue Formen an den richtigen Positionen zu erstellen, die mit dem
Beispiel für einen Pfeil auf der Seite. In beiden Fällen sind X und Y
müssen die Koordinaten der oberen linken Ecke der neuen Form berechnet werden.
In der ersten Anfrage wird ein Rechteck mit einer Größe von 100 x 50 pt erstellt, das linksbündig ausgerichtet ist. Rahmen der Pfeilform, aber 50 pt (50 x 12.700 = 635.000 EMU) unterhalb des oberen Rands des Pfeils. Die X-Koordinate des neuen Rechtecks sollte die entspricht der X-Koordinate des Pfeils, damit seine linke Rahmenlinie ausgerichtet bleibt. Das Y ist mit der Y-Koordinate des Pfeils plus 50 pt identisch, da die Die Entfernung wird vom oberen Rand des Pfeils aus gemessen. Die Koordinaten des Rechtecks sind daher:
x" = 2000000 EMU y" = 550000 + (50 * 12700) = 1185000 EMU
Die zweite Anforderung erstellt einen 40 pt breiten Kreis mit der gleichen horizontalen als Beispielpfeil verwendet, aber 100 pt (1.270.000 EMU) bis zum rechts von der rechten Kante des Pfeils. Die x-Koordinate des Kreises ist die Summe aus die X-Koordinate, die Pfeilbreite und 100 pt. Mittellinie erzwingen muss bei der Ausrichtung des neuen Kreises die Höhe der Pfeil und Kreis. Die Y-Koordinate des Kreises ist die Y-Koordinate des Pfeils. plus halben Pfeilhöhe minus halber Kreishöhe. In beiden Fällen Skalierungsfaktoren, die mit dem Pfeil verknüpft sind, müssen ebenfalls berücksichtigt werden. da sie sich auf die Breite und Höhe des Pfeils auswirken. Die Koordinaten sind daher:
x = 2000000 + (0.3 * 3000000) + (100 * 12700) = 4170000 EMU y = 550000 + (0.5 * 0.12 * 3000000) - (0.5 * 40 * 12700) = 476000 EMU
Das folgende Anfrageprotokoll dient zum Ausrichten eines Elements an ein anderes:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "createShape": { "shapeType": "RECTANGLE", "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 100, "unit": "PT" }, "height": { "magnitude": 50, "unit": "PT" } }, "transform": { "scaleX": 1, "scaleY": 1, "translateX": 2000000, "translateY": 1185000, "unit": "EMU" } } } }, { "createShape": { "shapeType": "ELLIPSE", "elementProperties": { "pageObjectId": PAGE_ID, "size": { "width": { "magnitude": 40, "unit": "PT" }, "height": { "magnitude": 40, "unit": "PT" } }, "transform": { "scaleX": 1, "scaleY": 1, "translateX": 4170000, "translateY": 476000, "unit": "EMU" } } } } ] }
Elemente verschieben
Die folgenden
presentations.batchUpdate
wird gezeigt, wie Sie mit der
UpdatePageElementTransformRequest
um das Seitenelement mit Beispielpfeilform in
auf zwei verschiedene Arten.
Bei der ersten Anfrage im Batch wird der Pfeil nach unten verschoben: (X,Y) = (2000000, 150000)
EMU-Koordinate (mithilfe einer absoluten Übersetzung
applyMode
)
Die zweite Anfrage im Batch verschiebt den Pfeil von dort, diesmal 40.000 EMU
nach rechts und 35.000 EMU nach oben (mit einer relativen Übersetzung applyMode
).
Die verwendeten Transformation1-Matrizen
sind so konzipiert, dass Größe und Ausrichtung des Elements nicht geändert werden.
Nachdem beide Anfragen ausgeführt wurden, befindet sich die linke obere Ecke des Pfeils bei (X,Y) = (2040000, 115000) EMU-Koordinate.
Das folgende Anfrageprotokoll zum Verschieben von Elementen:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "ABSOLUTE", "transform": { "scaleX": 0.3, "scaleY": 0.12, "translateX": 2000000, "translateY": 150000, "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": 40000, "translateY": -35000, "unit": "EMU" } } } ] }
Ein Element reflektieren
Die folgenden
presentations.batchUpdate
wird gezeigt, wie Sie mit der
UpdatePageElementTransformRequest
Methode zur Darstellung des Seitenelements Beispiel für Pfeilform
horizontal an der Mitte entlang, ohne die Position auf der Seite oder
Skalierung.
Dies geschieht mithilfe einer grundlegenden Reflexion.
transform in der Referenz des Elements
Frame dargestellt wird. Zur Klarstellung sei erwähnt,
Verschiebung und Reflexion des Referenzrahmens werden mit drei separaten Aufrufen der
UpdatePageElementTransformRequest
-Methode,
aber es ist effizienter, das Produkt dieser Transformation im Voraus zu berechnen.
und das Produkt dann
in einer einzigen Anfrage anwenden.
Bei der Umwandlung von translation wird der Parameter Mitte des Pfeils in Richtung Startpunkt und umgekehrt. Die Parameterwerte werden zur Verdeutlichung als Berechnungen dargestellt.
Das folgende Anfrageprotokoll spiegelt ein -Element wider:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": -2000000 - 0.5 * 0.3 * 3000000, "translateY": -550000 - 0.5 * 0.12 * 3000000, "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": -1, "scaleY": 1, "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": 2000000 + 0.5 * 0.3 * 3000000, "translateY": 550000 + 0.5 * 0.12 * 3000000, "unit": "EMU" } } } ] }
Größe eines Elements ändern
Die folgenden
presentations.batchUpdate
wird gezeigt, wie Sie mit der
UpdatePageElementTransformRequest
um das Seitenelement mit Beispielpfeilform auf 50 % zu skalieren
breiter und nur 80% seiner aktuellen Höhe haben, während der Mittelpunkt des Pfeils
in derselben Position und
beibehalten der Ausrichtung.
Dies erfolgt mithilfe einer einfachen Skalierung
transform in der Referenz des Elements
Frame dargestellt wird. Zur Klarstellung sei erwähnt,
Verschiebung und Skalierung des Referenzframes werden mit drei separaten Aufrufen der
UpdatePageElementTransformRequest
-Methode,
aber es ist effizienter, das Produkt dieser Transformation im Voraus zu berechnen.
und dieses Produkt dann
in einer einzigen Anfrage anwenden.
Bei der Umwandlung von translation wird der Parameter Mitte des Pfeils in Richtung Startpunkt und umgekehrt. Die Parameterwerte werden zur Verdeutlichung als Berechnungen dargestellt.
Mit dem folgenden Anfrageprotokoll lässt sich die Größe eines Elements ändern:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": -2000000 - 0.5 * 0.3 * 3000000, "translateY": -550000 - 0.5 * 0.12 * 3000000, "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1.5, "scaleY": 0.8, "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": 2000000 + 0.5 * 0.3 * 3000000, "translateY": 550000 + 0.5 * 0.12 * 3000000, "unit": "EMU" } } } ] }
Element um seinen Mittelpunkt drehen
Die folgenden
presentations.batchUpdate
wird gezeigt, wie Sie mit der
UpdatePageElementTransformRequest
um das Seitenelement Beispiel eines Pfeils in 35 Grad zu drehen
Grad gegen den Uhrzeigersinn, während die Mitte des Pfeils an derselben Position bleibt
und ihre Größe beibehalten.
Dies geschieht mithilfe einer grundlegenden Rotation
transform in der Referenz des Elements
Frame dargestellt wird. Zur Klarstellung sei erwähnt,
Die Verschiebung und Drehung des Referenzframes werden mit drei separaten Aufrufen der
UpdatePageElementTransformRequest
-Methode,
aber es ist effizienter, das Produkt dieser Transformation im Voraus zu berechnen.
und das Produkt dann als einzelne Anfrage anwenden,
Bei der Umwandlung von translation wird der Parameter Mitte des Pfeils in Richtung Startpunkt und umgekehrt. Die Parameterwerte werden zur Verdeutlichung als Berechnungen dargestellt.
Das folgende Anfrageprotokoll dient zum Drehen eines Elements um seinen Mittelpunkt:
POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{ "requests": [ { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": -2000000 - 0.5 * 0.3 * 3000000, "translateY": -550000 - 0.5 * 0.12 * 3000000, "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": cos(35 * (pi/180)), "scaleY": cos(35 * (pi/180)), "shearX": sin(35 * (pi/180)), "shearY": -sin(35 * (pi/180)), "unit": "EMU" } } }, { "updatePageElementTransform": { "objectId": PAGE_ELEMENT_ID, "applyMode": "RELATIVE", "transform": { "scaleX": 1, "scaleY": 1, "translateX": 2000000 + 0.5 * 0.3 * 3000000, "translateY": 550000 + 0.5 * 0.12 * 3000000, "unit": "EMU" } } } ] }