Écriture de base

L'API Slides vous permet d'ajouter et de modifier des éléments sur les pages de présentations. Les exemples de cette page montrent comment effectuer des opérations de lecture courantes à l'aide de la méthode presentations.batchUpdate.

Ces exemples utilisent les variables suivantes:

  • presentationId : indique l'endroit où vous fournissez l'ID de présentation. Vous pouvez découvrir la valeur de cet ID à partir de l'URL de la présentation.
  • pageId : indique où vous fournissez l'ID d'objet de page. Vous pouvez récupérer la valeur à partir de l'URL ou d'une requête de lecture de l'API.
  • pageElementId : indique l'endroit où vous fournissez l'ID d'objet de l'élément de page. Vous pouvez spécifier cet ID pour les éléments que vous créez (avec certaines restrictions) ou autoriser l'API à en créer un automatiquement. Les ID d'élément peuvent être récupérés via une requête de lecture de l'API.

Ajouter une zone de texte à une diapositive

La requête presentations.batchUpdate suivante ajoute une nouvelle zone de texte (contenant la chaîne "My added Text Box") à une diapositive spécifiée par pageId. Deux requêtes sont spécifiées dans le corps de la requête : une pour créer la zone de texte (avec une taille et un emplacement donnés) et une seconde pour y insérer du texte.

La première requête spécifie l'ID d'objet à utiliser pour la zone de texte. Cela permet à la deuxième requête de la modifier dans le même appel d'API, ce qui réduit les frais généraux.

Le protocole de requête est présenté ci-dessous. Le guide Ajouter du texte et des formes montre un exemple qui implémente une mise à jour par lot dans différents langages à l'aide des bibliothèques clientes de l'API Google.

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

Ajouter une image à une diapositive

La requête presentations.batchUpdate suivante ajoute une nouvelle image à une diapositive spécifiée par pageId. L'image est spécifiée en fournissant une URL (imageUrl) à partir de laquelle l'API récupère les données. Cette requête redimensionne et positionne l'image dans la diapositive.

Le protocole de requête est présenté ci-dessous. Le guide Ajouter du texte et des formes montre un exemple qui implémente une mise à jour par lot dans différents langages à l'aide des bibliothèques clientes de l'API Google.

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

Supprimer une page ou un élément de page

La requête presentations.batchUpdate suivante supprime l'élément de page spécifié par pageElementId et la diapositive spécifiée par pageId à l'aide de deux requêtes distinctes.

Le protocole de requête est présenté ci-dessous. Le guide Ajouter du texte et des formes montre un exemple qui implémente une mise à jour par lot dans différents langages à l'aide des bibliothèques clientes de l'API Google.

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "deleteObject": {
        "objectId": pageElementId
      },
      "deleteObject": {
        "objectId": pageId
      }
    }
  ]
}

Modifier le texte dans une forme spécifique

La requête presentations.batchUpdate suivante remplace une partie du texte présent dans la forme spécifiée par pageElementId. Pour cela, commencez par supprimer du texte à partir d'un index de départ, puis insérez un nouveau texte à cette position. Dans cet exemple, la chaîne de texte d'origine "My Shape Text: ????" est remplacée par "My Shape Text: Trapezoid".

Cette requête affecte uniquement le texte dans une seule forme spécifiée. Pour remplacer du texte n'importe où dans une présentation, utilisez une requête ReplaceAllTextRequest.

Le protocole de requête est présenté ci-dessous. Le guide Ajouter du texte et des formes montre un exemple qui implémente une mise à jour par lot dans différents langages à l'aide des bibliothèques clientes de l'API Google.

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

Remplacer une balise de forme par une image

La requête presentations.batchUpdate suivante remplace une seule instance de la forme d'un tag par une image, en conservant la même position et en l'ajustant à la taille du tag, tout en conservant les proportions de l'image. La requête peut également être utilisée pour remplacer une image par une autre. La requête consiste à ajouter la nouvelle image, puis à supprimer le tag.

Cette requête ne remplace qu'une seule forme spécifiée. Pour remplacer les formes de tags partout dans une présentation, utilisez une requête replaceAllShapesWithImage.

La forme de la balise possède les propriétés suivantes (disponibles avec une requête presentations.pages.get):

{
  "objectId": pageElementId,
  "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"
  }
}

Cette forme se trouve sur la diapositive spécifiée par pageId. Pour spécifier l'image qui remplacera la forme, indiquez une URL (imageUrl) à partir de laquelle l'API pourra extraire l'image. Pour conserver les proportions de l'image tout en la limitant à la taille du tag, la requête createImage définit la taille d'image (souhaitée) sur le produit de la taille et de l'échelle du tag, et la mise à l'échelle de l'image est définie sur 1 (consultez le guide Conserver les proportions).

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "createImage": {
        "url": imageUrl,
        "elementProperties": {
          "pageObjectId": pageId,
          "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": pageElementId
      }
    }
  ]
}