元素運算

Google Slides API 可讓您建立及編輯 PageElement敬上 包括文字方塊、圖片、表格、基本形狀、線條和 嵌入的影片本頁的範例為一些常見的網頁元素 並使用指令執行 presentations.batchUpdate敬上 方法。

這些範例使用下列變數:

  • PRESENTATION_ID:代表您在何處提供 簡報 ID:你可以 從呈現網址擷取這個 ID 的值。
  • PAGE_ID:指示您在提供網頁物件的位置。 ID:您可以擷取 該網址的值,或是使用 API 讀取要求。
  • PAGE_ELEMENT_ID:表示您提供頁面 元素物件 ID。個人中心 可以為您建立的元素指定此 ID (有 限制) 或允許 Slides API 自動建立投影片。元素 ID 可透過 API 讀取要求擷取。

這些範例會顯示為中立語言的 HTTP 要求。學習 如何使用 Google API 實作不同語言版本的批次更新 用戶端程式庫,請參閱下列指南:

在文字方塊中新增項目符號清單

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 InsertTextRequest 方法,將文字插入 PAGE_ELEMENT_ID。接著,範例會使用 CreateParagraphBulletsRequest敬上 方法,將所有文字方塊文字轉換為項目符號清單。清單中的項目 由 \n 個字元分隔,縮排則可使用 \t 控制 字元。

以下是建立簡報的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My List\n\tItem 1\n\t\tItem 2\n\t\t\tItem 3",
        "insertionIndex": 0
      },
      "createParagraphBullets": {
        "objectId": PAGE_ELEMENT_ID,
        "bulletPreset": "BULLET_ARROW_DIAMOND_DISC",
        "textRange": {
          "type": "ALL"
        }
      }
    }
  ]
}

這項要求可以建立項目符號清單,如下所示:

加上項目符號的清單食譜結果。

在投影片中加入圖案

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 CreateShapeRequest 方法,將波形形狀新增至 PAGE_ID 指定的投影片。 此要求指定形狀類型,然後縮放及定位形狀 然後使用 InsertTextRequest敬上 方法,將文字加入該形狀。此要求將行的 ID 設定為 PAGE_ELEMENT_ID

以下是在投影片中新增形狀的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createShape": {
        "objectId": PAGE_ELEMENT_ID,
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 0.6807,
            "scaleY": 0.4585,
            "translateX": 6583050,
            "translateY": 1673950,
            "unit": "EMU"
          }
        },
        "shapeType": "WAVE"
      }
    },
    {
      "insertText": {
        "objectId": PAGE_ELEMENT_ID,
        "text": "My Wave Shape",
        "insertionIndex": 0
      }
    }
  ]
}

在投影片中加入影片

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 CreateVideoRequest 方法,將影片嵌入由 PAGE_ID 指定的投影片。 這項要求會縮放影片並在投影片中放置,並設定影片的 ID 為 PAGE_ELEMENT_ID。來源影片的專屬 ID 為 已設為「VIDEO_ID」。例如,位於 https://www.youtube.com/watch?v=7U3axjORYZ0敬上 ID 為 7U3axjORYZ0

如要在投影片中新增影片,請遵循下方的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createVideo": {
        "objectId": PAGE_ELEMENT_ID,
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 12000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 9000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 381,
            "scaleY": 381,
            "translateX": 152400,
            "translateY": 152400,
            "unit": "EMU"
          }
        },
        "source": "YOUTUBE",
        "id": VIDEO_ID
      }
    }
  ]
}

複製並編輯元素

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 DuplicateObjectRequest 方法來接受現有形狀 (由 PAGE_ELEMENT_ID),然後建立副本 (由 COPY_ELEMENT_ID)。

後續要求則對重複的物件做出下列變更:

  • 將背景顏色設為 LIGHT2 主題顏色。
  • 將圖片向下移動 (從原始形狀的位置)。
  • 將文字字型設為 18-pt Georgia。
  • 將文字編輯成「My Shape Copy」。

