基本的な書き込み

Slides API を使用すると、プレゼンテーションのページに含まれる要素の追加や変更ができます。 このページでは、presentations.batchUpdate メソッドを使用して、一般的な書き込み処理を行う方法をサンプルを用いて説明します。

サンプルで使用する変数は次のとおりです。

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

以下の presentations.batchUpdate リクエストでは、「My Added Text Box」という文字列を含む新しいテキストボックスを pageId で指定されたスライドに追加しています。リクエスト本文には 2 つのリクエストが指定されており、1 つ目のリクエストで(指定のサイズ、位置に)テキストボックスを作成し、その中に 2 つ目のリクエストでテキストを挿入しています。

また、1 つ目のリクエストでテキストボックスに使用するオブジェクト ID を指定します。 2 つ目のリクエストで、その ID を同じ API 呼び出しの中で修正することで、オーバーヘッドを削減します。

リクエスト プロトコルは次のようになります。 テキストとシェイプの追加 ガイドには、Google API クライアント ライブラリを使用してバッチ アップデートをさまざまな言語で実装する例が示されています。

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

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

以下の presentations.batchUpdate リクエストでは、pageId で指定されたスライドに新しい画像を追加しています。 背景画像は API で取得した URL(imageUrl)を渡すことで指定します。 このリクエストによって、スライド上で画像のスケーリングと配置が行われます。

リクエスト プロトコルは次のようになります。 テキストとシェイプの追加 ガイドには、Google API クライアント ライブラリを使用してバッチ アップデートをさまざまな言語で実装する例が示されています。

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

ページやページ要素を削除する

以下の presentations.batchUpdate リクエストでは 2 つの異なるリクエストを使用して、pageElementId で指定されたページ要素と pageId で指定されたスライドを削除しています。

リクエスト プロトコルは次のようになります。 テキストとシェイプの追加 ガイドには、Google API クライアント ライブラリを使用してバッチ アップデートをさまざまな言語で実装する例が示されています。

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

指定のシェイプのテキストを編集する

以下の presentations.batchUpdate リクエストでは、pageElementId で指定されたシェイプに含まれるテキストの一部を置換しています。最初に開始インデックスから始まるテキストを削除して、その場所に新しいテキストを挿入します。 この例では、「My Shape Text: ????」という元の文字列が「My Shape Text: Trapezoid」という文字列で 置換されます。

このリクエストは、指定された 1 つのシェイプにのみ作用します。 プレゼンテーション全体でテキストを置換するには、ReplaceAllTextRequest リクエストを使用してください。

リクエスト プロトコルは次のようになります。 テキストとシェイプの追加 ガイドには、Google API クライアント ライブラリを使用してバッチ アップデートをさまざまな言語で実装する例が示されています。

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

シェイプタグを画像で置換する

以下の presentations.batchUpdate リクエストでは、タグシェイプの 1 つのインスタンスを画像で置換し、画像のアスペクト比を維持しつつ、位置を変えずに画像がタグのサイズに収まるようにスケーリングしています。このリクエストによって、任意の画像を別の画像で置換することも可能です。 このリクエストは、新しい画像を追加して、タグを削除するという処理で構成されます。

このリクエストで置換されるのは、指定した 1 つのシェイプのみです。 プレゼンテーション全体でタグシェイプを置換するには、replaceAllShapesWithImage リクエストを使用してください。

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

このシェイプは pageId で指定されたスライドに存在しています。 シェイプの置換に使う画像を指定するには、API が画像を取得する場所の URL(imageUrl)を渡します。画像がタグのサイズに収まる状態でアスペクト比を維持するには、createImage リクエストで、(期待する)画像サイズをタグのサイズとスケールの積に指定し、画像のスケール因子を 1 に設定します(アスペクト比を維持するのガイドをご覧ください)。

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

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。