L'API Google Slides s'avère utile pour fusionner les informations ou plusieurs sources de données dans un diaporama modèle.
Cette page explique comment récupérer des données à partir d'une source externe et l'insérer dans un modèle de présentation existant. Le concept est semblable à celui d'un publipostage avec un traitement de texte et une feuille de calcul.
Cette approche est utile pour plusieurs raisons:
Il est facile pour les concepteurs d'affiner la conception d'une présentation en utilisant l'éditeur Google Slides. C'est beaucoup plus facile que de régler des paramètres pour définir le rendu de la diapositive.
Séparer le contenu de la présentation est une conception bien connue avec de nombreux avantages.
Une recette de base
Voici un exemple d'utilisation de l'API Slides pour fusionner des données dans une présentation:
Créez votre présentation telle que vous souhaitez qu'elle apparaisse en utilisant du contenu d'espace réservé pour vous aider avec la conception.
Pour chaque élément de contenu que vous allez insérer, remplacez l'espace réservé avec un tag. Les tags sont des zones de texte ou des formes avec une chaîne unique. Veillez à utiliser des chaînes peu susceptibles de se produire normalement. Par exemple :
{{account-holder-name}}
pourrait être un bon tag.Dans votre code, utilisez l'API Google Drive pour créer une copie des présentation.
Dans votre code, utilisez l'API Slides
batchUpdate
, avec un ensemble dereplaceAllText
pour effectuer toutes les substitutions de texte tout au long de la présentation. UtiliserreplaceAllShapesWithImage
les requêtes d'exécution de substitutions d'images tout au long de la présentation.
Une fois que vous avez créé une présentation contenant des tags, assurez-vous d'en faire une copie et utiliser l'API Slides pour manipuler la copie. Ne pas utiliser l'API Slides pour manipuler votre "modèle" principal copier !
Les sections suivantes incluent des extraits de code qui illustrent certaines de ces processus. Vous pouvez également regarder la vidéo ci-dessus pour voir un exemple complet. (Python) : il combine plusieurs concepts abordés dans les sections individuelles ci-dessous.
Fusionner le texte
Vous pouvez utiliser un replaceAllText
requête de remplacement de toutes les instances d'une chaîne de texte donnée dans une
avec un nouveau texte. Pour les fusions, c'est plus simple que
rechercher et remplacer chaque instance
de texte individuellement. L'une des raisons pour lesquelles
l'approche la plus sophistiquée est que les ID d'élément de page sont difficiles à prédire,
surtout lorsque les collaborateurs affinent et gèrent le modèle
présentation.
Exemple
Cet exemple utilise l'API Drive pour copier un modèle de présentation, une nouvelle instance de la présentation. Ensuite, il utilise l'API Google Sheets pour lire les données à partir d'une feuille de calcul Sheets, puis utilise l'API Slides pour mettre à jour nouvelle présentation.
L'exemple prend les données de trois cellules sur une ligne d'une plage nommée dans
feuille de calcul. Il substitue ensuite ces données dans la présentation,
les chaînes {{customer-name}}
,
{{case-description}}
ou
{{total-portfolio}}
se produisent.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Fusionner les images
Vous pouvez également fusionner des images dans votre présentation à l'aide d'un
replaceAllShapesWithImage
requête. Cette demande remplace toutes les instances de formes contenant le
la chaîne de texte fournie avec l'image fournie. La demande s'exécute automatiquement
positionne et redimensionne l'image pour qu'elle respecte les limites de la forme du tag,
en préservant les proportions de l'image.
Exemple
Cet exemple utilise l'API Google Drive pour copier un modèle de présentation,
une nouvelle instance
de la présentation. Ensuite, il utilise l'API Slides pour trouver
n'importe quelle forme contenant le texte {{company-logo}}
et le remplacer par le logo de l'entreprise. Cette demande remplace également
forme avec le texte {{customer-graphic}}
avec une autre image.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Remplacer des instances de zone de texte ou d'image spécifiques
replaceAllText
et replaceAllShapesWithImage
sont utiles pour remplacer des tags dans une présentation, mais
parfois, il suffit de remplacer des éléments en fonction d'un autre critère, tel que
sur une diapositive spécifique.
Dans ce cas, vous devez récupérer les identifiants des formes de tag que vous que vous souhaitez remplacer. Pour les remplacements de texte, vous devez dans ces formes, puis insérez le nouveau texte (voir l'exemple Modifier le texte dans une forme spécifiée).
Les remplacements d'images sont plus complexes. Pour fusionner une image, vous devez:
- Permet d'obtenir l'ID de la forme de tag.
- Copiez les informations de taille et de transformation à partir du tag.
- Ajoutez votre image à la page, en utilisant les informations de taille et de transformation.
- Supprimez la forme du tag.
Conserver le format de l'image tout en la redimensionnant à la taille souhaitée risque nécessitent quelques précautions, comme décrit dans la section suivante. Voir également l'exemple suivant: Remplacer un tag de forme par une image
Conserver les proportions
Lorsque vous créez des images avec l'API Slides, les ajustements d'aspect ne sont basés que sur les
de la taille de l'image, et non de la taille
et de la transformation des données. Les données sur la taille que vous fournissez
dans la createImage
est considérée comme la taille souhaitée de l'image. L'API s'adapte
format de l'image à la taille souhaitée, puis applique la transformation fournie.
Lorsque vous remplacez un tag par une image, vous conservez l'aspect de l'image. en définissant la taille et la mise à l'échelle de l'image comme suit:
- width: définie sur le produit des éléments
width
etscaleX
de la balise. - height: défini sur le produit des paramètres
height
etscaleY
de la balise. - scale_x: définie sur
1
- scale_y: définie sur
1
L'API Slides s'adapte alors à l'image
la taille d'affichage du tag, et non sa taille non ajustée (voir
Remplacer un tag de forme par une image).
Définir les paramètres de mise à l'échelle sur 1
empêche la mise à l'échelle de l'image
deux fois.
Cette disposition garantit le format de l'image et empêche l'image de dépasser la taille de la forme du tag. L'image comporte au même point central que la forme du tag.
Gérer les modèles
Pour les modèles de présentation définis et détenus par l'application, créez le modèle à l'aide d'un compte dédié représentant l'application. Comptes de service sont un bon choix et évitent les complications avec les règles Google Workspace qui limitent le partage.
Lorsque vous créez des instances de présentations à partir de modèles, utilisez toujours les identifiants de l'utilisateur final. Ainsi, les utilisateurs gardent le contrôle total ce qui permet d'éviter les problèmes de scaling liés aux paramètres par utilisateur dans Google Drive.
Pour créer un modèle à l'aide d'un compte de service, procédez comme suit avec les identifiants de l'application:
- Créez une présentation à l'aide de la méthode presentations.create dans l'API Slides.
- Modifiez les autorisations pour permettre aux destinataires de la présentation de la lire avec permissions.create dans l'API Drive ;
- Mettez à jour les autorisations pour autoriser les auteurs de modèles à y écrire des données à l'aide de permissions.create dans l'API Drive ;
- Modifiez le modèle selon vos besoins.
Pour créer une instance de la présentation, procédez comme suit : avec les identifiants de l'utilisateur:
- Créez une copie du modèle en utilisant files.copy dans l'API Drive.
- Remplacez les valeurs à l'aide de presentation.batchUpdate dans l'API Slides.