本指南說明如何使用輔助轉換設定頁面元素的大小和位置。如需肯定轉換的概念簡介,請參閱 Transforms 概念指南。
轉換元素
Slides API 可讓您重新調整頁面上元素的位置和大小。為此,請先決定要套用哪種轉換,然後使用包含一或多個 UpdatePageElementTransformRequest 元素的 presentations.batchUpdate 方法套用該轉換。
您可以在兩個 applyModes 中產生轉換作業:
ABSOLUTE
轉換會「取代」元素現有的轉換矩陣。您在轉換更新要求中省略的任何參數,都會設為零。RELATIVE
轉換會乘上元素現有的轉換矩陣 (乘法順序很重要):
相對轉換會移動或縮放頁面元素,從目前的位置移動或縮放網頁元素,例如將形狀往左移動 100 點或將圖案旋轉 40 度。絕對轉換會捨棄現有位置和縮放資訊,例如將形狀移至頁面中央,或將形狀縮放至特定寬度。
複雜的轉換通常可以用一系列較簡單的轉換表示。 預先計算轉換 (使用矩陣乘法合併多個轉換) 通常可以減輕負擔。
進行某些作業時,您必須知道元素現有的轉換參數。如果您沒有這些值,可以使用 presentations.pages.get 要求來擷取這些值。
翻譯
翻譯是指將頁面元素移到相同頁面中新位置的動作。「絕對」翻譯會將元素移到特定點,而「相對」翻譯則會將元素移動到特定距離。
基本轉譯轉換矩陣的格式如下:
使用 UpdatePageElementTransformRequest 翻譯元素時 (且不變更元素的大小、剪裁或方向),可以使用下列其中一種 AffineTransform 結構:
// Absolute translation: { 'transform': { 'scaleX': current scaleX value, 'scaleY': current scaleY value, 'shearX': current shearX value, 'shearY': current shearY value, 'translateX': X coordinate to move to, 'translateY': Y coordinate to move to, 'unit': 'EMU' // or 'PT' } } // Relative translation (scaling must also be provided to avoid a matrix multiplication error): { 'transform': { 'scaleX': 1, 'scaleY': 1, 'translateX': X coordinate to move by, 'translateY': Y coordinate to move by, 'unit': 'EMU' // or 'PT' } }
資源調度
縮放是指沿著 X 和/或 Y 維度延展或擠壓元素的動作,藉此變更元素大小。基本縮放轉換矩陣的格式如下:
您可以直接使用此矩陣表單做為 RELATIVE
轉換,以調整元素大小,但也可能會影響元素的算繪剪刀和轉譯。如要在不影響比例或轉譯的情況下縮放元素,請切換至參考框。
旋轉
旋轉轉換功能會使用縮放和縮小參數,將頁面元素繞著某個點旋轉。基本旋轉轉換矩陣有下列格式,其中旋轉角度 (以弧度為單位) 由 X 軸測量,會逆時針移動:
與縮放一樣,您可以直接使用此矩陣表單做為 RELATIVE
轉換來旋轉元素,但這樣會導致元素根據頁面來源旋轉。如要根據元素中心或其他點旋轉元素,請切換至該參考框架。
反思時間
映射的作用是對應特定線條或軸的元素。基本的 X 軸和 Y 軸反射轉換矩陣具有下列形式:
與縮放一樣,您可以直接使用此矩陣表單做為 RELATIVE
轉換來反映元素,但這也會導致元素一併轉譯。如要在沒有翻譯的情況下反映元素,請切換至參考框架。
元素參照框架
將基本的 scale、Relection 或 rotation 轉換直接套用至頁面元素,即可在頁面參考框架中產生轉換。舉例來說,基本旋轉角度會根據頁面起點 (左上角) 旋轉元素,不過,您可以在元素本身的參考畫面中操作,例如讓元素圍繞其中心點旋轉。
如要在其參照頁框中轉換元素,請在兩個其他翻譯之間加入元素:上一個翻譯 T1
(會將元素中心移至頁面來源),以及下列轉譯 T2
(可將元素移回原始位置)。完整運算可以是矩陣產品:
您也可以切換至其他參考框架,改為將不同的點轉譯為原點。這些點會成為新參考畫面的中心。
您可以依序執行這些轉換,做為連續的 RELATIVE
轉換要求。在理想情況下,您應使用矩陣乘法預先運算上述 A'
,然後將結果套用為單一 ABSOLUTE
轉換。或者,您也可以預先運算 T2 * B * T1
產品,並將其套用為單一 RELATIVE
轉換。以 API 作業來說,這些方法會更有效率,然後再個別傳送轉換要求。
限制
部分大小和定位欄位與某些類型的網頁元素不相容。下表摘要列出特定網頁元素與「尺寸」和「位置」欄位的相容性。
欄位 | 形狀 | 影片 | 資料表 |
---|---|---|---|
Translation | ✔ | ✔ | ✔ |
擴充規模 | ✔ | ✔ | 否** |
耳朵 | ✔ | 否 | 否 |
** 如要更新表格列維度和欄維度,請使用 UpdateTableRowPropertiesRequest
和 UpdateTableColumnPropertiesRequest
。
如果網頁元素有變色,所有大小和定位欄位都可能會產生非預期的結果。所有限制都可能會變動。如需最新資訊,請參閱 Google Slides API。
Slides API 可能會重構您的值
建立頁面元素時,您可以指定大小和轉換,以提供特定視覺結果。不過,API 可能會將您提供的值替換為其他會產生相同視覺外觀的值。一般來說,使用 API 寫入大小時,不保證會傳回相同的大小。但是,如果將轉換納入考量,應該會得到相同的結果。