Grundkenntnisse

Mit der Google Slides API können Sie Elemente auf Präsentationsseiten hinzufügen und ändern. 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 hierfür aus der URL oder über eine 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 eines erstellt. Element-IDs können über eine API-Leseanfrage abgerufen werden.

Diese Beispiele werden als HTTP-Anfragen dargestellt, damit sie sprachneutral sind. Informationen zum Implementieren einer Batch-Aktualisierung in verschiedenen Sprachen mithilfe der Google API-Clientbibliotheken finden Sie unter Formen und Text hinzufügen.

Textfelder auf einer Folie einfügen

Im folgenden Codebeispiel für presentations.batchUpdate wird gezeigt, wie Sie mit der Methode CreateShapeRequest einer durch PAGE_ID angegebenen Folie ein neues Textfeld mit dem String „My added Text Box“ hinzufügen können. Im Anfragetext sind 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 sie von der zweiten Anfrage im selben API-Aufruf verwendet werden, 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
      }
    }
  ]
}

So fügen Sie einer Folie ein Bild hinzu:

Im folgenden Codebeispiel für presentations.batchUpdate sehen Sie, wie Sie mit der Methode CreateImageRequest einer Folie, die durch PAGE_ID angegeben wird, ein Bild hinzufügen. Die API ruft das Image mit der IMAGE_URL ab. Durch diese Anfrage wird auch 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"
          }
        }
      }
    }
  ]
}

Seiten oder Seitenelemente löschen

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

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

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

Im folgenden Codebeispiel für presentations.batchUpdate wird gezeigt, wie Sie mit der Methode DeleteTextRequest einen Teil des Textes in der durch PAGE_ELEMENT_ID angegebenen Form ersetzen. 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 die ursprüngliche Textzeichenfolge „My Shape Text: ????“ durch „My Shape Text: Trapezoid“ ersetzt.

Diese Anfrage wirkt sich nur auf Text in einer angegebenen Form aus. Wenn Sie Text überall in einer Präsentation ersetzen möchten, verwenden Sie die Methode ReplaceAllTextRequest.

Mit dem folgenden Anfrageprotokoll können 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 Stringnamen, z. B. "Kontoinhabername".

Im folgenden Codebeispiel für presentations.batchUpdate wird gezeigt, wie Sie mit der Methode CreateImageRequest eine einzelne Instanz eines Shape-Tags durch ein Bild ersetzen. Dabei bleibt die Position erhalten und wird an die Größe des Tags angepasst, während das Seitenverhältnis des Bilds beibehalten wird.

Die Anfrage kann auch verwendet werden, um ein Bild durch ein anderes zu ersetzen. Die Anfrage besteht darin, das neue Image hinzuzufügen und anschließend das Tag zu löschen.

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 Form-Tag hat die folgenden PageElement-Eigenschaften, die über eine 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. Um das Bild anzugeben, das die Form ersetzt, ruft die API das Bild über IMAGE_URL ab. Damit das Bildseitenverhältnis erhalten bleibt und gleichzeitig die Größe des Tags begrenzt wird, wird mit der Methode CreateImageRequest sowohl die Bildgröße auf das Produkt der Tag-Größe und -Größe als auch die Bildskalierungsfaktoren auf 1 festgelegt. Weitere Informationen finden Sie unter Seitenverhältnis beibehalten.

Mit dem folgenden Anfrageprotokoll wird ein Shape-Tag durch ein Bild ersetzt:

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