要對 Google slides 做進一步的操作前,再來跟大家複習一下 Google Slides 的架構
今天來說說 PageElement & Shape 這兩個元素!
PageElement
是 Google Slides 中的一個通用類別,代表幻燈片上的任何元素。這個類別包含了所有可以放在幻燈片上的元素,包括形狀、圖片、線條等。它是這些元素的基礎類別,也就是說,所有的形狀、圖片等都繼承自 PageElement
。
PageElement
是所有幻燈片元素的基類。無論是形狀、圖片還是線條,這些元素都被視為 PageElement
。PageElement
提供了許多通用的方法,例如獲取元素的大小 (getWidth()
和 getHeight()
)、位置 (getLeft()
和 getTop()
),或是刪除元素 (remove()
).當你需要操作幻燈片上多種類型的元素時,可以使用 PageElement
來獲取這些元素,然後再進行具體的操作。
function listPageElements() {
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlides()[0]; // 取得第一張幻燈片
var pageElements = slide.getPageElements(); // 取得幻燈片上的所有頁面元素
for (var i = 0; i < pageElements.length; i++) {
Logger.log(pageElements[i].getPageElementType()); // 列出每個元素的類型
}
}
Note: 沒錯唷! 文字框也隸屬在 Shape 這個 Type 下面!
當然!以下是可能的 PageElementType
類型,整理成 Markdown 格式的表格:
PageElementType |
說明 |
---|---|
SlidesApp.PageElementType.SHAPE |
形狀,例如矩形、橢圓、箭頭、文字框等。 |
SlidesApp.PageElementType.IMAGE |
圖片,例如插入的圖片或屏幕截圖。 |
SlidesApp.PageElementType.VIDEO |
影片,例如嵌入的 YouTube 影片。 |
SlidesApp.PageElementType.LINE |
線條,可以是直線、曲線或箭頭。 |
SlidesApp.PageElementType.TABLE |
表格元素,包含多個儲存格和行列。 |
SlidesApp.PageElementType.WORD_ART |
藝術字(Word Art),格式化的圖片形式文字。 |
SlidesApp.PageElementType.GROUP |
元素組合,將多個元素組合在一起操作。 |
SlidesApp.PageElementType.SHEET_CHART |
從 Google Sheets 插入的圖表。 |
Shape
是 PageElement
的一種,專門代表投影片上的形狀。Shape 很高機率被用到!因為他可以是文字框,因此讓我們也用一點篇幅來介紹一下!其他 Page Element 類型詳細可看上面的表格再去查官方手冊!
形狀可以是各種圖形,例如矩形、橢圓、箭頭,或者文字框(Text Box)。沒錯!文字框也是一種形狀,只是它專門用來包含文字。
Shape
繼承自 PageElement
,所以它具有所有 PageElement
的通用方法。另外,Shape
提供了許多專門操作形狀的功能。Shape
可以包含文字。你可以使用 getText()
方法獲取形狀中的文字範圍(TextRange
)。getShapeType()
方法來檢查 Shape
是什麼類型(例如矩形、圓形、箭頭或文字框)。function addRectangleShape() {
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlides()[0]; // 取得第一張幻燈片
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE, 100, 100, 300, 100); // 插入一個矩形
shape.getText().setText('這是矩形中的文字'); // 設定形狀中的文字
}
可以調整形狀背景和文字顏色嗎?
A: 當然可以
function addOrgRectangleShape() {
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlides()[0]; // 取得第一張幻燈片
var shape = slide.insertShape(SlidesApp.ShapeType.RECTANGLE, 100, 100, 300, 100); // 插入一個矩形
// 設置矩形的背景顏色
shape.getFill().setSolidFill('#FF5733'); // 設置背景顏色為橙色
// 插入文字並設置文字顏色為白色
var textRange = shape.getText();
textRange.setText('這是矩形中的白色文字');
textRange.getTextStyle().setForegroundColor('#FFFFFF'); // 設置文字顏色為白色
}
接下來就繼續來看看 TextRange
(文字範圍) 和 ParagraphStyle
(段落樣式) 吧!