如何在使用Google Script创建文档时拆分文本行(前半部分为粗体,后半部分为非粗体)



代替:

doc.appendparagraph();

如何在文档中添加一行文本而不返回下一行?

我试着把一行文字分解,用.setAttributes(bold); 把前半句加粗

我用…定义的粗体。。。。

var boldpl = {};
boldpl[DocumentApp.Attribute.BOLD] = true;

谢谢。

我已经想出了如何使用合并功能以迂回的方式做到这一点,但如何添加新行而不是新段落?没有doc.appendText();功能在那里吗?

还有没有一种简单的方法可以使我的文档保持单间距?

您在那里问了很多不同的问题!

给定一个现有段落,如何在bold而其余部分保持正常?

文档包含正文,正文可以包含段落,每个段落可以包含其他元素,包括文本。您可以将该文本作为字符串(不能用它做太多操作)或文本对象获取。以下是使用Text.setBold()方法将段落中的某些文本更改为粗体的示例:

var doc = DocumentApp.getActiveDocument();
var body = doc.getBody();
var firstParagraph = body.getParagraphs()[0];
textElement = firstParagraph.editAsText();
textElement.setBold(0,6,true); // Set the 0th to 6th characters bold

或者,您可以将Text.setAttributes()方法与自定义属性boldpl:一起使用

textElement.setAttributes(0,6, boldpl)

从这个构建块开始,你可以做一些事情,比如:

  • 从段落开始使用粗体,直到第一次出现冒号(:
  • 前几个字用粗体
  • 。。。甚至在上半场使用粗体!

    textElement.setBold(0,
                        Math.floor((textElement.getText().length)/2),
                        true);
    

没有doc.appendText();功能在那里吗?

不。。。但存在CCD_ 9方法。

还有没有一种简单的方法可以使我的文档保持单间距?

通过设置各个段落的属性,可以控制段落中文本的行距。参见Paragraph.setLineSpacing()。这里有一个函数,可以将文档中的每个段落设置为单一间距:

function singleSpace() {
  var doc = DocumentApp.getActiveDocument();
  var bodyElement = DocumentApp.getActiveDocument().getBody();
  var paragraphs = bodyElement.getParagraphs();
  // Set each paragraph to single-spaced
  paragraphs.forEach( function( paragraph ) {
    paragraph.setLineSpacing( 1.0 );
  });
}

相关内容

最新更新