Eine nützliche Anwendung der Google Slides API ist das Zusammenführen von Informationen aus einer oder mehreren Datenquellen in eine Präsentation mit Vorlagen.
Auf dieser Seite wird beschrieben, wie Sie Daten aus einer externen Quelle in eine vorhandene Vorlagenpräsentation einfügen können. Das Konzept ähnelt dem eines Seriendrucks mit einem Textverarbeitungs- und Tabellenkalkulationsprogramm.
Dieser Ansatz ist aus mehreren Gründen nützlich:
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 Inhalt und Darstellung ist ein bekanntes Designprinzip mit vielen Vorteilen.
Ein einfaches Rezept
Hier sehen Sie 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. Verwenden Sie Platzhalterinhalte, um das Design zu optimieren.
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.
{{account-holder-name}}
ist beispielsweise ein gutes Tag.Verwenden Sie in Ihrem Code die Google Drive API, um eine Kopie der Präsentation zu erstellen.
Verwenden Sie in Ihrem Code die Methode
batchUpdate
der Slides API mit einer Reihe vonreplaceAllText
-Anfragen, um alle Textersetzungen in der gesamten Präsentation vorzunehmen. Verwenden SiereplaceAllShapesWithImage
-Anfragen, um Bilder in der gesamten Präsentation zu ersetzen.
Nachdem Sie eine Präsentation mit Tags erstellt haben, sollten Sie eine Kopie davon erstellen und die Slides API verwenden, um die Kopie zu bearbeiten. Verwenden Sie die Slides API nicht, um Ihre primäre „Vorlagen“-Kopie zu bearbeiten.
In den folgenden Abschnitten finden Sie Code-Snippets, die einen Teil dieses Prozesses veranschaulichen. Im obigen Video finden Sie ein vollständiges Beispiel (Python), in dem mehrere der Konzepte aus den einzelnen Abschnitten unten kombiniert werden.
Text zusammenführen
Mit einer replaceAllText
-Anfrage können Sie alle Instanzen eines bestimmten Textstrings in einer Präsentation durch neuen Text ersetzen. Bei Zusammenführungen ist das einfacher, als jede Textinstanz einzeln zu suchen und zu ersetzen. Das ist unter anderem deshalb der anspruchsvollste Ansatz, weil 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-Tabelle gelesen und schließlich 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 eingefügt, wo die Strings {{customer-name}}
, {{case-description}}
oder {{total-portfolio}}
vorkommen.
Apps Script
Ok
Java
JavaScript
Node.js
PHP
Python
Ruby
Bilder zusammenfügen
Sie können auch Bilder in Ihre Präsentation einfügen, indem Sie eine replaceAllShapesWithImage
-Anfrage stellen. Bei dieser Anfrage werden alle Instanzen von Formen, die den angegebenen Textstring enthalten, durch das angegebene Bild ersetzt. Das Bild wird automatisch so positioniert und skaliert, dass es in die Form des Tags passt, wobei das Seitenverhältnis des Bilds 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 wird mit der Slides API nach Formen mit dem Text {{company-logo}}
gesucht und diese werden durch ein Unternehmenslogo ersetzt. Außerdem wird in der Anfrage jede Form 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 Anfragen replaceAllText
und replaceAllShapesWithImage
sind nützlich, um Tags in einer Präsentation zu ersetzen. Manchmal müssen Sie jedoch nur Elemente ersetzen, die einem anderen Kriterium entsprechen, z. B. auf einer bestimmten Folie enthalten sind.
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 (siehe das Beispiel Text in einer bestimmten Form bearbeiten).
Das Ersetzen von Bildern ist 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 Beibehalten des Seitenverhältnisses des Bildes beim Skalieren auf die gewünschte Größe erfordert möglicherweise einige Sorgfalt, wie im folgenden Abschnitt beschrieben. Beispiel
Seitenverhältnis beibehalten
Wenn Sie Bilder mit der Slides API erstellen, basieren die Anpassungen des Seitenverhältnisses nur auf der Bildgröße, nicht auf der Größe und den Transformationsdaten. Die Größenangaben, die Sie in der createImage
-Anfrage machen, werden als die gewünschte Größe des Bildes betrachtet. Die API passt das Seitenverhältnis des Bildes an die gewünschte Größe an und wendet dann die bereitgestellte 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:
- width: auf das Produkt aus
width
undscaleX
des Tags festgelegt - height: auf das Produkt aus
height
undscaleY
des Tags festgelegt - scale_x: auf
1
festlegen - scale_y: auf
1
festlegen
Dadurch wird das Bild von der Slides API entsprechend der visuellen Größe des Tags und nicht entsprechend seiner nicht skalierten Größe angepasst (siehe Form-Tag durch ein Bild ersetzen).
Wenn Sie die Skalierungsparameter auf 1
festlegen, wird das Bild nicht zweimal skaliert.
So wird das Seitenverhältnis des Bildes beibehalten und verhindert, dass das Bild die Größe der Tag-Form überschreitet. Das Bild hat denselben Mittelpunkt wie die Tag-Form.
Vorlagen verwalten
Erstellen Sie Vorlagenpräsentationen, die von der Anwendung definiert und ihr gehören, 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 Endnutzeranmeldedaten. So haben Nutzer die volle Kontrolle über die resultierende Präsentation und es werden Skalierungsprobleme im Zusammenhang mit nutzerspezifischen Limits in Google Drive vermieden.
So erstellen Sie eine Vorlage mit einem Dienstkonto:
- Erstellen Sie eine Präsentation mit presentations.create in der Google 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 Nutzeranmeldedaten:
- Erstellen Sie mit files.copy in der Drive API eine Kopie der Vorlage.
- Werte mit presentation.batchUpdate in der Google Slides API ersetzen