這裡的要求會使用欄位遮罩保留 不會變更的形狀屬性 (例如外框樣式)。使用 欄位遮罩也有助於提升效能。

如要進一步瞭解如何複製投影片,請參閱「複製 投影片

以下是複製及編輯元素的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "duplicateObject": {
        "objectId": PAGE_ELEMENT_ID,
        "objectIds": {
          PAGE_ELEMENT_ID: COPY_ELEMENT_ID
        }
      }
    },
    {
      "updateShapeProperties": {
        "objectId": COPY_ELEMENT_ID,
        "fields": "shapeBackgroundFill.solidFill.color",
        "shapeProperties": {
          "shapeBackgroundFill": {
            "solidFill": {
              "color": {
                "themeColor": "LIGHT2"
              }
            }
          }
        }
      }
    },
    {
      "updatePageElementTransform": {
        "objectId": COPY_ELEMENT_ID,
        "applyMode": "RELATIVE",
        "transform": {
          "scaleX": 1,
          "scaleY": 1,
          "translateX": 0,
          "translateY": 1250000,
          "unit": "EMU"
        }
      }
    },
    {
      "updateTextStyle": {
        "objectId": COPY_ELEMENT_ID,
        "fields": "fontFamily,fontSize",
        "textRange": {
          "type": "ALL"
        },
        "style": {
          "fontFamily": "Georgia",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        }
      }
    },
    {
      "deleteText": {
        "objectId": COPY_ELEMENT_ID,
        "textRange": {
          "type": "ALL"
        }
      }
    },
    {
      "insertText": {
        "objectId": COPY_ELEMENT_ID,
        "text": "My Shape Copy",
        "insertionIndex": 0
      }
    }
  ]
}

變更後的形狀及文案如下:

複製並編輯元素方案結果。

編輯圖片或影片大綱

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 UpdateImagePropertiesRequest 方法來更新由 IMAGE_ELEMENT_ID。此元件也會使用 UpdateVideoPropertiesRequest敬上 方法來更新由 VIDEO_ELEMENT_ID

該要求會對物件進行下列變更:

  • 將圖片外框顏色設為含有部分內容的 ACCENT5 主題顏色 資訊公開。
  • 將影片外框顏色設為 ACCENT1 主題顏色,但沒有 資訊公開。
  • 將兩者的外框粗細設為 3 分。
  • 將圖片外框樣式設為 SOLID
  • 將影片大綱樣式設為 DASH_DOT

UpdateImagePropertiesRequest 方法和 UpdateVideoPropertiesRequest 方法只能變更圖片外觀 影片大綱所有其他屬性皆為唯讀屬性。這裡的要求會使用 欄位遮罩,可以只指定外框 以防止程式碼日後發生 API 變更。使用欄位 口罩也有助於提高效能。

下列是編輯圖片或影片大綱的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateImageProperties": {
        "objectId": IMAGE_ELEMENT_ID,
        "fields": "outline",
        "imageProperties": {
          "outline": {
            "dashStyle": "SOLID",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.8,
                "color": {
                  "themeColor": "ACCENT5"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    },
    {
      "updateVideoProperties": {
        "objectId": VIDEO_ELEMENT_ID,
        "fields": "outline",
        "videoProperties": {
          "outline": {
            "dashStyle": "DASH_DOT",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.8,
                "color": {
                  "themeColor": "ACCENT1"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    }
  ]
}

圖片和影片完成這些更新後,看起來會像這樣:

圖片和影片大綱食譜
結果。

編輯形狀的外框

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 UpdateShapePropertiesRequest 方法來接受現有形狀 (由 PAGE_ELEMENT_ID),並更新其外框外觀。

該要求會對物件進行下列變更:

  • 將外框顏色設為含有部分內容的 ACCENT5 主題顏色 資訊公開。
  • 將外框粗細設為 3 分。
  • 將外框樣式設為 LONG_DASH

這裡的要求會使用欄位遮罩保留 未變更的形狀屬性 (例如形狀填滿顏色)。使用 欄位遮罩也有助於提升效能。

下列是編輯形狀外框的要求通訊協定:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateShapeProperties": {
        "objectId": PAGE_ELEMENT_ID,
        "fields": "outline",
        "shapeProperties": {
          "outline": {
            "dashStyle": "LONG_DASH",
            "outlineFill": {
              "solidFill": {
                "alpha": 0.6,
                "color": {
                  "themeColor": "ACCENT5"
                }
              }
            },
            "weight": {
              "magnitude": 3,
              "unit": "PT"
            }
          }
        }
      }
    }
  ]
}

