如何按背景颜色在 google 文档中搜索文本?
How to search for text in a google document by background color?
我正在尝试将 Google Doc 文件中具有特定颜色的文本的背景颜色设置为另一种颜色。
基本上我想做的是解析它,当我找到具有 "x" 背景颜色的文本时,我想通过 Apps 脚本将其更改为 "y" 背景颜色.
这是我一直在使用的代码
function onOpen() {
DocumentApp.getUi()
.createMenu('Utilities')
.addItem('Auto-Replace', 'replaceSuits')
.addToUi();
};
function replaceSuits() {
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var text = body.editAsText();
var found = text.getBackgroundColor() === '#ff8c82';
var apple = body.findText(found);
while (apple) {
var elem = apple.getElement();
if (apple.isPartial()) {
var start = apple.getStartOffset();
var end = apple.getEndOffsetInclusive();
elem.setBackgroundColor(start, end, "#000000");
}
else {
elem.setBackgroundColor("#000000");
}
apple = body.findText(found, found);
}
};
我知道我的变量是重复的并且有点荒谬,但这是由于我一直在进行各种测试,试图弄清楚为什么这段代码不起作用。我提前道歉。
关于如何有效地解决这个问题有什么想法吗?
- 您想将 Google 文档中文本的背景颜色从
#ff8c82
修改为 #000000
。
- 您想使用 Google Apps 脚本实现此目的。
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
修改点:
- 在您的情况下,通过检查
body.editAsText()
检索到的文本对象的颜色来修改颜色。
修改后的脚本:
function replaceSuits() {
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var text = body.editAsText();
// I modified below script.
for (var i = 0; i < text.getText().length; i++)
if (text.getBackgroundColor(i) == "#ff8c82") text.setBackgroundColor(i, i, "#000000");
}
参考文献:
如果我误解了你的问题,这不是你想要的方向,我很抱歉。
我正在尝试将 Google Doc 文件中具有特定颜色的文本的背景颜色设置为另一种颜色。
基本上我想做的是解析它,当我找到具有 "x" 背景颜色的文本时,我想通过 Apps 脚本将其更改为 "y" 背景颜色.
这是我一直在使用的代码
function onOpen() {
DocumentApp.getUi()
.createMenu('Utilities')
.addItem('Auto-Replace', 'replaceSuits')
.addToUi();
};
function replaceSuits() {
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var text = body.editAsText();
var found = text.getBackgroundColor() === '#ff8c82';
var apple = body.findText(found);
while (apple) {
var elem = apple.getElement();
if (apple.isPartial()) {
var start = apple.getStartOffset();
var end = apple.getEndOffsetInclusive();
elem.setBackgroundColor(start, end, "#000000");
}
else {
elem.setBackgroundColor("#000000");
}
apple = body.findText(found, found);
}
};
我知道我的变量是重复的并且有点荒谬,但这是由于我一直在进行各种测试,试图弄清楚为什么这段代码不起作用。我提前道歉。
关于如何有效地解决这个问题有什么想法吗?
- 您想将 Google 文档中文本的背景颜色从
#ff8c82
修改为#000000
。 - 您想使用 Google Apps 脚本实现此目的。
如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。
修改点:
- 在您的情况下,通过检查
body.editAsText()
检索到的文本对象的颜色来修改颜色。
修改后的脚本:
function replaceSuits() {
var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var text = body.editAsText();
// I modified below script.
for (var i = 0; i < text.getText().length; i++)
if (text.getBackgroundColor(i) == "#ff8c82") text.setBackgroundColor(i, i, "#000000");
}
参考文献:
如果我误解了你的问题,这不是你想要的方向,我很抱歉。