Grundkenntnisse

Mit der Google Slides API können Sie Elemente auf Präsentationsseiten hinzufügen und bearbeiten. Die Beispiele auf dieser Seite zeigen, wie häufige Lesevorgänge mit der Methode presentations.batchUpdate ausgeführt werden.

In diesen Beispielen werden die folgenden Variablen verwendet:

  • PRESENTATION_ID gibt an, wo Sie die Präsentations-ID angeben. Sie können den Wert für diese ID der Präsentations-URL entnehmen.
  • PAGE_ID gibt an, wo Sie die Seitenobjekt-ID angeben. Sie können den Wert dafür aus der URL oder mithilfe einer API-Leseanfrage abrufen.
  • PAGE_ELEMENT_ID gibt an, wo Sie die Objekt-ID des Seitenelements angeben. Sie können diese ID für von Ihnen erstellte Elemente angeben (mit einigen Einschränkungen) oder zulassen, dass die Slides API automatisch eine ID erstellt. Element-IDs können über eine API-Leseanfrage abgerufen werden.

Diese Beispiele werden als HTTP-Anfragen dargestellt, um sprachneutral zu sein. Informationen zum Implementieren einer Batchaktualisierung in verschiedenen Sprachen mithilfe der Google API-Clientbibliotheken finden Sie unter Formen und Text hinzufügen.

Textfelder zu einer Folie hinzufügen

Das folgende Codebeispiel presentations.batchUpdate zeigt, wie Sie mit der Methode CreateShapeRequest einer durch PAGE_ID angegebenen Folie ein neues Textfeld mit dem String „Mein hinzugefügtes Textfeld“ hinzufügen. Im Anfragetext werden zwei Anfragen angegeben: eine zum Erstellen der Textfeldform mit einer bestimmten Größe und Position und eine zum Einfügen von Text.

Die erste Anfrage gibt die Objekt-ID an, die für das Textfeld verwendet werden soll. Dadurch kann die zweite Anfrage ihn im selben API-Aufruf verwenden, wodurch der Aufwand reduziert wird.

Mit dem folgenden Anfrageprotokoll können Sie einer Folie ein Textfeld hinzufügen:

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 auf einer Folie einfügen

Das folgende Codebeispiel presentations.batchUpdate zeigt, wie Sie mit der Methode CreateImageRequest ein Bild zu einer durch PAGE_ID angegebenen Folie hinzufügen können. Die API ruft das Bild mithilfe von IMAGE_URL ab. Mit dieser Anfrage wird außerdem das Bild auf der Folie skaliert und positioniert.

Mit dem folgenden Anfrageprotokoll können Sie einer Folie ein Bild hinzufügen:

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

Im folgenden Codebeispiel für presentations.batchUpdate wird gezeigt, wie Sie mit der Methode DeleteObjectRequest das von PAGE_ELEMENT_ID angegebene Seitenelement und die mit PAGE_ID angegebene Folie über zwei separate Anfragen löschen.

Das Anfrageprotokoll zum Löschen einer Seite oder eines Seitenelements lautet wie folgt:

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 Codebeispiel presentations.batchUpdate zeigt, wie mit der Methode DeleteTextRequest ein Teil des Textes in der durch PAGE_ELEMENT_ID angegebenen Form ersetzt wird. Löschen Sie dazu zuerst Text mit dem nullbasierten startIndex und fügen Sie dann an dieser Position neuen Text ein. In diesem Beispiel wird der ursprüngliche Textstring „My Shape Text: ?????“ (Mein Formtext: ????) 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.

Im Folgenden finden Sie das Anfrageprotokoll für die Bearbeitung von Text in einer bestimmten Form:

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 Stringnamen wie „Name des Kontoinhabers“.

Im folgenden Codebeispiel für presentations.batchUpdate sehen Sie, wie Sie mit der Methode CreateImageRequest eine einzelne Instanz eines Form-Tags durch ein Bild ersetzen. Dabei wird die Position beibehalten und das Bild wird so skaliert, dass es der Größe des Tags entspricht und gleichzeitig das Seitenverhältnis des Bilds beibehalten wird.

Die Anforderung kann auch verwendet werden, um ein Bild durch ein anderes zu ersetzen. Die Anfrage besteht aus dem Hinzufügen des neuen Images und dem anschließenden Löschen des Tags.

Mit der Methode CreateImageRequest wird nur eine angegebene 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-Eigenschaften, die mit der presentations.pages.get-Anfrage ermittelt 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 durch PAGE_ID angegebenen Folie. Die API ruft das Bild mit IMAGE_URL ab, um das Bild anzugeben, das die Form ersetzt. Damit das Bildseitenverhältnis erhalten bleibt und gleichzeitig auf die Tag-Größe beschränkt wird, wird mit der Methode CreateImageRequest sowohl die Bildgröße als auch das Produkt aus Taggröße und -skalierung und als Bildskalierungsfaktoren 1 festgelegt. Weitere Informationen finden Sie unter Seitenverhältnis beibehalten.

Im Folgenden finden Sie das Anfrageprotokoll für das Ersetzen eines Shape-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
      }
    }
  ]
}