Grundkenntnisse

Mit der Google Slides API können Sie Elemente auf Präsentationsseiten hinzufügen und ändern. Die Beispiele auf dieser Seite zeigen, wie Sie mit der Methode presentations.batchUpdate häufige Leseoperationen ausführen.

In diesen Beispielen werden die folgenden Variablen verwendet:

  • PRESENTATION_ID: Gibt an, wo Sie die Präsentations-ID angeben. Den Wert für diese ID finden Sie in der Präsentations-URL.
  • PAGE_ID: Gibt an, wo Sie die Seitenobjekt-ID angeben. Sie können den Wert dafür aus der URL oder mit einer API-Leseanfrage abrufen.
  • PAGE_ELEMENT_ID: Gibt an, wo Sie die Objekt-ID des Seitenelements angeben. Sie können diese ID für Elemente angeben, die Sie erstellen (mit einigen Einschränkungen), oder die Google Slides API automatisch eine erstellen lassen. Element-IDs können über eine API-Leseanfrage abgerufen werden.

Diese Beispiele werden als HTTP-Anfragen dargestellt, um sprachneutral zu sein. Weitere Informationen zum Implementieren einer Batch-Aktualisierung in verschiedenen Sprachen mit den Google API-Clientbibliotheken

Einer Folie ein Textfeld hinzufügen

Im folgenden presentations.batchUpdate-Codebeispiel wird gezeigt, wie Sie mit der Methode CreateShapeRequest ein neues Textfeld (mit dem String „My Added Text Box“) in eine Folie einfügen, die durch PAGE_ID angegeben wird. Im Anfragetext werden zwei Anfragen angegeben: eine zum Erstellen der Textfeldform (mit einer bestimmten Größe und Position) und eine zweite zum Einfügen von Text in das Textfeld.

Im ersten Request wird die Objekt-ID für das Textfeld angegeben. So kann die zweite Anfrage sie im selben API-Aufruf verwenden, wodurch der Aufwand reduziert wird.

Im Folgenden finden Sie das Anfrageprotokoll zum Hinzufügen eines Textfelds zu einer Folie:

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

Bilder in Folien einfügen

Das folgende presentations.batchUpdate-Codebeispiel zeigt, wie Sie mit der Methode CreateImageRequest ein Bild zu einer Folie hinzufügen, die durch PAGE_ID angegeben wird. Die API ruft das Bild mit IMAGE_URL ab. Bei dieser Anfrage wird das Bild auch skaliert und auf der Folie positioniert.

Im Folgenden finden Sie das Anfrageprotokoll zum Hinzufügen eines Bildes zu einer Folie:

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

Seite oder Seitenelement löschen

Das folgende presentations.batchUpdate-Codebeispiel zeigt, wie Sie mit der Methode DeleteObjectRequest das durch PAGE_ELEMENT_ID angegebene Seitenelement und die durch PAGE_ID angegebene Folie mit zwei separaten Anfragen löschen.

Im Folgenden finden Sie das Anfrageprotokoll zum Löschen einer Seite oder eines Seitenelements:

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

Text in einer bestimmten Form bearbeiten

Das folgende presentations.batchUpdate-Codebeispiel zeigt, wie Sie mit der Methode DeleteTextRequest einen Teil des Texts ersetzen, der sich in der Form befindet, die durch PAGE_ELEMENT_ID angegeben wird. Löschen Sie dazu zuerst Text mit dem nullbasierten startIndex und fügen Sie dann an dieser Stelle neuen Text ein. In diesem Beispiel wird der ursprüngliche Textstring „My Shape Text: ????“ durch „My Shape Text: Trapezoid“ ersetzt.

Diese Anfrage betrifft nur Text in einer bestimmten Form. Wenn Sie Text überall in einer Präsentation ersetzen möchten, verwenden Sie die Methode ReplaceAllTextRequest.

Das folgende Protokoll beschreibt, wie Sie Text in einer bestimmten Form bearbeiten:

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

Form-Tag durch ein Bild ersetzen

Tags sind Textfelder oder Formen mit einem eindeutigen String-Namen, z. B. „account-holder-name“.

Das folgende presentations.batchUpdate-Codebeispiel zeigt, wie Sie mit der Methode CreateImageRequest eine einzelne Instanz eines Form-Tags durch ein Bild ersetzen. Dabei wird die Position beibehalten und das Bild so skaliert, dass es an die Größe des Tags angepasst wird, ohne das Seitenverhältnis des Bildes zu ändern.

Mit der Anfrage kann auch ein Bild durch ein anderes ersetzt werden. Bei der Anfrage wird das neue Bild hinzugefügt und das Tag gelöscht.

Mit der Methode CreateImageRequest wird nur eine bestimmte Form ersetzt. Wenn Sie Tag-Formen überall in einer Präsentation ersetzen möchten, verwenden Sie die Methode ReplaceAllShapesWithImageRequest.

Das „shape“-Tag hat die folgenden PageElement-Attribute (die mit einer presentations.pages.get-Anfrage abgerufen werden können):

{
  "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"
  }
}

Die Form befindet sich auf der Folie, die durch PAGE_ID angegeben wird. Um das Bild anzugeben, das die Form ersetzt, ruft die API das Bild mit IMAGE_URL ab. Um das Seitenverhältnis des Bildes beizubehalten und gleichzeitig auf die Größe des Tags zu beschränken, wird mit der Methode CreateImageRequest sowohl die Bildgröße auf das Produkt aus Tag-Größe und ‑Skalierung als auch die Bildskalierungsfaktoren auf 1 festgelegt. Weitere Informationen finden Sie unter Seitenverhältnis beibehalten.

Im Folgenden finden Sie das Anfrageprotokoll zum Ersetzen eines Form-Tags durch ein Bild:

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