L'API Presentazioni Google consente di modificare la posizione, le dimensioni e l'orientamento di un
PageElement
(caselle di testo, immagini, tabelle e forme di base) su una pagina, mantenendo le linee
punti rette e che mantengono e linee parallele. Questi sono noti come affine
trasformazioni. Gli esempi qui mostrano alcune trasformazioni comuni di elementi di pagina
delle operazioni utilizzando
presentations.batchUpdate
.
In questi esempi vengono utilizzate le seguenti variabili:
- PRESENTATION_ID: indica dove fornisci presentazione ID. Puoi il valore per questo ID dall'URL della presentazione.
- PAGE_ID: indica dove fornisci l'oggetto pagina ID. Puoi recuperare il valore dall'URL o utilizzando una richiesta di lettura API.
- PAGE_ELEMENT_ID: indica dove fornisci la pagina ID oggetto dell'elemento. Tu puoi specificare questo ID per gli elementi che crei (con alcuni limitazioni) o consentire all'API Presentazioni di crearne una automaticamente. ID elemento può essere recuperato tramite una richiesta di lettura API.
Questi esempi vengono presentati come richieste HTTP per essere indipendenti dal linguaggio. Per ulteriori informazioni come implementare un aggiornamento batch in lingue diverse utilizzando l'API di Google librerie client, consulta l'articolo Aggiungere forme testo.
Esempio di forma di freccia
Per gli esempi riportati di seguito, supponiamo che esista una pagina con la forma di freccia di esempio
con le seguenti dimensioni e trasforma i dati (che puoi trovare con
presentations.pages.get
. La forma di esempio utilizza la misurazione
unit
EMU (unità metrica inglese) e pt
(punto).
{ "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" } }
Allineare un elemento a un altro
Le seguenti
presentations.batchUpdate
l'esempio di codice mostra come utilizzare
CreateShapeRequest
per creare nuove forme nelle posizioni corrette allineate
di esempio a forma di freccia sulla pagina. In entrambi i casi, X e Y
occorre calcolare le coordinate dell'angolo in alto a sinistra della nuova forma.
La prima richiesta crea un rettangolo di 100 x 50 punti allineato a sinistra bordo della forma della freccia, ma posizionato a 50 pt (50 * 12.700 = 635.000 EMU) sotto il bordo superiore della freccia. La coordinata X del nuovo rettangolo deve essere la uguale alla coordinata X della freccia per mantenere allineato il bordo sinistro. La Y è uguale alla coordinata Y della freccia più 50 pt, poiché la distanza è misurata dalla parte superiore della freccia. Le coordinate del rettangolo sono pertanto:
x" = 2000000 EMU y" = 550000 + (50 * 12700) = 1185000 EMU
La seconda richiesta crea un cerchio largo 40 pt che ha lo stesso come freccia di esempio, ma è posizionata a 100 pt (1.270.000 EMU) per a destra del bordo destro della freccia. La coordinata X del cerchio è la somma dei la coordinata X della freccia, la larghezza della freccia e 100 pt. Applicare la linea centrale l'allineamento del nuovo cerchio richiede di prendere in considerazione l'altezza sia del la freccia e il cerchio. La coordinata Y del cerchio è la coordinata Y della freccia più metà dell'altezza della freccia meno l'altezza del cerchio. In entrambi i casi, occorre prendere in considerazione anche i fattori di scala associati alla freccia, poiché influiscono sulla larghezza e l'altezza del rendering della freccia. Il cerchio sono quindi:
x = 2000000 + (0.3 * 3000000) + (100 * 12700) = 4170000 EMU y = 550000 + (0.5 * 0.12 * 3000000) - (0.5 * 40 * 12700) = 476000 EMU
Di seguito è riportato il protocollo di richiesta per allineare un elemento a un altro:
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" } } } } ] }
Spostare un elemento
Le seguenti
presentations.batchUpdate
l'esempio di codice mostra come utilizzare
UpdatePageElementTransformRequest
per tradurre l'elemento di pagina forma di freccia di esempio in
in due modi diversi.
La prima richiesta del batch sposta la freccia in (X,Y) = (2000000, 150000)
Coordinata EMU (utilizzando una traduzione assoluta
applyMode
).
La seconda richiesta nel batch sposta la freccia da lì, questa volta 40.000 EMU
a destra e 35.000 EMU in alto (utilizzando una traduzione relativa applyMode
).
Le matrici di transformation1 utilizzate
vengono realizzati per evitare di alterare le dimensioni e l'orientamento dell'elemento.
Dopo aver eseguito entrambe le richieste, l'angolo superiore sinistro della freccia si trova in (X,Y) = (2040000, 115000) coordinata EMU.
Di seguito è riportato il protocollo di richiesta per spostare un elemento:
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" } } } ] }
Riflettere un elemento
Le seguenti
presentations.batchUpdate
l'esempio di codice mostra come utilizzare
UpdatePageElementTransformRequest
per riflettere l'elemento di pagina forma di freccia di esempio
orizzontalmente lungo il centro, senza modificarne la posizione sulla pagina o
e la scalabilità delle applicazioni.
Per farlo, si usano una riflessione di base
transform nel riferimento dell'elemento
frame. Per chiarezza,
lo spostamento e la riflessione del frame di riferimento vengono mostrati con tre chiamate separate
UpdatePageElementTransformRequest
,
ma è più efficiente precalcolare il prodotto di queste trasformazioni
e applicare il prodotto come singola richiesta.
Per le trasformazioni della traduzione, il centro della forma della freccia viene spostato da e verso l'origine. I valori dei parametri sono espressi come calcoli per chiarezza.
Di seguito è riportato il protocollo di richiesta per riflettere un elemento:
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" } } } ] }
Ridimensionare un elemento
Le seguenti
presentations.batchUpdate
l'esempio di codice mostra come utilizzare
UpdatePageElementTransformRequest
per scalare l'elemento di pagina forma di freccia di esempio al 50%
più ampia e ha solo l'80% della sua altezza corrente, mantenendo il centro della freccia
nella stessa posizione e mantenendo l'orientamento.
Per farlo, usa una scalabilità di base.
transform nel riferimento dell'elemento
frame. Per chiarezza,
la variazione del frame di riferimento e la scalabilità sono mostrate con tre chiamate separate
UpdatePageElementTransformRequest
,
ma è più efficiente precalcolare il prodotto di queste trasformazioni
e applicare il prodotto come singola richiesta.
Per le trasformazioni della traduzione, il centro della forma della freccia viene spostato da e verso l'origine. I valori dei parametri sono espressi come calcoli per chiarezza.
Di seguito è riportato il protocollo di richiesta per ridimensionare un elemento:
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" } } } ] }
Ruotare un elemento attorno al centro
Le seguenti
presentations.batchUpdate
l'esempio di codice mostra come utilizzare
UpdatePageElementTransformRequest
per ruotare l'elemento di pagina forma di freccia di esempio 35
gradi in senso antiorario, mantenendo il centro della freccia nella stessa posizione
e nel mantenerne le dimensioni.
Per farlo, usa una rotazione di base
transform nel riferimento dell'elemento
frame. Per chiarezza,
lo spostamento e la rotazione del frame di riferimento vengono mostrate con tre chiamate separate
UpdatePageElementTransformRequest
,
ma è più efficiente precalcolare il prodotto di queste trasformazioni
e applicare quel prodotto come una singola richiesta
Per le trasformazioni della traduzione, il centro della forma della freccia viene spostato da e verso l'origine. I valori dei parametri sono espressi come calcoli per chiarezza.
Di seguito è riportato il protocollo di richiesta per ruotare un elemento al centro:
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" } } } ] }