iT邦幫忙

2024 iThome 鐵人賽

DAY 15
0
IT 管理

30 天玩轉 GAS: 打造你的個人自動化助手系列 第 15

[Day 15] GAS - Google Slide 操作大全 Part 3 - 文字範圍 TextRange & 段落樣式 ParagraphStyle

  • 分享至 

  • xImage
  •  

再來複習一下 Google Slides 的架構:

  • Presentation (簡報): 包含多個 Slide (幻燈片)。
  • Slide (幻燈片): 包含多個 PageElement (頁面元素),如形狀和圖片。
  • PageElement (頁面元素): 可以是 Shape (形狀)、Image (圖片) 等。
  • Shape (形狀): 可以包含文字和其他格式。文字用 TextRange (文字範圍) 來表示。
  • TextRange (文字範圍): 包含一段文字的內容,可以設置文字和段落樣式。
  • ParagraphStyle (段落樣式): 用於設置段落的格式(例如對齊方式)。

今天來說說 TextRange(文字範圍) & ParagraphStyle(段落樣式) 這兩個元素!

5. TextRange (文字範圍)

TextRange 代表 Shape 內的文字範圍。可用來操作形狀(特別是文字框)中的文字內容格式TextRange 可以包含多個段落,每個段落又可以有自己的樣式和格式。

特點:

  • 文字內容和格式TextRange 用於操作形狀內的文字。可以使用 getText() 拿到文字內容,使用 setText() 來修改文字。
  • 多個段落:一個 TextRange 可以包含多個段落,可以使用 getParagraphs() 獲取其中的段落範圍。
  • 字符樣式getTextStyle() 可設定或獲取某個文字範圍的字體樣式(例如字體、大小、粗體、斜體等)。

主要用途:

  • 用於操作形狀中的文字,例如讀取或更改文字內容,設置文字格式(如字體、大小、顏色),以及處理段落的樣式(如對齊和間距)。

example: 更改 Shape 中文字的內容和格式

Ex: 要把矩形中的文字改成"新的文字內容",並設定字體大小為 40

https://ithelp.ithome.com.tw/upload/images/20240928/20137680oWJ3VSr9Rr.png

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
}

result

https://ithelp.ithome.com.tw/upload/images/20240928/20137680YhG8hmlMIK.png
https://ithelp.ithome.com.tw/upload/images/20240902/20137680FpviXFpXxw.png

6. ParagraphStyle (段落樣式)

ParagraphStyleTextRange 的一部分,用於定義段落的格式和樣式。每個段落都有一個與之關聯的 ParagraphStyle,可設定段落的對齊方式、縮進、行距等格式。

特點:

  • 段落格式ParagraphStyle 提供設置段落格式的方法,例如:對齊方式(左、右、居中、兩端對齊)、縮進和間距。
  • 不包含文字ParagraphStyle 只與文字的段落格式相關,不包含文字本身或字符樣式。

主要用途:

  • 用於設置和修改段落的樣式,例如對齊方式(setParagraphAlignment())、縮進(setIndentStart())、和行距。

example: 設置文字對齊

Ex: 將文字框中的文字設定置中對齊

https://ithelp.ithome.com.tw/upload/images/20240902/20137680g8DNjm9kAe.png

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); // 設定段落居中對齊
    }
  }

result

https://ithelp.ithome.com.tw/upload/images/20240902/20137680oeEURjqfRo.png

總結:PageElement, Shape, TextRange, ParagraphStyle 四者之間的關係和差異

  • PageElement 是所有幻燈片元素的基類。每個元素(形狀、圖片等)都是 PageElement 的一個實例。
  • ShapePageElement 的一個子類,專門用於代表幻燈片上的形狀。Shape 可以包含文字,而其他 PageElement(如圖片)不一定。
  • TextRangeShape 內的文字範圍,用於操作形狀中的文字內容和格式。它可以包含多個段落。
  • ParagraphStyleTextRange 的一部分,用於設置和調整段落的樣式和格式。

了解完 Slide 的基本用法後,我們明天就來進入實戰演練吧🥳🥳🥳


上一篇
[Day 14] GAS - Google Slide 操作大全 Part 2 - 頁面元素 PageElement & 形狀 Shape
下一篇
[Day 16] GAS - 實例操作 - 新增超連結至元素上(1/2)
系列文
30 天玩轉 GAS: 打造你的個人自動化助手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言