我正在尝试在谷歌应用程序脚本中编写一些代码来检测ListItem是否具有any斜体样式。 listItem.getAttributes()[DocumentApp.Attribute.ITALIC] 仅当整个 listItem 为斜体时才会返回 true,如果部分文本或没有文本为斜体,则返回 null。即使单个字符都有斜体样式,有什么方法可以实现吗?
根据您的情况,以下示例脚本怎么样?
请将以下脚本复制并粘贴到 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 });
});
}
当在以下示例文档中使用此脚本时,
通过
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
。