Scrittura di base

L'API Google Slides 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 fornire l'ID presentazione. Puoi scoprire il valore di questo ID dall'URL della presentazione.
  • PAGE_ID: indica dove fornire l'ID oggetto pagina. Puoi recuperare il valore dall'URL o utilizzando una richiesta di lettura dell'API.
  • PAGE_ELEMENT_ID: indica dove fornire l'ID oggetto elemento pagina. Puoi specificare questo ID per gli elementi che crei (con alcune limitazioni) o consentire all'API Slides di crearne uno automaticamente. Gli ID elemento possono essere recuperati tramite una richiesta di lettura dell'API.

Questi esempi sono presentati come richieste HTTP per essere indipendenti dalla lingua. Per scoprire come implementare un aggiornamento collettivo in lingue diverse utilizzando le librerie client dell'API Google, consulta Aggiungere forme e testo.

Aggiungere una casella di testo a una diapositiva

Il seguente presentations.batchUpdate esempio di codice 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 da PAGE_ID. Nel corpo della richiesta vengono specificate due richieste: una per creare la forma della casella di testo (con dimensioni e posizione prestabilite) e una seconda per inserire il testo.

La prima richiesta specifica l'ID oggetto da utilizzare per la casella di testo. In questo modo, la seconda richiesta può utilizzarlo nella stessa chiamata API, riducendo il carico.

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 presentations.batchUpdate esempio di codice mostra come utilizzare il CreateImageRequest metodo per aggiungere un'immagine a una diapositiva specificata da PAGE_ID. L'API recupera l'immagine utilizzando IMAGE_URL. Questa richiesta consente inoltre di ridimensionare e posizionare 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 presentations.batchUpdate esempio di codice mostra come utilizzare il metodo DeleteObjectRequest per eliminare l'elemento di pagina specificato da PAGE_ELEMENT_ID e la diapositiva specificata da PAGE_ID utilizzando due richieste distinte.

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
      }
    }
  ]
}

Modificare il testo in una forma specificata

Il seguente presentations.batchUpdate esempio di codice mostra come utilizzare il metodo DeleteTextRequest per sostituire una parte del testo presente nella forma specificata da PAGE_ELEMENT_ID. Per farlo, elimina prima il testo utilizzando il carattere startIndex a partire da zero e poi inserisci il nuovo testo in quella posizione. In questo esempio, la stringa di testo originale "Testo forma: ????" viene sostituita con "Testo forma: Trapezoide".

Questa richiesta interessa solo il testo in una forma specificata. Per sostituire il testo in tutte le parti 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 forma con un'immagine

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

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

La richiesta può essere utilizzata anche per sostituire un'immagine con un'altra. La richiesta consiste nell'aggiungere la nuova immagine ed eliminare il 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 forma ha le seguenti proprietà PageElement (che possono essere trovate utilizzando 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 diapositiva specificata da PAGE_ID. Per specificare l'immagine che sostituisce la forma, l'API recupera l'immagine utilizzando IMAGE_URL. Per preservare le proporzioni dell'immagine limitandole alle dimensioni del tag, il metodo CreateImageRequest imposta sia le dimensioni dell'immagine sul prodotto delle dimensioni e della scala del tag sia i fattori di scala dell'immagine su 1. Per ulteriori informazioni, consulta Mantieni proporzioni.

Di seguito è riportato il protocollo di richiesta per sostituire un tag 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
      }
    }
  ]
}