基本的な表現

GoogleSlide API を使用すると、プレゼンテーション ページの要素を追加、変更できます。このページの例では、presentations.batchUpdate メソッドを使用して一般的な読み取りオペレーションを行う方法を示しています。

これらの例では、次の変数を使用します。

  • PRESENTATION_ID - プレゼンテーション ID を指定する場所を示します。この ID の値はプレゼンテーションの URL から確認できます。
  • PAGE_ID - ページ オブジェクト ID を指定する場所を示します。この値は、URL から、または API 読み取りリクエストを使用して取得できます。
  • PAGE_ELEMENT_ID - ページ要素オブジェクト ID を指定する場所を示します。作成する要素にこの ID を指定するか(いくつかの制限があります)、Slides API で自動的に ID を作成することもできます。要素 ID は、API 読み取りリクエストで取得できます。

これらの例は、言語に依存しない HTTP リクエストとして表示されます。Google API クライアント ライブラリを使用してさまざまな言語でバッチ アップデートを実装する方法については、シェイプとテキストを追加するをご覧ください。

テキスト ボックスをスライドに追加する

次の presentations.batchUpdate コードサンプルは、CreateShapeRequest メソッドを使用して、PAGE_ID で指定されたスライドに新しいテキスト ボックス(「My added Text Box」を含む)を追加する方法を示しています。リクエストの本文では 2 つのリクエストを指定します。1 つはテキスト ボックスのシェイプ(指定されたサイズと位置)を作成するリクエスト、もう 1 つはテキストを挿入するリクエストです。

最初のリクエストでは、テキスト ボックスに使用するオブジェクト ID を指定します。これにより、2 番目のリクエストでその ID を同じ API 呼び出しで使用できるため、オーバーヘッドを削減できます。

スライドにテキスト ボックスを追加するリクエスト プロトコルは次のとおりです。

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

スライドに画像を追加する

次の presentations.batchUpdate コードサンプルは、CreateImageRequest メソッドを使用して、PAGE_ID で指定されたスライドに画像を追加する方法を示しています。API は、IMAGE_URL を使用して画像を取得します。このリクエストにより、スライド内の画像のスケーリングと配置も行われます。

スライドに画像を追加するためのリクエスト プロトコルは、次のとおりです。

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

ページまたはページ要素を削除する

次の presentations.batchUpdate コードサンプルは、DeleteObjectRequest メソッドを使用して、2 つの別々のリクエストを使用して、PAGE_ELEMENT_ID で指定されたページ要素と PAGE_ID で指定されたスライドを削除する方法を示しています。

ページまたはページ要素を削除するリクエスト プロトコルは次のとおりです。

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

指定した図形のテキストを編集する

次の presentations.batchUpdate コードサンプルは、DeleteTextRequest メソッドを使用して、PAGE_ELEMENT_ID で指定されたシェイプに存在するテキスト部分を置き換える方法を示しています。これを行うには、まずゼロベースの startIndex を使用してテキストを削除し、その位置に新しいテキストを挿入します。この例では、元の文字列「My Shape Text: ????」が「My Shape Text: Trapezoid」に置き換えられます。

このリクエストの対象は、指定された形状のテキストのみです。プレゼンテーション内の任意の場所をテキストを置き換えるには、ReplaceAllTextRequest メソッドを使用します。

指定された形状のテキストを編集するためのリクエスト プロトコルは次のとおりです。

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

シェイプタグを画像に置き換える

タグは、「account-holder-name」などの一意の文字列名を持つテキスト ボックスまたはシェイプです。

次の presentations.batchUpdate コードサンプルは、CreateImageRequest メソッドを使用してシェイプタグの 1 つのインスタンスを画像に置き換え、同じ位置を維持しながら、画像のアスペクト比を維持しながらタグのサイズに合わせてスケーリングする方法を示しています。

このリクエストを使用して、画像を別の画像に置き換えることもできます。このリクエストでは、新しいイメージを追加してからタグを削除します。

CreateImageRequest メソッドは、指定されたシェイプのみを置き換えます。プレゼンテーション内のあらゆる場所でタグ形状を置き換えるには、ReplaceAllShapesWithImageRequest メソッドを使用します。

シェイプタグには次の PageElement プロパティが含まれます(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"
  }
}

シェイプは PAGE_ID で指定されたスライド上にあります。シェイプを置き換える画像を指定するには、API で IMAGE_URL を使用して画像を取得します。画像のアスペクト比を維持しながら、タグのサイズに制限するには、CreateImageRequest メソッドで、画像サイズをタグのサイズとスケールの積に設定し、画像のスケーリング ファクタを 1 に設定します。詳しくは、アスペクト比を保持するをご覧ください。

シェイプタグを画像に置き換えるリクエスト プロトコルは次のとおりです。

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