Redação básica

A API Google Slides permite adicionar e modificar elementos nas páginas de uma apresentação. Os exemplos nesta página mostram como executar operações de leitura comuns usando o método presentations.batchUpdate.

Esses exemplos usam as seguintes variáveis:

  • PRESENTATION_ID: indica onde você fornece o ID da apresentação. Você pode descobrir o valor desse ID no URL da apresentação.
  • PAGE_ID: indica onde você fornece o ID do objeto da página. Recupere o valor dele no URL ou usando uma solicitação de leitura da API.
  • PAGE_ELEMENT_ID: indica onde você fornece o ID de objeto do elemento de página. Você pode especificar esse ID para os elementos criados (com algumas restrições) ou permitir que a API Slides crie um automaticamente. Os IDs dos elementos podem ser recuperados por meio de uma solicitação de leitura da API.

Esses exemplos são apresentados como solicitações HTTP para serem neutros em relação à linguagem. Para aprender a implementar uma atualização em lote em diferentes idiomas usando as bibliotecas de cliente da API do Google, consulte Adicionar formas e texto.

Adicionar uma caixa de texto a um slide

O exemplo de código presentations.batchUpdate abaixo mostra como usar o método CreateShapeRequest para adicionar uma nova caixa de texto (contendo a string "Minha caixa de texto adicionada") a um slide especificado por PAGE_ID. Duas solicitações são especificadas no corpo da solicitação: uma para criar a forma da caixa de texto (com tamanho e localização determinados) e outra para inserir texto.

A primeira solicitação especifica o ID do objeto a ser usado para a caixa de texto. Isso permite que a segunda solicitação o use na mesma chamada de API, reduzindo a sobrecarga.

Veja a seguir o protocolo de solicitação para adicionar uma caixa de texto a um slide:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "shapeType": "TEXT_BOX",
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 150,
              "unit": "PT"
            },
            "height": {
              "magnitude": 50,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Added Text Box",
        "insertionIndex": 0
      }
    }
  ]
}

Adicionar uma imagem a um slide

O exemplo de código presentations.batchUpdate abaixo mostra como usar o método CreateImageRequest para adicionar uma imagem a um slide especificado por PAGE_ID. A API recupera a imagem usando IMAGE_URL. Essa solicitação também dimensiona e posiciona a imagem no slide.

Confira a seguir o protocolo de solicitação para adicionar uma imagem a um slide:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 30,
              "unit": "PT"
            },
            "height": {
              "magnitude": 30,
              "unit": "PT"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 200,
            "translateY": 100,
            "unit": "PT"
          }
        }
      }
    }
  ]
}

Excluir uma página ou um elemento de página

O exemplo de código presentations.batchUpdate a seguir mostra como usar o método DeleteObjectRequest para excluir o elemento de página especificado por PAGE_ELEMENT_ID e o slide especificado por PAGE_ID usando duas solicitações separadas.

Confira a seguir o protocolo de solicitação para excluir uma página ou um elemento de página:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      },
      "deleteObject": {
        "objectId":  PAGE_ID
      }
    }
  ]
}

Editar texto em uma forma especificada

O exemplo de código presentations.batchUpdate abaixo mostra como usar o método DeleteTextRequest para substituir uma parte do texto na forma especificada por PAGE_ELEMENT_ID. Para fazer isso, primeiro exclua o texto usando a startIndex baseada em zero e, em seguida, insira o novo texto nessa posição. Neste exemplo, a string de texto original "Meu texto da forma: ????" é substituída por "Meu texto da forma: trapézio".

Esta solicitação afeta apenas o texto em uma forma especificada. Para substituir texto em todos os elementos de uma apresentação, use o método ReplaceAllTextRequest.

Veja a seguir o protocolo de solicitação para editar texto em uma forma especificada:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "deleteText": {
        "objectId": PAGE_ELEMENT_ID,
        "textRange": {
          "type": "FROM_START_INDEX",
          "startIndex": 15
        }
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "Trapezoid",
        "insertionIndex": 15
      }
    }
  ]
}

Substituir uma tag de forma por uma imagem

As tags são caixas de texto ou formas com um nome de string exclusivo, como "nome-do-proprietário da conta".

O exemplo de código presentations.batchUpdate a seguir mostra como usar o método CreateImageRequest para substituir uma única instância de uma tag de forma por uma imagem, mantendo a mesma posição e dimensionando para se ajustar ao tamanho da tag, mantendo a proporção da imagem.

A solicitação também pode ser usada para substituir uma imagem por outra. A solicitação consiste em adicionar a nova imagem e depois excluir a tag.

O método CreateImageRequest substitui apenas a forma especificada. Para substituir as formas de tag em toda a apresentação, use um método ReplaceAllShapesWithImageRequest.

A tag de forma tem as seguintes propriedades PageElement (que podem ser encontradas usando uma solicitação presentations.pages.get):

{
  "objectId": PAGE_ELEMENT_ID,
  "size": {
    "width": {
      "magnitude": 3000000,
      "unit": "EMU"
    },
    "height": {
      "magnitude": 3000000,
      "unit": "EMU"
    }
  },
  "transform": {
    "scaleX": 1.13,
    "scaleY": 0.62,
    "translateX": 4800000,
    "translateY":  450000,
    "unit": "EMU"
  },
  "shape": {
    "shapeType": "RECTANGLE"
  }
}

A forma está no slide especificado por PAGE_ID. Para especificar a imagem que substitui a forma, a API a recupera usando IMAGE_URL. Para preservar a proporção da imagem e a limitar ao tamanho da tag, o método CreateImageRequest define o tamanho da imagem como o produto do tamanho e da escala da tag e os fatores de escala da imagem como 1. Para saber mais, consulte Preservar a proporção.

Veja a seguir o protocolo de solicitação para substituir uma tag de forma por uma imagem:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": IMAGE_URL,
        "elementProperties": {
          "pageObjectId":  PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000 * 1.13,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000 * 0.62,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 4800000,
            "translateY": 450000,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteObject": {
        "objectId": PAGE_ELEMENT_ID
      }
    }
  ]
}