Uma aplicação útil da API Google Slides é mesclar informações de uma ou mais fontes de dados em uma apresentação com modelo.
Nesta página, descrevemos como inserir dados de uma fonte externa em uma apresentação de modelo. O conceito é semelhante ao de uma mala direta usando um processador de texto e uma planilha.
Essa abordagem é útil por vários motivos:
É fácil para os designers ajustar o design de uma apresentação usando o editor das Apresentações Google. Isso é muito mais fácil do que ajustar parâmetros no app para definir o design do slide renderizado.
Separar 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 a apresentação da maneira que você quer que ela apareça usando 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 seu código, use a API Google Drive para fazer uma cópia da apresentação.
No seu código, use o método
batchUpdate
da API Slides, com um conjunto de solicitaçõesreplaceAllText
para fazer todas as substituições de texto na apresentação. Use solicitaçõesreplaceAllShapesWithImage
para substituir imagens em toda a apresentação.
Depois de criar uma apresentação 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 do "modelo".
As seções a seguir incluem snippets de código que ilustram parte desse processo. Você também pode assistir o vídeo acima para ver um exemplo completo (Python) que combina vários dos conceitos das seções individuais abaixo.
Mesclar texto
Você pode 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 um modelo de apresentação, 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 Slides 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}}
aparecem.
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 de
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 um modelo de apresentação, criando
uma nova instância da apresentação. Em seguida, ele usa a API Slides para encontrar
qualquer forma com o texto {{company-logo}}
e substituir por uma imagem de 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 instâncias específicas de caixas de texto ou imagens
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 existente nessas formas e insira o novo texto (consulte o exemplo Editar texto em uma forma específica).
As substituições de imagens são mais complexas. Para mesclar em uma imagem, você precisa:
- Consiga o ID da forma da tag.
- Copie as informações de tamanho e transformação 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 exigir alguns cuidados, conforme descrito na seção a seguir. Consulte também este exemplo: Substituir uma tag de forma por uma imagem.
Preservar proporção
Ao criar imagens usando a API Slides, os ajustes de proporção são baseados apenas no tamanho da imagem, não nos dados de tamanho e 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 o escalonamento da seguinte maneira:
- width: definido como o produto de
width
escaleX
da tag. - height: definido como o produto de
height
escaleY
da tag. - scale_x: defina como
1
- scale_y: defina como
1
Isso faz com que a API Slides ajuste a proporção da 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 escalonamento como 1
evita que a imagem seja escalonada duas vezes.
Essa disposição garante que a proporção da imagem seja preservada e evita que ela exceda o tamanho da forma da tag. A imagem tem o mesmo ponto central que a forma da tag.
Gerenciar modelos
Para apresentações de modelo 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 opção e evitam complicações com as políticas do Google Workspace que restringem o compartilhamento.
Ao criar instâncias de apresentações com base em modelos, sempre use credenciais de usuário final. Isso dá aos usuários controle total sobre a apresentação resultante e evita problemas de escalonamento relacionados aos 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 leiam o conteúdo usando permissions.create na API Drive.
- Atualize as permissões para permitir que os criadores 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 valores usando presentation.batchUpdate na API Slides.