如何判断ListItem是否有斜体文本?

问题描述 投票:0回答:1

我正在尝试在谷歌应用程序脚本中编写一些代码来检测ListItem是否具有any斜体样式。 listItem.getAttributes()[DocumentApp.Attribute.ITALIC] 仅当整个 listItem 为斜体时才会返回 true,如果部分文本或没有文本为斜体,则返回 null。即使单个字符都有斜体样式,有什么方法可以实现吗?

google-apps-script google-docs
1个回答
0
投票

根据您的情况,以下示例脚本怎么样?

示例脚本:

请将以下脚本复制并粘贴到 Google 文档的脚本编辑器中,然后保存脚本。

function myFunction() {
  const doc = DocumentApp.getActiveDocument();
  const body = doc.getBody();
  const listItems = body.getListItems();
  listItems.forEach(e => {
    const textObj = e.editAsText();
    const text = textObj.getText();
    const isItalic = [...Array(text.length)].some((_, i) => textObj.isItalic(i));
    console.log({ isItalic, text });
  });
}

测试:

当在以下示例文档中使用此脚本时,

enter image description here

通过

console.log({ isItalic, text })
得到以下结果。在此示例中,
text
sample text 1
3
sample text 3
设置为斜体类型。

{ isItalic: true, text: 'sample text 1' }

{ isItalic: false, text: 'sample text 2' }

{ isItalic: true, text: 'sample text 3' }

您可以看到

sample text 1
sample text 3
返回
true

© www.soinside.com 2019 - 2024. All rights reserved.