網頁、網頁元素和屬性

如要有效使用 Slide API,您必須瞭解簡報及其元件的架構,以及這些元件之間的互動方式。本頁提供這些主題的詳細總覽:

  • 簡報元件的概念模型
  • API 如何表示這些元件
  • 元件的樣式屬性

閱讀本文和其他概念總覽,將有助於您更加瞭解及使用使用指南參考說明文件食譜範例

簡報、頁面和網頁元素

Google 簡報中最外層的容器元素是呈現方式,這是指可儲存在 Google 雲端硬碟、與其他使用者共用等單位的單位。

每份簡報都包含各種類型的頁面。其中一種頁面類型是「投影片」,畫面顯示簡報時,使用者會看到及切換的頁面。

每個網頁都含有多個「網頁元素」,這些元素構成了網頁內容,如下圖所示:

投影片架構圖

除了投影片以外,還有其他類型的頁面能讓您將設計套用至許多不同的投影片,以建立一致的外觀。這些其他頁面類型為「主要」和「版面配置」,其屬性則決定投影片的算繪方式,如下圖所示:

主題架構圖

主頁面:主要頁面有兩個用途。主要的預留位置包含簡報中所有使用的文字樣式預設值。主要投影片的背景和其他形狀會組成所有採用該主投影片的預設背景。如果您希望在簡報的每張投影片中顯示公司標誌,請將其置於主要投影片中。

版面配置:版面配置範本可決定各種投影片上的內容排列方式。舉例來說,如果您希望所有標題投影片的樣式呈現特定方式,可以編輯標題版面配置範本。

目前還有兩種頁面 (說明頁面和附註主頁),這兩種頁面主要適用於使用演講者備忘稿

API 表示法類型和結構

本節將說明 Google 簡報的概念模型 (如上所述) 如何呈現在 Slide API 中。

下圖說明簡報、頁面和頁面元素之間的關係,為 Material API 中的類型。

Erd 樣式圖表

以下各節說明這些類型以 JSON 格式表示的方式。

簡報

呈現方式包含許多屬性,其中包含其中的頁面:

{
  "presentationId": string,
  "pageSize": { object(Size) },
  "slides": [ { object(Page) } ],
  "title": string,
  "masters": [ { object(Page) } ],
  "layouts": [ { object(Page) } ],
  "notesMaster": object(Page),
  "locale": string,
}

Pages

網頁包含一組屬性,其中包含其中的網頁元素:

{
  "objectId": string,
  "pageType": enum(PageType),
  "pageElements": [ { object(PageElement) } ],
  "pageProperties": { object(PageProperties) },

  // Union field properties can be only one of the following:
  "slideProperties": { object(SlideProperties) },
  "layoutProperties": { object(LayoutProperties) },
  "notesProperties": { object(NotesProperties) },
  // End of list of possible types for union field properties.
}

網頁元素

網頁元素是放置在網頁上的視覺元件。API 中的網頁元素包含多種屬性,包括根據網頁元素類型而變動的欄位:

{
  "objectId": string,
  "size": { object(Size) },
  "transform": { object(AffineTransform) },
  "title": string,
  "description": string,

  // Union field element_kind can be only one of the following:
  "elementGroup": { object(Group) },
  "shape": { object(Shape) },
  "image": { object(Image) },
  "video": { object(Video) },
  "line": { object(Line) },
  "table": { object(Table) },
  "wordArt": { object(WordArt) },
  "sheetsChart": { object(SheetsChart) },
  // End of list of possible types for union field element_kind.
}

頁面元素有多種種類,如上述定義中的聯集欄位 element_kind 所定義。下表將說明這類網頁元素:

元素種類 說明
Group 將一組網頁元素視為個別單元。並可同時移動、縮放及旋轉。
形狀 純視覺物件,例如矩形、刪節號和文字方塊。形狀可以包含文字,因此是建立投影片最常見的頁面元素。
映像檔 一張圖片已匯入 Google 簡報。
影片 已將影片匯入 Google 簡報。
折線圖 圖形線條、曲線或連接點。
資料表 內容的格狀檢視。
WordArt 運作方式更接近形狀的視覺文字元素。
SheetsChart 從 Google 試算表匯入 Google 簡報的圖表。

網頁和網頁元素屬性

透過 Slide API,您可以讀取及更新簡報中頁面和頁面元素的外觀。不同的網頁元素支援各種屬性,用於控制網頁元素的顯示方式。

每個網頁元素種類都有對應的屬性元素和屬性更新訊息,例如:

每個網頁元素類型都有相同的元素/屬性/更新要求組合:Image/imageProperties/UpdateImageProperties 等。

在讀取元素時,您都可以讀取屬性屬性;如要變更其中的值,請將該屬性與相符的要求類型做為 batchUpdate 方法的酬載使用,以便在呈現中變更這些值。

屬性種類

