再來複習一下 Google Slides 的架構:
今天來說說 TextRange
(文字範圍) & ParagraphStyle
(段落樣式) 這兩個元素!
TextRange
代表 Shape
內的文字範圍。可用來操作形狀(特別是文字框)中的文字內容和格式。TextRange
可以包含多個段落,每個段落又可以有自己的樣式和格式。
TextRange
用於操作形狀內的文字。可以使用 getText()
拿到文字內容,使用 setText()
來修改文字。TextRange
可以包含多個段落,可以使用 getParagraphs()
獲取其中的段落範圍。getTextStyle()
可設定或獲取某個文字範圍的字體樣式(例如字體、大小、粗體、斜體等)。Ex: 要把矩形中的文字改成"新的文字內容",並設定字體大小為 40
function modifyTextInShape() {
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlides()[0];
var shape = slide.getShapes()[0]; // 假設第一個形狀是我們要操作的
var textRange = shape.getText(); // 獲取形狀內的文字範圍
var text = textRange.asString();
Logger.log("old content: "+ text);
textRange.setText('新的文字內容'); // 設定新的文字
textRange.getTextStyle().setFontSize(40); // 設定字體大小為 40
}
ParagraphStyle
是 TextRange
的一部分,用於定義段落的格式和樣式。每個段落都有一個與之關聯的 ParagraphStyle
,可設定段落的對齊方式、縮進、行距等格式。
ParagraphStyle
提供設置段落格式的方法,例如:對齊方式(左、右、居中、兩端對齊)、縮進和間距。ParagraphStyle
只與文字的段落格式相關,不包含文字本身或字符樣式。setParagraphAlignment()
)、縮進(setIndentStart()
)、和行距。Ex: 將文字框中的文字設定置中對齊
function setParagraphAlignment() {
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlides()[0];
var shape = slide.getShapes()[0]; // 假設第一個形狀是我們要操作的
var textRange = shape.getText(); // 獲取形狀內的文字範圍
var paragraphs = textRange.getParagraphs(); // 獲取所有段落
for (var i = 0; i < paragraphs.length; i++) {
var paragraphRange = paragraphs[i].getRange(); // 獲取每個段落的文字範圍
paragraphRange.getParagraphStyle().setParagraphAlignment(SlidesApp.ParagraphAlignment.CENTER); // 設定段落居中對齊
}
}
PageElement
, Shape
, TextRange
, ParagraphStyle
四者之間的關係和差異PageElement
是所有幻燈片元素的基類。每個元素(形狀、圖片等)都是 PageElement
的一個實例。Shape
是 PageElement
的一個子類,專門用於代表幻燈片上的形狀。Shape
可以包含文字,而其他 PageElement
(如圖片)不一定。TextRange
是 Shape
內的文字範圍,用於操作形狀中的文字內容和格式。它可以包含多個段落。ParagraphStyle
是 TextRange
的一部分,用於設置和調整段落的樣式和格式。了解完 Slide 的基本用法後,我們明天就來進入實戰演練吧🥳🥳🥳