Eine nützliche Anwendung der Google Slides API besteht darin, Informationen aus einer oder mehreren Datenquellen in eine Vorlagenpräsentation einzufügen.
Auf dieser Seite wird beschrieben, wie Sie Daten aus einer externen Quelle übernehmen und in eine vorhandene Vorlagenpräsentation einfügen. Das Konzept ähnelt dem eines Seriendrucks mit einem Textverarbeitungsprogramm und einer Tabellenkalkulation.
Es gibt mehrere Gründe, warum dieser Ansatz nützlich ist:
Designer können das Design einer Präsentation ganz einfach mit dem Google Präsentationen-Editor optimieren. Das ist viel einfacher, als Parameter in Ihrer App anzupassen, um das gerenderte Folien-Design festzulegen.
Die Trennung von Inhalten und Präsentation ist ein bekanntes Designprinzip mit vielen Vorteilen.
Grundrezept
Hier ein Beispiel dafür, wie Sie mit der Slides API Daten in eine Präsentation einfügen können:
Erstellen Sie die Präsentation so, wie sie aussehen soll, und verwenden Sie Platzhalterinhalte, um das Design zu gestalten.
Ersetzen Sie für jedes einzufügende Inhaltselement den Platzhalterinhalt durch ein Tag. Tags sind Textfelder oder Formen mit einem eindeutigen String. Verwenden Sie Strings, die normalerweise nicht vorkommen. Ein gutes Tag wäre beispielsweise
{{account-holder-name}}.Verwenden Sie in Ihrem Code die Google Drive API, um eine Kopie der Präsentation zu erstellen.
Verwenden Sie in Ihrem Code die
batchUpdateMethode der Slides API mit einer Reihe vonreplaceAllText-Anfragen, um alle Textersetzungen in der Präsentation vorzunehmen. Verwenden SiereplaceAllShapesWithImage-Anfragen, um alle Bildersetzungen in der Präsentation vorzunehmen.
Nachdem Sie eine Präsentation mit Tags erstellt haben, müssen Sie eine Kopie erstellen und die Slides API verwenden, um die Kopie zu bearbeiten. Verwenden Sie die Slides API nicht, um Ihre primäre „Vorlagenkopie“ zu bearbeiten.
Die folgenden Abschnitte enthalten Code-Snippets, die einige Schritte dieses Prozesses veranschaulichen. Im Video oben sehen Sie auch ein vollständiges Beispiel (Python), in dem mehrere Konzepte aus den einzelnen Abschnitten unten kombiniert werden.
Text einfügen
Mit einer replaceAllText
Anfrage können Sie alle Instanzen eines bestimmten Textstrings in einer
Präsentation durch neuen Text ersetzen. Für Zusammenführungen ist das einfacher, als jede Textinstanz einzeln zu suchen und zu ersetzen. Ein Grund dafür, dass dies der anspruchsvollste Ansatz ist, liegt darin, dass die IDs von Seitenelementen schwer vorherzusagen sind, insbesondere wenn Mitarbeiter die Vorlagenpräsentation optimieren und verwalten.
Beispiel
In diesem Beispiel wird die Drive API verwendet, um eine Vorlagenpräsentation zu kopieren und eine neue Instanz der Präsentation zu erstellen. Anschließend werden mit der Google Sheets API Daten aus einer Google Sheets-Tabelle gelesen und mit der Slides API die neue Präsentation aktualisiert.
Im Beispiel werden Daten aus drei Zellen in einer Zeile eines benannten Bereichs in der Tabelle verwendet. Diese Daten werden dann in der Präsentation überall dort ersetzt, wo
die Strings {{customer-name}},
{{case-description}}, oder
{{total-portfolio}} vorkommen.
Apps Script
Ok
Java
JavaScript
Node.js
PHP
Python
Ruby
Bilder einfügen
Sie können auch Bilder in Ihre Präsentation einfügen. Verwenden Sie dazu eine
replaceAllShapesWithImage
-Anfrage. Mit dieser Anfrage werden alle Formen, die den angegebenen Textstring enthalten, durch das angegebene Bild ersetzt. Das Bild wird automatisch so positioniert und skaliert, dass es in die Begrenzungen der Tag-Form passt, wobei das Seitenverhältnis des Bildes beibehalten wird.
Beispiel
In diesem Beispiel wird die Google Drive API verwendet, um eine Vorlagenpräsentation zu kopieren und eine neue Instanz der Präsentation zu erstellen. Anschließend werden mit der Slides API alle Formen mit dem Text {{company-logo}}gesucht
und durch ein Firmenlogo ersetzt. Außerdem werden alle
Formen mit dem Text {{customer-graphic}}
durch ein anderes Bild ersetzt.
Apps Script
Ok
Java
JavaScript
Node.js
PHP
Python
Ruby
Bestimmte Textfelder oder Bildinstanzen ersetzen
Die replaceAllText
und replaceAllShapesWithImage
Anfragen sind nützlich, um Tags in einer Präsentation zu ersetzen. Manchmal müssen Sie jedoch nur Elemente ersetzen, die bestimmte Kriterien erfüllen, z. B. sich auf einer bestimmten Folie befinden.
In diesen Fällen müssen Sie die IDs der Tag-Formen abrufen, die Sie ersetzen möchten. Bei Textersetzungen löschen Sie den vorhandenen Text in diesen Formen und fügen dann den neuen Text ein. Weitere Informationen finden Sie im Beispiel Text in einer bestimmten Form bearbeiten.
Bildersetzungen sind komplexer. So fügen Sie ein Bild ein:
- Rufen Sie die ID der Tag-Form ab.
- Kopieren Sie die Größen- und Transformationsinformationen aus dem Tag.
- Fügen Sie das Bild mit den Größen- und Transformationsinformationen auf der Seite ein.
- Löschen Sie die Tag-Form.
Das Seitenverhältnis des Bildes muss beibehalten werden, während es auf die gewünschte Größe skaliert wird. Das erfordert möglicherweise etwas Aufwand, wie im folgenden Abschnitt beschrieben. Weitere Informationen finden Sie auch in diesem Beispiel: Ein Form-Tag durch ein Bild ersetzen.
Seitenverhältnis beibehalten
Wenn Sie Bilder mit der Slides API erstellen, basieren die Anpassungen des Seitenverhältnisses nur auf der Bildgröße, nicht auf den Größen- und Transformationsdaten. Die in der Anfrage createImageangegebenen Größenangaben werden als gewünschte Größe des Bildes betrachtet. Die API passt das Seitenverhältnis des Bildes an diese gewünschte Größe an und wendet dann die angegebene Transformation an.
Wenn Sie ein Tag durch ein Bild ersetzen, behalten Sie das Seitenverhältnis des Bildes bei, indem Sie die Größe und Skalierung des Bildes so festlegen:
- Breite: auf das Produkt aus der
widthundscaleXdes Tags festlegen - Höhe: auf das Produkt aus dem
heightundscaleYdes Tags festlegen - scale_x: auf
1festlegen - scale_y: auf
1festlegen
Dadurch wird das Seitenverhältnis des Bildes von der Slides API an die
visuelle Größe des Tags angepasst, nicht an die nicht skalierte Größe. Weitere Informationen finden Sie unter
Ein Form-Tag durch ein Bild ersetzen.
Wenn Sie die Skalierungsparameter auf 1 festlegen, wird verhindert, dass das Bild zweimal skaliert wird.
So wird sichergestellt, dass das Seitenverhältnis des Bildes beibehalten wird und das Bild die Größe der Tag-Form nicht überschreitet. Das Bild hat denselben Mittelpunkt wie die Tag-Form.
Vorlagen verwalten
Für Vorlagenpräsentationen, die von der Anwendung definiert und verwaltet werden, erstellen Sie die Vorlage mit einem speziellen Konto, das die Anwendung repräsentiert. Dienstkonten sind eine gute Wahl und vermeiden Komplikationen mit Google Workspace-Richtlinien, die die Freigabe einschränken.
Wenn Sie Instanzen von Präsentationen aus Vorlagen erstellen, verwenden Sie immer Anmeldedaten von Endnutzern. So haben Nutzer die volle Kontrolle über die resultierende Präsentation und vermeiden Skalierungsprobleme im Zusammenhang mit den Limits pro Nutzer in Google Drive.
So erstellen Sie eine Vorlage mit einem Dienstkonto und den Anmeldedaten der Anwendung:
- Erstellen Sie eine Präsentation mit presentations.create in der Slides API.
- Aktualisieren Sie die Berechtigungen, damit die Empfänger der Präsentation sie mit permissions.create in der Drive API lesen können.
- Aktualisieren Sie die Berechtigungen, damit Vorlagenautoren mit permissions.create in der Drive API darauf schreiben können.
- Bearbeiten Sie die Vorlage nach Bedarf.
So erstellen Sie eine Instanz der Präsentation mit den Anmeldedaten des Nutzers:
- Erstellen Sie mit files.copy in der Drive API eine Kopie der Vorlage.
- Ersetzen Sie Werte mit presentation.batchUpdate in der Slides API.