iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
IT 管理

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

[Day 19] GAS - Google Doc 操作大全 Part 2 - 文字樣式 & 段落樣式

  • 分享至 

  • xImage
  •  

學完如何插入文字段落等主框架,字型、字體、段落排版等等就是下一個重點了!
這部分主要可分為 文字樣式(TextStyle)段落樣式(ParagraphStyle)
這兩部分對於文件的美化非常重要!

文字樣式 (TextStyle)

TextStyle 是用來控制文字本身的樣式,如字體、顏色、粗體、斜體、下劃線等。

使用範例:

字體、顏色、粗體、斜體、下劃線、超連結
function setTextStyle() {
  var body = DocumentApp.getActiveDocument().getBody();
  var paragraph = body.appendParagraph('我是粗體斜14號黃底藍字加底線並附上超連結');
  var text = paragraph.editAsText();

  // 設置樣式
  text.setBold(true)
      .setItalic(true)
      .setFontSize(14)
      .setForegroundColor('#0000FF')
      .setBackgroundColor('#FFFF00')
      .setUnderline(true)
      .setLinkUrl('https://www.example.com');
}

https://ithelp.ithome.com.tw/upload/images/20240911/20137680nGnnfU0UV1.png

文字對齊
    var text = body.getParagraphs()[0].editAsText();
    text.setTextAlignment(0, 0, DocumentApp.TextAlignment.SUPERSCRIPT);

常用方法:

方法名 功能 範例
setBold(isBold) 設置是否加粗 text.setBold(true);
setItalic(isItalic) 設置是否斜體 text.setItalic(true);
setFontSize(size) 設置字體大小 text.setFontSize(12);
setForegroundColor(color) 設置字體顏色 text.setForegroundColor('#ff0000');
setBackgroundColor(color) 設置字體背景顏色 text.setBackgroundColor('#ffff00');
setUnderline(isUnderline) 設置是否加下劃線 text.setUnderline(true);
setLinkUrl(url) 將文字設為超連結 text.setLinkUrl('https://example.com');
setStrikethrough(isStrike) 設置是否刪除線 text.setStrikethrough(true);
setFontFamily(fontFamily) 設置字體 text.setFontFamily('Arial');
setTextAlignment(alignment) 設置文字對齊方式 text.setTextAlignment(DocumentApp.TextAlignment.RIGHT);

段落樣式 (ParagraphStyle)

段落樣式則決定整個段落的佈局和格式,如對齊方式、縮排、行距等。Google Docs API 也提供了方法來操作段落的外觀。

使用範例:段落對齊

function setParagraphStyle() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();

  // Insert a paragraph and a table at the start of the tab.
  var par1 = body.insertParagraph(0, "Center");
  var table = body.insertTable(1, [['Left', 'Right']]);
  var par2 = table.getCell(0, 0).getChild(0).asParagraph();
  var par3 = table.getCell(0, 0).getChild(0).asParagraph();

  // Center align the first paragraph.
  par1.setAlignment(DocumentApp.HorizontalAlignment.CENTER);

  // Left align the first cell.
  par2.setAlignment(DocumentApp.HorizontalAlignment.LEFT);

  // Right align the second cell.
  par3.setAlignment(DocumentApp.HorizontalAlignment.RIGHT);
}

https://ithelp.ithome.com.tw/upload/images/20240911/20137680qwzUzH1fSQ.png

列表項目樣式 (ListItem Style)

Google Docs 當然也支持清單樣式,例如:無序列表(項目前有圓點)或有序列表(項目前有編號)。
可以使用 ListItem 來建立和修改列表。

使用範例: 無序列表 vs 有序列表

function createMixedList() {
  var body = DocumentApp.getActiveDocument().getBody();

  // 插入無序列表
  var list1 = body.appendListItem('無序列表項目 1');
  list1.setGlyphType(DocumentApp.GlyphType.BULLET);

  // 插入一個段落以分隔列表
  body.appendParagraph('');

  // 插入有序列表
  var list2 = body.appendListItem('有序列表項目 1');
  list2.setGlyphType(DocumentApp.GlyphType.NUMBER);
  
  // 新增更多有序列表項目
  body.appendListItem('有序列表項目 2').setGlyphType(DocumentApp.GlyphType.NUMBER);
}

day19 - list

Note: 如果中間沒有用 appendParagraph('') 去分隔兩個列表,body 會將兩個 item 視為同一系列 ListItem, 最後一次設置的會覆蓋掉前一次的 setGlyphType 設定

套用最後一次設定 Example:

function createList() {
  var body = DocumentApp.getActiveDocument().getBody();
  var item1 = body.appendListItem('第一項');
  var item2 = body.appendListItem('第二項');
  
  // 設置清單符號類型
  item1.setGlyphType(DocumentApp.GlyphType.BULLET);
  item2.setGlyphType(DocumentApp.GlyphType.NUMBER);
}

day19 - list2

常用方法:

方法名 功能 範例
setGlyphType(glyphType) 設置無序列表的符號類型 listItem.setGlyphType(DocumentApp.GlyphType.BULLET);
setNumberedGlyphType(type) 設置有序列表的數字符號類型 listItem.setGlyphType(DocumentApp.GlyphType.NUMBER);

哇明天即將邁入第 20 天!會來教教大家一些 google doc 應用的實例!
我們繼續加油唄~~~


上一篇
[Day 18] GAS - Google Doc 操作大全 Part 1 - 文件操作 與 Body 總覽
下一篇
[Day 20] GAS - Google Doc 實戰演練 - 文檔共享和管理 & 自動生成報告
系列文
30 天玩轉 GAS: 打造你的個人自動化助手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言