Una aplicación útil de la API de Presentaciones de Google es combinar información de un o más fuentes de datos en una presentación de diapositivas con plantilla.
En esta página, se describe cómo puedes obtener datos de una fuente externa e insertarla en una plantilla de presentación existente. El concepto es similar a una combinación de correo con un procesador de texto y una hoja de cálculo.
Existen varias razones por las cuales este enfoque resulta útil:
Es fácil para los diseñadores ajustar el diseño de una presentación usando el editor de Presentaciones de Google. Esto es mucho más fácil que ajustar los parámetros en tu app para configurar el diseño de las diapositivas renderizadas.
Separar el contenido de la presentación es un diseño conocido con muchos beneficios.
Una receta básica
Este es un ejemplo de cómo puedes usar la API de Presentaciones para combinar datos en una presentación:
Crea tu presentación como quieras que aparezca con marcador de posición para ayudarte con el diseño.
Por cada elemento de contenido que insertarás, reemplaza el marcador de posición el contenido con una etiqueta. Las etiquetas son cuadros de texto o formas con una cadena única. Asegúrate de usar cadenas que tienen pocas probabilidades de ocurrir normalmente. Por ejemplo:
{{account-holder-name}}
podría ser una buena etiqueta.En tu código, usa la API de Google Drive para hacer una copia de la presentación.
En tu código, usa las APIs de Presentaciones
batchUpdate
con un conjunto dereplaceAllText
para realizar todas las sustituciones de texto durante la presentación. UsareplaceAllShapesWithImage
. para realizar sustituciones de imágenes durante toda la presentación.
Una vez que hayas creado una presentación con etiquetas, asegúrate de hacer una copia y usar la API de Presentaciones para manipular el texto. No uses la API de Presentaciones para manipular tu “plantilla” principal copia.
Las siguientes secciones incluyen fragmentos de código que ilustran algo de esto el proceso de administración de recursos. También puedes ver el video anterior para ver un ejemplo completo (Python), combinando varios de los conceptos de las secciones individuales que aparecen a continuación.
Combinar texto
Puedes usar un replaceAllText
para reemplazar todas las instancias de una cadena de texto dada en una
presentación con texto nuevo. Para las combinaciones, esto es más simple que
buscar y reemplazar cada instancia de texto de forma individual. Una de las razones por las que se trata de
enfoque más sofisticado es que los IDs de los elementos de la página son difíciles de predecir
especialmente cuando los colaboradores perfeccionan y mantienen la plantilla
presentación.
Ejemplo
En este ejemplo, se usa la API de Drive para copiar una presentación de plantilla, lo que hace que una nueva instancia de la presentación. Luego, usa la API de Google Sheets para leer los datos de un archivo de Hojas de cálculo y, por último, usa la API de Presentaciones para actualizar la presentación nueva.
El ejemplo toma datos de 3 celdas en una fila de un rango con nombre en la
en una hoja de cálculo. Luego, sustituye esos datos en la presentación donde sea que
las cadenas {{customer-name}}
{{case-description}}
o
{{total-portfolio}}
.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Rita
Combinar imágenes
También puedes combinar imágenes en tu presentación con una
replaceAllShapesWithImage
para cada solicitud. Esta solicitud reemplaza todas las instancias de formas que contienen los
cadena de texto proporcionada con la imagen proporcionada. La solicitud se realiza automáticamente
posiciona y ajusta la imagen para que se ajuste a los límites de la forma de la etiqueta, mientras que
y conserva la relación de aspecto de la imagen.
Ejemplo
En este ejemplo, se usa la API de Google Drive para copiar una plantilla de presentación, lo que hace que
una nueva instancia de la presentación. Luego, usa la API de Presentaciones para buscar
cualquier forma con el texto {{company-logo}}
y reemplazarlo por la imagen del logotipo de una empresa. La solicitud también reemplaza
forma con el texto {{customer-graphic}}
por otra imagen.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Rita
Reemplazar el cuadro de texto o las instancias de imagen específicos
La replaceAllText
y replaceAllShapesWithImage
son útiles para reemplazar etiquetas en una presentación, pero
a veces, solo necesitas reemplazar los elementos según otro criterio, como
si se ubican en una diapositiva específica.
En estos casos, debes recuperar los IDs de las formas de etiquetas que reemplazar. Para los reemplazos de texto, borra el texto en esas formas y, luego, inserta el texto nuevo (consulta el Edita texto en una forma especificada).
El reemplazo de imágenes es más complejo. Para combinar en una imagen, debes:
- Obtén el ID de la forma de etiqueta.
- Copia la información sobre tamaño y transformación de la etiqueta.
- Agrega tu imagen a la página con la información de tamaño y transformación.
- Borra la forma de la etiqueta.
Conservar la relación de aspecto de la imagen y, al mismo tiempo, ajustarla al tamaño deseado requerir cierto cuidado, como se describe en la siguiente sección. Consulta también este ejemplo: Reemplaza una etiqueta de forma por una imagen.
Conservar la relación de aspecto
Cuando creas imágenes con la API de Presentaciones, los ajustes de aspecto se basan únicamente en el
de la imagen, no en el tamaño y
transformar los datos. Los datos de tamaño que proporciones
en la createImage
solicitud se considera el tamaño deseado de la imagen. La API se adapta a
la relación de aspecto de la imagen a este tamaño deseado y, luego, aplica la transformación proporcionada.
Cuando se reemplaza una etiqueta por una imagen, se conserva su aspecto de aspecto configurando el tamaño y el ajuste de la imagen de la siguiente manera:
- width: Se establece en el producto de
width
yscaleX
de la etiqueta. - height: Se establece en el producto de
height
yscaleY
de la etiqueta. - scale_x: establecido en
1
- scale_y: establecido en
1
Esto hace que la API de Presentaciones se ajuste al aspecto de la imagen según el
tamaño visual de la etiqueta, en lugar del tamaño sin ajustar (consulta
Reemplaza una etiqueta de forma por una imagen).
Establecer los parámetros de ajuste de escala en 1
evita que se ajuste la imagen
dos veces.
Esta disposición garantiza que se conserve la relación de aspecto de la imagen y evita para evitar que la imagen exceda el tamaño de la forma de la etiqueta. La imagen tiene el mismo punto central que la forma de etiqueta.
Administrar plantillas
Para las presentaciones de plantillas que la aplicación define y posee, crea la plantilla usando una cuenta dedicada que representa la aplicación. Cuentas de servicio son una buena opción y evitan complicaciones con políticas de Google Workspace que restrinjan para compartir.
Cuando crees instancias de presentaciones a partir de plantillas, siempre usa credenciales de usuario final. Esto les da a los usuarios control total y evita los problemas de escalamiento relacionados con los modelos límites en Google Drive.
Para crear una plantilla con una cuenta de servicio, sigue estos pasos con las credenciales de la aplicación:
- Crea una presentación con presentations.create en la API de Presentaciones.
- Actualiza los permisos para que los destinatarios de la presentación puedan leerla permissions.create en la API de Drive
- Actualiza los permisos para permitir que los autores de plantillas escriban en ella permissions.create en la API de Drive
- Edita la plantilla según sea necesario.
Para crear una instancia de la presentación, sigue estos pasos: con las credenciales de usuario:
- Crea una copia de la plantilla usando files.copy en la API de Drive
- Reemplaza los valores usando presentation.batchUpdate en la API de Presentaciones.