基本書寫

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

這些範例使用下列變數:

  • PRESENTATION_ID:指出您提供簡報 ID的位置。您可以從簡報網址中找出這個 ID 的值。
  • PAGE_ID:表示您提供頁面物件 ID的位置。您可以從網址或透過 API 讀取要求擷取此值。
  • PAGE_ELEMENT_ID:指出您提供頁面元素物件 ID的位置。您可以為所建立的元素指定此 ID (並設下某些限制),或是讓 Slides API 自動建立 ID。您可以透過 API 讀取要求擷取元素 ID。

這些範例會以 HTTP 要求的形式呈現,以便在不同語言中使用。如要瞭解如何使用 Google API 用戶端程式庫,以不同語言實作批次更新,請參閱「新增形狀和文字」一文。

在投影片中新增文字方塊

以下 presentations.batchUpdate 程式碼範例說明如何使用 CreateShapeRequest 方法,在 PAGE_ID 指定的幻燈片中新增文字方塊 (包含「My Added Text Box」字串)。要求主體中會指定兩個要求:一個用於建立文字方塊形狀 (具有指定大小和位置),另一個則用於在其中插入文字。

第一個要求會指定要用於文字方塊的物件 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 方法,透過兩個個別要求刪除 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 方法,將形狀標記的單一例項替換為圖片,並維持相同位置,同時縮放至符合標記大小,同時保留圖片的顯示比例。

這項要求也可以用來替換圖片。這項要求包含新增新圖片,然後刪除標記。

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