Eine nützliche Anwendung der Google Präsentationen API ist das Zusammenführen von Informationen aus einer oder mehreren Datenquellen in einer Vorlage für eine Präsentation.
Auf dieser Seite wird beschrieben, wie Sie Daten aus einer externen Quelle in eine vorhandene Vorlage einfügen. Das Konzept ähnelt dem einer Serien-E-Mail mit einem Textverarbeitungsprogramm und einer Tabellenkalkulation.
Dieser Ansatz ist aus mehreren Gründen nützlich:
Mit dem Google Präsentationen-Editor können Designer das Design einer Präsentation ganz einfach optimieren. Das ist viel einfacher, als die Parameter in Ihrer App zu optimieren, um das gerenderte Foliendesign festzulegen.
Die Trennung von Inhalt und Präsentation ist ein bekanntes Designprinzip mit vielen Vorteilen.
Ein einfaches Rezept
Hier ein Beispiel dafür, wie Sie mit der Google Präsentationen API Daten in eine Präsentation einfügen können:
Erstellen Sie Ihre Präsentation so, wie sie aussehen soll, und verwenden Sie Platzhalterinhalte als Designhilfe.
Ersetzen Sie für jedes Inhaltselement, das Sie einfügen, den Platzhalterinhalt durch ein Tag. Tags sind Textfelder oder Formen mit einem eindeutigen String. Verwenden Sie Strings, die normalerweise nicht vorkommen.
{{account-holder-name}}
könnte beispielsweise ein geeignetes Tag sein.Erstellen Sie in Ihrem Code mit der Google Drive API eine Kopie der Präsentation.
Verwenden Sie in Ihrem Code die Methode
batchUpdate
der Google Präsentationen API mit einer Reihe vonreplaceAllText
-Anfragen, um alle Textersetzungen in der Präsentation vorzunehmen. Verwenden SiereplaceAllShapesWithImage
-Anfragen, um in der gesamten Präsentation Bildsubstitutionen durchzuführen.
Nachdem Sie eine Präsentation mit Tags erstellt haben, sollten Sie eine Kopie davon erstellen und die Kopie mit der Google Präsentationen API bearbeiten. Verwende die Google Präsentationen API nicht, um die primäre „Vorlage“ zu manipulieren.
In den folgenden Abschnitten finden Sie Code-Snippets, die diesen Prozess veranschaulichen. Im Video oben sehen 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 finden und zu ersetzen. Einer der Gründe dafür, dass dies der ausgefeilteste Ansatz ist, ist, dass die IDs der Seitenelemente schwer vorhersehbar sind, insbesondere wenn Mitbearbeiter die Vorlagenpräsentation optimieren und pflegen.
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 Tabellen-Tabelle gelesen und schließlich mit der Google Präsentationen 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 die Präsentation 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ühren
Sie können Bilder auch mit einer replaceAllShapesWithImage
-Anfrage in Ihre Präsentation einfügen. Mit dieser Anfrage werden alle Formen, die den angegebenen Textstring enthalten, durch das angegebene Bild ersetzt. Bei der Anfrage wird das Bild automatisch so positioniert und skaliert, dass es in die Grenzen der Tag-Form 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 mithilfe der Google Präsentationen API jede Form mit dem Text {{company-logo}}
gefunden und durch ein Bild des Unternehmenslogos ersetzt. Außerdem wird durch die Anfrage jede Form mit dem Text {{customer-graphic}}
durch ein anderes Bild ersetzt.
Apps Script
Ok
Java
JavaScript
Node.js
PHP
Python
Ruby
Bestimmte Textfeld- oder Bildinstanzen ersetzen
Die Anfragen replaceAllText
und replaceAllShapesWithImage
sind nützlich, um Tags in einer gesamten Präsentation zu ersetzen. Manchmal müssen Sie Elemente jedoch nur nach anderen Kriterien ersetzen, z. B. nach ihrer Position auf einer bestimmten Folie.
In diesen Fällen müssen Sie die IDs der Tag-Formen abrufen, die Sie ersetzen möchten. Wenn Sie Text ersetzen möchten, löschen Sie den vorhandenen Text in diesen Formen und fügen Sie dann den neuen Text ein (siehe Beispiel Text in einer bestimmten Form bearbeiten).
Bilder ersetzen ist etwas komplexer. So fügen Sie ein Bild ein:
- Rufen Sie die ID der Tag-Form ab.
- Größe kopieren und Informationen aus dem Tag transformieren
- Fügen Sie das Bild mithilfe der Informationen zur Größe und Transformation auf der Seite ein.
- Löschen Sie die Tag-Form.
Das Seitenverhältnis des Bilds beibehalten und gleichzeitig auf die gewünschte Größe skalieren kann etwas Fingerspitzengefühl erfordern, wie im folgenden Abschnitt beschrieben. Weitere Informationen finden Sie in diesem Beispiel: Formen-Tag durch ein Bild ersetzen.
Seitenverhältnis beibehalten
Wenn Sie Bilder mit der Google Präsentationen API erstellen, basieren die Seitenverhältnisse nur auf der Bildgröße, nicht auf den Größen- und Transformationsdaten. Die in der createImage
-Anfrage angegebenen Größendaten gelten als gewünschte Größe des Bilds. 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, können Sie das Seitenverhältnis des Bildes beibehalten, indem Sie die Größe und Skalierung des Bildes so festlegen:
- width: auf das Produkt von
width
undscaleX
des Tags festlegen - height: auf das Produkt von
height
undscaleY
des Tags festlegen - scale_x: auf
1
festgelegt - scale_y: auf
1
festgelegt
Dadurch passt die Slides API das Bild an die visuelle Größe des Tags an, nicht an die nicht skalierte Größe (siehe Formen-Tag durch ein Bild ersetzen).
Wenn Sie die Skalierungsparameter auf 1
festlegen, wird das Bild nicht zweimal skaliert.
Dadurch wird das Seitenverhältnis des Bilds beibehalten und verhindert, dass das Bild die Größe der Tag-Form ü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.
Verwenden Sie beim Erstellen von Präsentationsinstanzen aus Vorlagen immer die Anmeldedaten eines Endnutzers. So haben Nutzer die volle Kontrolle über die resultierende Präsentation und es treten keine Skalierungsprobleme aufgrund von Nutzerlimits in Google Drive auf.
Wenn Sie eine Vorlage mit einem Dienstkonto erstellen möchten, führen Sie die folgenden Schritte mit den Anmeldedaten der Anwendung aus:
- Mit presentations.create in der Google Präsentationen API eine Präsentation erstellen
- Aktualisieren Sie die Berechtigungen, damit die Empfänger der Präsentation sie mithilfe von permissions.create in der Drive API lesen können.
- Aktualisieren Sie die Berechtigungen, damit Vorlagenautoren mithilfe von permissions.create in der Drive API darauf schreiben können.
- Bearbeiten Sie die Vorlage nach Bedarf.
Führen Sie die folgenden Schritte mit den Anmeldedaten des Nutzers aus, um eine Instanz der Präsentation zu erstellen:
- Erstellen Sie eine Kopie der Vorlage mit files.copy in der Drive API.
- Ersetzen Sie Werte mit presentation.batchUpdate in der Google Präsentationen API.