Écriture de base

L'API Google Slides vous permet d'ajouter et de modifier des éléments sur les pages de présentation. 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:

  • PRESENTATION_ID : indique où vous devez fournir l'ID de présentation. Vous pouvez trouver la valeur de cet ID dans l'URL de la présentation.
  • PAGE_ID : indique où vous devez fournir l'ID de l'objet de la page. Vous pouvez récupérer la valeur correspondante à partir de l'URL ou à l'aide d'une requête de lecture d'API.
  • PAGE_ELEMENT_ID : indique où vous devez fournir l'ID de l'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 Slides à 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.

Ces exemples sont présentés sous forme de requêtes HTTP pour être neutres en termes de langue. Pour savoir comment implémenter une mise à jour par lot dans différentes langues à l'aide des bibliothèques clientes des API Google, consultez Ajouter des formes et du texte.

Ajouter une zone de texte à une diapositive

L'exemple de code presentations.batchUpdate suivant montre comment utiliser la méthode CreateShapeRequest pour ajouter une zone de texte (contenant la chaîne "My Added Text Box") à une diapositive spécifiée par PAGE_ID. Deux requêtes sont spécifiées dans le corps de la requête : l'une pour créer la forme de la zone de texte (avec une taille et un emplacement donnés) et l'autre pour y insérer du texte.

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

Voici le protocole de requête pour ajouter une zone de texte à une diapositive:

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
      }
    }
  ]
}

Ajouter une image à une diapositive

L'exemple de code presentations.batchUpdate suivant montre comment utiliser la méthode CreateImageRequest pour ajouter une image à une diapositive spécifiée par PAGE_ID. L'API récupère l'image à l'aide de IMAGE_URL. Cette requête met également à l'échelle et positionne l'image dans la diapositive.

Voici le protocole de requête pour ajouter une image à une diapositive:

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"
          }
        }
      }
    }
  ]
}

Supprimer une page ou un élément de page

L'exemple de code presentations.batchUpdate suivant montre comment utiliser la méthode DeleteObjectRequest pour supprimer l'élément de page spécifié par PAGE_ELEMENT_ID et la diapositive spécifiée par PAGE_ID à l'aide de deux requêtes distinctes.

Voici le protocole de requête pour supprimer une page ou un élément de page:

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

Modifier le texte dans une forme spécifiée

L'exemple de code presentations.batchUpdate suivant montre comment utiliser la méthode DeleteTextRequest pour remplacer une partie du texte présent dans la forme spécifiée par PAGE_ELEMENT_ID. Pour ce faire, supprimez d'abord le texte à l'aide de startIndex basé sur zéro, puis insérez un nouveau texte à cette position. Dans cet exemple, la chaîne de texte d'origine "Mon texte de forme: ????" est remplacée par "Mon texte de forme: Trapèze".

Cette requête n'affecte que le texte d'une forme spécifiée. Pour remplacer du texte partout dans une présentation, utilisez la méthode ReplaceAllTextRequest.

Voici le protocole de requête permettant de modifier du texte dans une forme spécifiée:

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
      }
    }
  ]
}

Remplacer une balise de forme par une image

Les balises sont des zones de texte ou des formes associées à un nom de chaîne unique, comme "nom-du-titulaire-du-compte".

L'exemple de code presentations.batchUpdate suivant montre comment utiliser la méthode CreateImageRequest pour remplacer une seule instance d'une balise de forme par une image, en conservant la même position et en la redimensionnant pour qu'elle s'adapte à la taille de la balise tout en conservant le format 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.

La méthode CreateImageRequest ne remplace qu'une forme spécifiée. Pour remplacer les formes de balise partout dans une présentation, utilisez une méthode ReplaceAllShapesWithImageRequest.

La balise de forme comporte les propriétés PageElement suivantes (que vous pouvez trouver à l'aide d'une requête 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"
  }
}

La forme se trouve sur la diapositive spécifiée par PAGE_ID. Pour spécifier l'image qui remplace la forme, l'API la récupère à l'aide de IMAGE_URL. Pour conserver le format de l'image tout en le limitant à la taille de la balise, la méthode CreateImageRequest définit la taille de l'image sur le produit de la taille et de l'échelle de la balise, et les facteurs d'échelle de l'image sur 1. Pour en savoir plus, consultez Conserver le format.

Voici le protocole de requête à suivre pour remplacer une balise de forme par une image:

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
      }
    }
  ]
}