Uma aplicação útil da API Google Slides é mesclar informações de uma ou mais fontes de dados em uma apresentação de slides com modelo.
Esta página descreve como você pode extrair dados de uma fonte externa e inseri-los em uma apresentação de modelo existente. O conceito é semelhante ao de uma mesclagem de e-mails usando um processador de texto e uma planilha.
Essa abordagem é útil por vários motivos:
É fácil para designers ajustar o design de uma apresentação usando o editor do Apresentações Google. Isso é muito mais fácil do que ajustar parâmetros no app para definir o design renderizado do slide.
Separar o conteúdo da apresentação é um princípio de design conhecido com muitos benefícios.
Uma receita básica
Confira um exemplo de como usar a API Slides para mesclar dados em uma apresentação:
Crie sua apresentação como você quer que ela apareça usando o conteúdo de marcador de posição para ajudar no design.
Para cada elemento de conteúdo que você vai inserir, substitua o conteúdo do marcador de posição por uma tag. As tags são caixas de texto ou formas com uma string exclusiva. Use strings que provavelmente não vão ocorrer normalmente. Por exemplo,
{{account-holder-name}}
pode ser uma boa tag.No código, use a API Google Drive para fazer uma cópia da apresentação.
No código, use o método
batchUpdate
da API Slides, com um conjunto de solicitaçõesreplaceAllText
, para realizar todas as substituições de texto na apresentação. Use solicitaçõesreplaceAllShapesWithImage
para substituir imagens em toda a apresentação.
Depois de criar um deck com tags, faça uma cópia e use a API Slides para manipular a cópia. Não use a API Slides para manipular sua cópia principal de "modelo".
As seções a seguir incluem snippets de código que ilustram parte desse processo. Você também pode assistir ao vídeo acima para conferir um exemplo completo (Python) que combina vários conceitos das seções abaixo.
Mesclar texto
É possível usar uma solicitação replaceAllText
para substituir todas as instâncias de uma determinada string de texto em uma
apresentação por um novo texto. Para mesclagens, isso é mais simples do que
encontrar e substituir cada instância de texto individualmente. Uma das razões para essa ser a
abordagem mais sofisticada é que os IDs dos elementos da página são difíceis de prever,
especialmente quando os colaboradores refinam e mantêm a apresentação
do modelo.
Exemplo
Este exemplo usa a API Drive para copiar uma apresentação de modelo, criando uma nova instância dela. Em seguida, ele usa a API Google Sheets para ler dados de uma planilha e, por fim, usa a API Apresentações para atualizar a nova apresentação.
O exemplo usa dados de três células em uma linha de um intervalo nomeado na planilha. Em seguida, ele substitui esses dados na apresentação sempre que
as strings {{customer-name}}
, {{case-description}}
ou
{{total-portfolio}}
ocorrerem.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Mesclar imagens
Também é possível mesclar imagens na apresentação usando uma
solicitação
replaceAllShapesWithImage
. Essa solicitação substitui todas as instâncias de formas que contêm a
string de texto fornecida pela imagem fornecida. A solicitação posiciona e dimensiona automaticamente a imagem para caber nos limites da forma da tag,
preservando a proporção da imagem.
Exemplo
Este exemplo usa a API Google Drive para copiar uma apresentação de modelo, criando
uma nova instância dela. Em seguida, ele usa a API Slides para encontrar
qualquer forma com o texto {{company-logo}}
e substituí-lo por uma imagem do logotipo da empresa. A solicitação também substitui qualquer
forma com o texto {{customer-graphic}}
por uma imagem diferente.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Substituir caixas de texto ou instâncias de imagem específicas
As solicitações replaceAllText
e replaceAllShapesWithImage
são úteis para substituir tags em uma apresentação, mas
às vezes você só precisa substituir elementos de acordo com outro critério, como
estar localizado em um slide específico.
Nesses casos, é necessário recuperar os IDs das formas de tag que você quer substituir. Para substituições de texto, exclua o texto atual nessas formas e insira o novo texto. Consulte o exemplo Editar texto em uma forma específica.
As substituições de imagem são mais complexas. Para mesclar uma imagem, você precisa fazer o seguinte:
- Consiga o ID da forma da tag.
- Copie o tamanho e transforme as informações da tag.
- Adicione a imagem à página usando as informações de tamanho e transformação.
- Exclua a forma da tag.
Preservar a proporção da imagem ao dimensioná-la para o tamanho desejado pode requerer algum cuidado, conforme descrito na próxima seção. Consulte também este exemplo: Substituir uma tag de forma por uma imagem.
Preservar a proporção
Ao criar imagens usando a API Slides, os ajustes de proporção são baseados apenas no
tamanho da imagem, não no tamanho e nos dados de transformação. Os dados de tamanho fornecidos
na solicitação createImage
são considerados o tamanho desejado da imagem. A API ajusta a
proporção da imagem ao tamanho desejado e aplica a transformação fornecida.
Ao substituir uma tag por uma imagem, você preserva a proporção da imagem definindo o tamanho e a escala da imagem da seguinte maneira:
- width: definido como o produto de
width
escaleX
da tag. - height: definido como o produto do
height
e doscaleY
da tag. - scale_x: definido como
1
- scale_y: definido como
1
Isso faz com que a API Slides ajuste a imagem de acordo com o
tamanho visual da tag, em vez do tamanho não dimensionado (consulte
Substituir uma tag de forma por uma imagem).
Definir os parâmetros de dimensionamento como 1
impede que a imagem seja dimensionada
duas vezes.
Esse arranjo garante que a proporção da imagem seja preservada e impede que a imagem exceda o tamanho do formato da tag. A imagem tem o mesmo ponto central que a forma da tag.
Gerenciar modelos
Para apresentações de modelos que o aplicativo define e possui, crie o modelo usando uma conta dedicada que represente o aplicativo. As contas de serviço são uma boa escolha e evitam complicações com as políticas do Google Workspace que restringem o compartilhamento.
Ao criar instâncias de apresentações a partir de modelos, sempre use as credenciais do usuário final. Isso dá aos usuários controle total sobre a apresentação resultante e evita problemas de escalonamento relacionados a limites por usuário no Google Drive.
Para criar um modelo usando uma conta de serviço, siga estas etapas com as credenciais do aplicativo:
- Crie uma apresentação usando presentations.create na API Slides.
- Atualize as permissões para permitir que os destinatários da apresentação a leiam usando permissions.create na API Drive.
- Atualize as permissões para permitir que os autores de modelos gravem nele usando permissions.create na API Drive.
- Edite o modelo conforme necessário.
Para criar uma instância da apresentação, siga estas etapas com as credenciais do usuário:
- Crie uma cópia do modelo usando files.copy na API Drive.
- Substitua os valores usando presentation.batchUpdate na API Slides.