Estoy escribiendo un script de aplicación y estoy tratando de crear una función que resalte un fragmento de texto en particular. El resultado del código es que resalto toda la línea en lugar de solo el texto.
Antes:
Después:
Lo que quiero:
Aquí está mi código:
function myFun4(){ var selection = DocumentApp.getActiveDocument().getSelection(); if(selection){ var el = selection.getRangeElements(); Logger.log(el[0].getElement().getAttributes()); var el0 = el[0].getElement(); Logger.log(el0.asText()); var highlightStyle = {}; highlightStyle[DocumentApp.Attribute.BOLD] = true; highlightStyle[DocumentApp.Attribute.BACKGROUND_COLOR] = '#FFFF00'; el0.setAttributes(highlightStyle); } }Creo que su objetivo es el siguiente.
En este caso, ¿qué tal la siguiente modificación?
Cuando utilice este script, seleccione un texto en el documento de Google y ejecute el script.
function myFun4(){ var selection = DocumentApp.getActiveDocument().getSelection(); if(selection){ selection.getRangeElements().forEach(e => { var range = [e.getStartOffset(), e.getEndOffsetInclusive()]; e.getElement().asText() .setBackgroundColor(...range, '#FFFF00') .setBold(...range, true); }); } } En esta modificación, el color de fondo y la negrita se reflejan en el texto seleccionado mediante los métodos setBackgroundColor(startOffset, endOffsetInclusive, color) y setBold(startOffset, endOffsetInclusive, bold) .
En su guión, se cambia el estilo del párrafo. Pensé que esta podría ser la razón de su problema.