簡報 API 的幾種物件之間常有某些屬性:

屬性 說明
顏色 Slide API 中的顏色可以是 RGB 值或主題顏色參照。主題顏色會以名稱表示 (例如「DARK1」),可以使用網頁的色彩配置對應至 RGB 值。在簡報編輯器中變更簡報主題時,經常會更新這個色彩配置。
填滿 Fill 元素代表物件內空白空間的呈現方式。Google 簡報最常支援的填滿效果是實心填滿,且物件內部以單色填滿。填滿模式也可用於網頁背景。
描繪外框 外框代表網頁元素周圍的一組行。線條顏色可透過填滿模式控制。呼叫端也可以調整外框的寬度和虛線樣式。
Shadow 陰影代表的視覺效果,指的是物件所投射的實際陰影。目前,Slide API 中的陰影處於唯讀狀態。

更新屬性

如要更新屬性,請在 batchUpdate 呼叫中使用適當的 Update...Properties 要求,例如:形狀的 UpdateShapeProperties。這些要求會接受完整的屬性訊息,並使用欄位遮罩判斷應更新屬性訊息中的哪些欄位。

資源繼承

網頁或網頁元素可以沿用父項物件的屬性。物件的屬性 (包括其定義和繼承的屬性) 會決定其最終的視覺外觀。

  • 頁面屬性 - 網頁會繼承未定義的任何屬性,但定義在建構時的版面配置或主要屬性中。
  • 形狀屬性:形狀可以標示為預留位置,方便您明確參照另一個預留位置形狀 (在頁面的父項版面配置或主要形狀中),而這些形狀可用於繼承屬性。

我們將在後續段落中進一步說明這些概念。

沿用頁面屬性

投影片、版面配置和主投影片的結構會定義簡報中的繼承階層:投影片從版面配置繼承,以及版面配置沿用主項目的階層。投影片的父項版面配置和主投影片可在投影片的 slideProperties 欄位中指定。

網頁可以繼承上層頁面中的屬性,例如背景色彩配置。子頁面只是為了繼承屬性,不會在其 PageProperties 訊息中設定該屬性值。如果沒有「覆寫」父項定義的值,頁面會接受繼承的值。

下圖顯示沿用自主版面配置屬性的投影片:

投影片屬性繼承

用於算繪投影片的屬性是投影片定義和沿用的屬性組合。在此範例中,用於算繪投影片 1 的解析值如下:

  • 物業 A 是「紅色」。
  • 物業 B 是「Orange」。

形狀屬性繼承

形狀可以從其他形狀沿用各種屬性,例如填滿、外框或陰影。如果已設定 Shape.placeholder 欄位,形狀就會是預留位置。子項預留位置的 Shape.placeholder.parentObjectId 欄位可用來識別其父項預留位置。根據版面配置建立新投影片時,該版面配置中的所有預留位置都會在新投影片中顯示為子形狀。同樣地,主要頁面上的預留位置也可以做為版面配置預留位置的父項。

定義這個繼承階層後,子項頁面就不會在其 ShapeProperties 訊息中設定該值,進而繼承屬性。子項形狀會接受繼承的值,而不會覆寫父項定義的值。

下圖顯示投影片中的三個預留位置、版面配置和主要預留位置之間的屬性繼承情況:

形狀屬性繼承

用於轉譯預留位置形狀的屬性,是其定義和沿用的屬性組合。在此範例中,這些形狀的解析值如下:

  • Placeholder1:propertyA 呈現為「Yellow」,維護 B 為「Green」。
  • Placeholder2:propertyA 呈現為「Yellow」,PropertyB 會顯示為「Purple」。
  • Placeholder3:propertyA 呈現為「Yellow」,PropertyB 會顯示為「Purple」。

形狀是唯一可以設定父項的網頁元素類型。其他類型 (例如圖片、資料表和圖表) 不能是預留位置,且不能擁有父項。

使用 PropertyState 「隱藏」屬性

PropertyState 列舉會控制形狀屬性是否實際用於算繪,或是否僅用於子項形狀繼承。在網頁算繪形狀時,系統不會使用屬性狀態為 NOT_RENDERED 的屬性,但對應屬性狀態為 RENDERED 的子項仍可沿用這個屬性。

下圖顯示操控 PropertyState 欄位的三個預留位置之間的屬性繼承:

資源狀態與繼承

形狀屬性的呈現方式可受到屬性狀態欄位影響。在這個範例中,這些形狀的解析值如下:

  • Placeholder1:propertyA 會呈現為「Red」。
  • Placeholder2:未算繪 propertyA。如果這是外框屬性,Placeholder2 就不會有外框。
  • Placeholder3:未算繪 propertyA。

PropertyState 列舉還有一個可能的值:INHERIT 屬性狀態表示屬性狀態本身已繼承,且應使用父項值。如果形狀沒有父項,則屬性狀態不得為 INHERIT