Uma aplicação útil da API Google Slides é mesclar informações de uma ou mais fontes de dados em um slide deck com modelo.
Nesta página, explicamos como extrair dados de uma fonte externa e inseri-los em uma apresentação de modelo. O conceito é semelhante ao de uma mala direta usando um processador de texto e uma planilha.
Há vários motivos para essa abordagem ser útil:
É fácil para os designers ajustar o design de uma apresentação usando o editor do Google Slides. Isso é muito mais fácil do que ajustar parâmetros no app para definir o design do slide renderizado.
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 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 ocorram 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
batchUpdateda API Slides, com um conjunto de solicitaçõesreplaceAllText, para realizar todas as substituições de texto na apresentação. UsereplaceAllShapesWithImagesolicitações para realizar substituições de imagem na 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 do "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 individuais abaixo.
Mesclar texto
Você pode usar uma replaceAllText
solicitação 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. Um dos motivos para essa ser a abordagem mais sofisticada é que os IDs dos elementos de 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 da apresentação. Em seguida, ele usa a API Google Sheets para ler dados de uma planilha do Sheets e, por fim, usa a API Slides para atualizar a nova apresentação.
O exemplo extrai 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}} ocorrem.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Mesclar imagens
Você também pode mesclar imagens na apresentação usando uma
replaceAllShapesWithImage
solicitação. 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 da apresentação. Em seguida, ele usa a API Slides para encontrar
qualquer forma com o texto {{company-logo}}
e substituí-la 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 caixa de texto ou imagem
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 especificada.
As substituições de imagem são mais complexas. Para mesclar uma imagem, você precisa:
- Receber o ID da forma da tag.
- Copiar o tamanho e transformar as informações da tag.
- Adicionar a imagem à página, usando o tamanho e transformar as informações.
- Excluir 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 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 nos dados de tamanho e transformação. Os dados de tamanho fornecidos
na createImage
solicitação são considerados o tamanho desejado da imagem. A API ajusta a proporção da imagem a esse 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 dimensionamento da imagem da seguinte maneira:
- width: definido como o produto da
widthescaleXda tag - height: definido como o produto da
heightescaleYda tag - scale_x: definido como
1 - scale_y: definido 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 dimensionamento como 1 impede que a imagem seja dimensionada duas vezes.
Essa organização garante que a proporção da imagem seja preservada e impede que a imagem exceda o tamanho da forma da tag. A imagem tem o mesmo ponto central da forma da tag.
Gerenciar modelos
Para apresentações de modelo que o aplicativo define e possui, crie o modelo usando uma conta dedicada que representa 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 de modelos, sempre use credenciais de usuário final. Isso oferece 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 do modelo 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.