Un'applicazione utile dell'API Presentazioni Google è l'unione delle informazioni di una o più origini dati in una presentazione basata su un modello.
Questa pagina descrive come inserire i dati di un'origine esterna in una presentazione basata su un modello esistente. Il concetto è simile a quello di una unione dinamica che utilizza un elaboratore di testi e un foglio di lavoro.
Esistono diversi motivi per cui questo approccio è utile:
I progettisti possono perfezionare facilmente il design di una presentazione utilizzando l'editor di Presentazioni Google. È molto più semplice che regolare i parametri nell'app per impostare il design della slide di cui è stato eseguito il rendering.
La separazione dei contenuti dalla presentazione è un principio di progettazione ben noto con molti vantaggi.
Una ricetta di base
Ecco un esempio di come utilizzare l'API Presentazioni per unire i dati in una presentazione:
Crea la presentazione nel modo in cui vuoi che venga visualizzata utilizzando contenuti segnaposto per aiutarti con il design.
Per ogni elemento di contenuto che inserirai, sostituisci il contenuto segnaposto con un tag. I tag sono caselle di testo o forme con una stringa univoca. Assicurati di utilizzare stringhe che è improbabile che si verifichino normalmente. Ad esempio,
{{account-holder-name}}potrebbe essere un buon tag.Nel codice, utilizza l'API Google Drive per creare una copia della presentazione.
Nel codice, utilizza il metodo
batchUpdatedell'API Presentazioni con un insieme di richiestereplaceAllTextper eseguire tutte le sostituzioni di testo nella presentazione. Utilizza le richiestereplaceAllShapesWithImageper eseguire le sostituzioni di immagini nella presentazione.
Dopo aver creato una presentazione con i tag, assicurati di crearne una copia e di utilizzare l'API Presentazioni per manipolarla. Non utilizzare l'API Presentazioni per manipolare la copia "modello" principale.
Le sezioni seguenti includono snippet di codice che illustrano alcuni passaggi di questa procedura. Puoi anche guardare il video sopra per vedere un esempio completo (Python) che combina diversi concetti delle singole sezioni riportate di seguito.
Unire testo
Puoi utilizzare una replaceAllText
richiesta per sostituire tutte le istanze di una determinata stringa di testo in una
presentazione con un nuovo testo. Per le unioni, questa operazione è più semplice rispetto alla ricerca e alla sostituzione di ogni istanza di testo singolarmente. Uno dei motivi per cui questo è l'approccio più sofisticato è che gli ID degli elementi di pagina sono difficili da prevedere, soprattutto quando i collaboratori perfezionano e gestiscono la presentazione basata su un modello.
Esempio
Questo esempio utilizza l'API Drive per copiare una presentazione basata su un modello, creando una nuova istanza della presentazione. Poi utilizza l'API Google Sheets per leggere i dati da un foglio di lavoro di Fogli e infine utilizza l'API Presentazioni per aggiornare la nuova presentazione.
L'esempio prende i dati da tre celle di una riga di un intervallo denominato nel foglio di lavoro. Quindi sostituisce questi dati nella presentazione ovunque
si trovino le stringhe {{customer-name}},
{{case-description}}, o
{{total-portfolio}}.
Apps Script
Vai
Java
JavaScript
Node.js
PHP
Python
Ruby
Unire immagini
Puoi anche unire le immagini nella presentazione utilizzando una
replaceAllShapesWithImage
richiesta. Questa richiesta sostituisce tutte le istanze di forme contenenti la stringa di testo fornita con l'immagine fornita. La richiesta posiziona e ridimensiona automaticamente l'immagine in modo che si adatti ai limiti della forma del tag, mantenendo le proporzioni dell'immagine.
Esempio
Questo esempio utilizza l'API Google Drive per copiare una presentazione basata su un modello, creando una nuova istanza della presentazione. Poi utilizza l'API Presentazioni per trovare
qualsiasi forma con il testo {{company-logo}}
e sostituirla con un'immagine del logo dell'azienda. La richiesta sostituisce anche qualsiasi
forma con il testo {{customer-graphic}}
con un'immagine diversa.
Apps Script
Vai
Java
JavaScript
Node.js
PHP
Python
Ruby
Sostituire istanze specifiche di caselle di testo o immagini
Le richieste replaceAllText
e replaceAllShapesWithImage
sono utili per sostituire i tag in una presentazione, ma
a volte devi sostituire gli elementi solo in base a un altro criterio, ad esempio la posizione su una slide specifica.
In questi casi, devi recuperare gli ID delle forme dei tag che vuoi sostituire. Per le sostituzioni di testo, elimina il testo esistente in queste forme e poi inserisci il nuovo testo (vedi l'esempio Modificare il testo in una forma specifica).
Le sostituzioni di immagini sono più complesse. Per unire un'immagine, devi:
- Recuperare l'ID della forma del tag.
- Copiare le informazioni su dimensioni e trasformazione dal tag.
- Aggiungere l'immagine alla pagina utilizzando le informazioni su dimensioni e trasformazione.
- Eliminare la forma del tag.
La conservazione delle proporzioni dell'immagine durante il ridimensionamento alla dimensione desiderata potrebbe richiedere un po' di attenzione, come descritto nella sezione seguente. Vedi anche questo esempio: Sostituire un tag di forma con un'immagine.
Mantenere le proporzioni
Quando crei immagini utilizzando l'API Presentazioni, le proporzioni si basano solo sulle dimensioni dell'immagine, non sui dati di dimensioni e trasformazione. I dati sulle dimensioni forniti
nella createImage
richiesta sono considerati la dimensione desiderata dell'immagine. L'API adatta le proporzioni dell'immagine a questa dimensione desiderata, quindi applica la trasformazione fornita.
Quando sostituisci un tag con un'immagine, mantieni le proporzioni dell'immagine impostando le dimensioni e la scalabilità dell'immagine come segue:
- width: impostata sul prodotto di
widthescaleXdel tag - height: impostata sul prodotto di
heightescaleYdel tag - scale_x: impostata su
1 - scale_y: impostata su
1
In questo modo, l'API Presentazioni adatta le proporzioni dell'immagine in base alle dimensioni visive del
tag, anziché alle dimensioni non scalate (vedi
Sostituire un tag di forma con un'immagine).
L'impostazione dei parametri di scalabilità su 1 impedisce che l'immagine venga scalata due volte.
Questa disposizione garantisce che le proporzioni dell'immagine vengano mantenute e impedisce che l'immagine superi le dimensioni della forma del tag. L'immagine ha lo stesso punto centrale della forma del tag.
Gestisci modelli
Per le presentazioni basate su modelli definiti e di proprietà dell'applicazione, crea il modello utilizzando un account dedicato che rappresenta l'applicazione. Gli account di servizio sono una buona scelta ed evitano complicazioni con le norme di Google Workspace che limitano la condivisione.
Quando crei istanze di presentazioni da modelli, utilizza sempre le credenziali dell'utente finale. In questo modo, gli utenti hanno il controllo completo sulla presentazione risultante e si evitano problemi di scalabilità correlati ai limiti per utente in Google Drive.
Per creare un modello utilizzando un account di servizio, segui questi passaggi con le credenziali dell'applicazione:
- Crea una presentazione utilizzando presentations.create nell'API Presentazioni.
- Aggiorna le autorizzazioni per consentire ai destinatari della presentazione di leggerla utilizzando permissions.create nell'API Drive.
- Aggiorna le autorizzazioni per consentire agli autori dei modelli di scriverla utilizzando permissions.create nell'API Drive.
- Modifica il modello in base alle esigenze.
Per creare un'istanza della presentazione, segui questi passaggi con le credenziali utente:
- Crea una copia del modello utilizzando files.copy nell' API Drive.
- Sostituisci i valori utilizzando presentation.batchUpdate nell'API Presentazioni.