基本書寫

簡報 API 可讓您在簡報頁面上新增及修改元素。本頁的範例說明如何使用 presentations.BatchUpdate 方法執行常見的讀取作業。

這些範例使用以下變數:

  • presentationId:指出您提供簡報 ID 的位置。您可以從簡報網址找到這個 ID 的值。
  • pageId:指出您提供頁面物件 ID 的位置。您可以透過網址或使用 API 讀取要求擷取此值。
  • pageElementId:指出您提供網頁元素物件 ID 的位置。您可以為自己建立 (有一些限制) 的元素指定這個 ID,或允許 API 自動建立元素 ID;您可以透過 API 讀取要求擷取元素 ID。

在投影片中加入文字方塊

下列 presentations.BatchUpdate 要求會在 pageId 指定的投影片中新增文字方塊 (包含「My Add Text Box」字串)。要求主體中指定兩個要求,一個要求建立文字方塊 (具有指定的大小和位置),第二次則要在當中插入文字。

第一個要求會指定用於文字方塊的物件 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 擷取來源網址 (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 要求會使用兩個不同要求來刪除 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」。

此要求只會影響單一指定形狀中的文字。如要取代簡報中所有位置的文字,請使用 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 要求以圖片取代標記形狀的單一例項,保留相同位置,並配合標記的大小縮放圖片,同時維持圖片的長寬比。該要求也可以用來替換某張圖片。要求包括新增映像檔,然後刪除標記。

此要求只會取代一個指定的形狀。如要取代簡報中所有位置的標記形狀,請使用 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 網址 (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
      }
    }
  ]
}