Scrittura di base

L'API Presentazioni Google consente di aggiungere e modificare elementi nelle pagine delle presentazioni. Gli esempi in questa pagina mostrano come eseguire operazioni di lettura comuni utilizzando il metodo presentations.batchUpdate.

Questi esempi utilizzano le seguenti variabili:

  • PRESENTATION_ID: indica dove fornisci l'ID presentazione. Puoi scoprire il valore di questo ID dall'URL della presentazione.
  • PAGE_ID: indica dove fornisci l'ID oggetto della pagina. Puoi recuperare il relativo valore dall'URL o utilizzando una richiesta di lettura dell'API.
  • PAGE_ELEMENT_ID: indica dove fornisci l'ID oggetto dell'elemento di pagina. Puoi specificare questo ID per gli elementi che crei (con alcune limitazioni) o consentire all'API Presentazioni di crearne uno automaticamente. Gli ID degli elementi possono essere recuperati tramite una richiesta di lettura dell'API.

Questi esempi sono presentati come richieste HTTP per essere neutrali di lingua. Per informazioni su come implementare un aggiornamento batch in lingue diverse utilizzando le librerie client dell'API di Google, consulta Aggiungere forme e testo.

Aggiungi una casella di testo a una diapositiva

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo CreateShapeRequest per aggiungere una nuova casella di testo (contenente la stringa "La mia casella di testo aggiunta") a una slide specificata dal PAGE_ID. Nel corpo della richiesta sono specificate due richieste: una per creare la forma della casella di testo (con una dimensione e una posizione specifici) e un'altra per inserire il testo al suo interno.

La prima richiesta specifica l'ID oggetto da utilizzare per la casella di testo. Ciò consente alla seconda richiesta di utilizzarlo nella stessa chiamata API, riducendo l'overhead.

Di seguito è riportato il protocollo di richiesta per aggiungere una casella di testo a una diapositiva:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

Aggiungere un'immagine a una diapositiva

Il seguente esempio di codice di presentations.batchUpdate mostra come utilizzare il metodo CreateImageRequest per aggiungere un'immagine a una slide specificata dal PAGE_ID. L'API recupera l'immagine utilizzando IMAGE_URL. Questa richiesta scala e posiziona anche l'immagine nella slide.

Di seguito è riportato il protocollo di richiesta per aggiungere un'immagine a una diapositiva:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

Eliminare una pagina o un elemento di pagina

Il seguente esempio di codice di presentations.batchUpdate mostra come utilizzare il metodo DeleteObjectRequest per eliminare l'elemento di pagina specificato da PAGE_ELEMENT_ID e la slide specificata da PAGE_ID utilizzando due richieste separate.

Di seguito è riportato il protocollo di richiesta per eliminare una pagina o un elemento di pagina:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

Modifica il testo in una forma specificata

Il seguente esempio di codice di presentations.batchUpdate mostra come utilizzare il metodo DeleteTextRequest per sostituire una parte del testo presente nella forma specificata da PAGE_ELEMENT_ID. A tal fine, elimina prima il testo utilizzando il startIndex in base zero, quindi inserisci il nuovo testo in quella posizione. In questo esempio, la stringa di testo originale "My Shape Text: ????" è sostituita con "My Shape Text: Trapezoid".

Questa richiesta riguarda solo il testo in una forma specificata. Per sostituire il testo ovunque all'interno di una presentazione, utilizza il metodo ReplaceAllTextRequest.

Di seguito è riportato il protocollo di richiesta per modificare il testo in una forma specificata:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": PAGE_ELEMENT_ID,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

Sostituire un tag di forma con un'immagine

I tag sono caselle di testo o forme con un nome stringa univoco, ad esempio "nome-proprietario-account".

Il seguente esempio di codice presentations.batchUpdate mostra come utilizzare il metodo CreateImageRequest per sostituire una singola istanza di un tag di forma con un'immagine, mantenendo la stessa posizione e ridimensionandola per adattarsi alle dimensioni del tag, mantenendo al contempo le proporzioni dell'immagine.

La richiesta può essere utilizzata anche per sostituire un'immagine con un'altra. La richiesta consiste nell'aggiunta della nuova immagine e poi nell'eliminazione del tag.

Il metodo CreateImageRequest sostituisce solo una forma specificata. Per sostituire le forme dei tag ovunque all'interno di una presentazione, utilizza un metodo ReplaceAllShapesWithImageRequest.

Il tag di forma ha le seguenti proprietà PageElement (disponibili mediante una richiesta presentations.pages.get):

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

La forma si trova nella slide specificata da PAGE_ID. Per specificare l'immagine che sostituisce la forma, l'API recupera l'immagine utilizzando IMAGE_URL. Per mantenere le proporzioni dell'immagine limitandole alle dimensioni del tag, il metodo CreateImageRequest imposta sia la dimensione dell'immagine sul prodotto della dimensione e la scala del tag sia il fattore di scala dell'immagine su 1. Per ulteriori informazioni, consulta la sezione Preservare le proporzioni.

Di seguito è riportato il protocollo di richiesta per la sostituzione di un tag di forma con un'immagine:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      }
    }
  ]
}