Google apps script 如何在插入格式化文本后以编程方式重置格式化
我有一个脚本,可以在文档中插入格式化文本。是否有任何方法可以隔离插入文本的格式,以便用户在之后键入“正常”文本时继承自定义格式 以下是文档脚本的完整代码:Google apps script 如何在插入格式化文本后以编程方式重置格式化,google-apps-script,google-docs,Google Apps Script,Google Docs,我有一个脚本,可以在文档中插入格式化文本。是否有任何方法可以隔离插入文本的格式,以便用户在之后键入“正常”文本时继承自定义格式 以下是文档脚本的完整代码: function onOpen (){ DocumentApp.getUi() .createMenu("repro-formatting") .addItem("Insert at cursor", "insert") .addToUi(); } f
function onOpen (){
DocumentApp.getUi()
.createMenu("repro-formatting")
.addItem("Insert at cursor", "insert")
.addToUi();
}
function insert(){
var doc = DocumentApp.getActiveDocument();
var cursor = doc.getCursor();
if (!cursor) {
return;
}
var value = "###";
var text = cursor.insertText(value);
text.setBold(true);
text.setBackgroundColor("#f9cb9c");
var position = doc.newPosition(text, value.length);
doc.setCursor(position);
}
我相信你的目标如下
- 您希望在随脚本插入格式化文本后重置文本格式
- 插入格式化文本时,光标似乎具有光标左侧的文本格式。例如,它假设以下情况
- 插入
12345的文本
- 为
的文本提供自定义格式。在这种情况下,1234
是默认的文本格式5
- 将光标置于
右侧时,从此处插入新文本时,文本具有正常文本格式5
- 将光标置于
右侧时,从此处插入新文本时,文本具有自定义格式的文本4
- 当光标置于
的右侧并且按下退格键(5
被退格键删除)时,从此处插入新文本时,文本具有正常的文本格式5
- 尽管我测试了几种方法,但不幸的是,我无法复制使用脚本按下退格键的情况。在上述示例情况下,当光标放在
的右侧以及脚本删除5
时,文本格式无法从自定义格式更改5
- 当我看到您的示例GIF动画时,在您运行脚本并添加格式化文本之后,似乎您放置了一个空格并插入了一个文本。如果可以使用这种情况,我认为可以建议一种解决方法
- 在此解决方案中,使用以下流程。
- 复制光标的文本格式
- 当插入
时,将添加作为空格的##
“
- 将
插入光标并更改光标位置###
- 将复制的文本格式粘贴到
的##
。- 这样,文本格式被重置
- 您希望在随脚本插入格式化文本后重置文本格式
- 插入格式化文本时,光标似乎具有光标左侧的文本格式。例如,它假设以下情况
- 插入
12345的文本
- 为
的文本提供自定义格式。在这种情况下,1234
是默认的文本格式5
- 将光标置于
右侧时,从此处插入新文本时,文本具有正常文本格式5
- 将光标置于
右侧时,从此处插入新文本时,文本具有自定义格式的文本4
- 当光标置于
的右侧并且按下退格键(5
被退格键删除)时,从此处插入新文本时,文本具有正常的文本格式5
- 尽管我测试了几种方法,但不幸的是,我无法复制使用脚本按下退格键的情况。在上述示例情况下,当光标放在
的右侧以及脚本删除5
时,文本格式无法从自定义格式更改5
- 当我看到您的示例GIF动画时,在您运行脚本并添加格式化文本之后,似乎您放置了一个空格并插入了一个文本。如果可以使用这种情况,我认为可以建议一种解决方法
- 在此解决方案中,使用以下流程。
- 复制光标的文本格式
- 当插入
时,将添加作为空格的##
“
- 将
插入光标并更改光标位置###
- 将复制的文本格式粘贴到
的##
。- 这样,文本格式被重置
- 我相信你的目标如下
function insert() {
var doc = DocumentApp.getActiveDocument();
var cursor = doc.getCursor();
if (!cursor) {
return;
}
var format = cursor.getElement().getAttributes();
var value = "###";
value += " ";
var text = cursor.insertText(value);
text.setBold(0, value.length - 1, true);
text.setBackgroundColor(0, value.length - 1, "#f9cb9c");
var position = doc.newPosition(text, value.length);
var t = doc.setCursor(position).getCursor().getElement().asText();
t.setAttributes(t.getText().length - 1, t.getText().length - 1, format);
}