Uma aplicação útil da API Google Slides é mesclar informações de uma ou mais fontes de dados em um modelo de apresentação de slides.
Esta página descreve como coletar 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.
Essa abordagem é útil por diversos motivos:
É fácil para os designers ajustar detalhes de design de uma apresentação usando o editor do Apresentações Google. É muito mais fácil do que ajustar parâmetros no seu app para definir o design do slide renderizado.
Separar o conteúdo da apresentação é um princípio de design conhecido que gera muitos benefícios.
Uma receita básica
Confira um exemplo de como usar a API Slides para mesclar dados em uma apresentação:
Crie uma apresentação exatamente com o visual que quer 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 ocorreriam 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 as solicitaçõesreplaceAllShapesWithImage
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 manipulá-la. Não use a API Slides para manipular a 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 conferir um exemplo completo (Python) que combina vários 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 combinações, isso é mais simples do que
encontrar e substituir cada instância de texto individualmente. Um dos motivos que tornam
essa abordagem a mais sofisticada é que os IDs dos elementos de página são difíceis de adivinhar,
especialmente com os colaboradores refinando e mantendo 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 do Sheets 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}}
ocorrerem.
Apps Script
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Mesclar imagens
Também é possível combinar imagens na apresentação usando uma
solicitação
replaceAllShapesWithImage
. Essa solicitação substitui todas as instâncias das formas que contêm a
string de texto informada pela imagem fornecida. A solicitação posiciona e dimensiona automaticamente a imagem para que ela caiba dentro dos limites da forma da tag,
mas sem alterar a proporção da imagem.
Exemplo
Este exemplo usa a Google Drive API 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 a substituir 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 instâncias de caixa de texto ou 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 outros critérios, como
se estão em um slide específico.
Nesses casos, você precisa recuperar os IDs das formas com tag que quer substituir. Para substituir o texto, exclua o texto atual dessas formas e insira o novo texto (consulte o exemplo Editar texto em uma forma específica).
Substituir imagens é mais complexo. Para mesclar uma imagem, você precisa:
- Conferir o ID da forma com a tag.
- Copiar 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 com a tag.
Manter a proporção da imagem com o dimensionamento para o tamanho desejado pode exigir certo cuidado, como descrito na próxima seção. Confira também este exemplo: Substituir a tag de uma forma por uma imagem.
Preservar a proporção
Ao criar imagens usando a Slides API, o ajuste da proporção se baseia somente no
tamanho da imagem, não nos dados de tamanho e transformação. Os dados de tamanho que você fornece
na solicitação createImage
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, a proporção da imagem é mantida configurando o tamanho e o dimensionamento da imagem da seguinte forma:
- width: definido como o produto de
width
escaleX
da tag. - height: definido como o produto de
height
escaleY
da 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 de considerar o tamanho não dimensionado (consulte
Substituir a tag de uma forma por uma imagem).
Definir os parâmetros de dimensionamento como 1
evita que a imagem seja dimensionada
duas vezes.
Essa configuração garante a manutenção da proporção da imagem e evita que ela exceda o tamanho da forma da tag. A imagem tem o mesmo ponto central que a forma com a tag.
Gerenciar modelos
Para apresentações padronizadas definidas e de propriedade do aplicativo, 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, use sempre as credenciais do usuário final. Assim, você dá ao usuário controle total sobre a apresentação gerada e evita problemas de dimensionamento relacionados aos limites por usuário do 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 que os destinatários da apresentação possam ler 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 os valores usando presentation.batchUpdate na API Slides.