完成這些更新後,形狀可能如下所示:

編輯大綱方案結果。

設定圖案或文字方塊的文字格式

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 UpdateTextStyleRequest 方法來接受現有形狀 (由 PAGE_ELEMENT_ID),並更新其文字的外觀。

該要求會對物件進行下列變更:

  • 將文字顏色設為 ACCENT5 主題顏色。
  • 將字型設為粗體、斜體 18-pt Corsiva。
  • 文字加上底線。

這裡的要求會使用欄位遮罩保留 不會變更的文字樣式屬性 (例如背景顏色、 或基準偏移值)。使用欄位遮罩也有助於提升效能。

下方是要求通訊協定,用於設定形狀或文字方塊的文字格式:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "updateTextStyle": {
        "objectId": PAGE_ELEMENT_ID,
        "fields": "foregroundColor,bold,italic,fontFamily,fontSize,underline",
        "style": {
          "foregroundColor": {
            "opaqueColor": {
              "themeColor": "ACCENT5"
            }
          },
          "bold": true,
          "italic": true,
          "underline": true,
          "fontFamily": "Corsiva",
          "fontSize": {
            "magnitude": 18,
            "unit": "PT"
          }
        },
        "textRange": {
          "type": "ALL"
        }
      }
    }
  ]
}

更新後的形狀文字看起來會像這樣:

編輯文字格式方案
結果。

從 Google 試算表匯入圖表

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 CreateSheetsChartRequest 方法,從工作表匯入圖表並放到 PAGE_ID

這項要求需要試算表 ID (由 SPREADSHEET_ID) 和試算表圖表 ID (由 SPREADSHEET_CHART_ID)。當中的圖表 ID 投影片簡報是由 PRESENTATION_CHART_ID

請求也會設定 LinkingMode敬上 為 LINKED,這樣您就可以 如果來源試算表中的圖表有更新,則嵌入圖表。

以下是匯入圖表的要求通訊協定 Google 試算表:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "createSheetsChart": {
        "objectId": PRESENTATION_CHART_ID,
        "spreadsheetId": SPREADSHEET_ID,
        "chartId": SPREADSHEET_CHART_ID,
        "linkingMode": "LINKED",
        "elementProperties": {
          "pageObjectId": PAGE_ID,
          "size": {
            "width": {
              "magnitude": 4000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 4000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1,
            "translateX": 100000,
            "translateY": 100000,
            "unit": "EMU"
          }
      }
    }
  ]
}

重新整理試算表中的圖表

下列 presentations.batchUpdate敬上 程式碼範例顯示如何使用 RefreshSheetsChartRequest 方法,重新整理簡報中連結的圖表,並以最新的圖片取代 該圖表版本的圖表。 要求提供簡報投影片中的圖表 ID (由 PRESENTATION_CHART_ID 指定)。

以下是用來重新整理圖表的要求通訊協定 Google 試算表:

POST https://slides.googleapis.com/v1/presentations/PRESENTATION_ID:batchUpdate
{
  "requests": [
    {
      "refreshSheetsChart": {
        "objectId": PRESENTATION_CHART_ID
      }
    }
  ]
}