使用Google Script创建文档时如何分割文本行(前半部分粗体,后半部分不粗体)

Ann*_*nna 2 google-docs google-apps-script

代替:

doc.appendparagraph();

如何在不返回下一行的情况下为文档添加一行文本?

我试图打破一行文字并用上半句加粗 .setAttributes(bold);

我已定义使用的大胆....

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

谢谢.

我已经想出如何使用合并功能以迂回方式执行此操作,但是如何添加新行而不是新段落?没有doc.appendText(); 功能有吗?

还有一种简单的方法可以使我的文档单个间隔?

Mog*_*dad 5

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

鉴于现有段落,如何将其中的某些部分以粗体呈现, 而其余部分仍然正常?

文献包含一个机构,它可以包含段落 S,其中的每一个可以包含其他元素,包括文字.您可以将该文本作为字符串 - 您无法做多少 - 或作为文本对象.以下是使用该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
Run Code Online (Sandbox Code Playgroud)

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

textElement.setAttributes(0,6, boldpl)
Run Code Online (Sandbox Code Playgroud)

从该构建块开始,您可以执行以下操作:

  • 从段落的开头应用粗体,直到第一次出现冒号(:).
  • 在前几个单词中应用粗体.
  • ......甚至在上半场大胆应用!

    textElement.setBold(0,
                        Math.floor((textElement.getText().length)/2),
                        true);
    
    Run Code Online (Sandbox Code Playgroud)

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

不......但有一种Paragraph.appendText()方法.

还有一种简单的方法可以使我的文档单个间隔?

您可以通过设置各个段落的属性来控制段落中文本的行间距.见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 );
  });
}
Run Code Online (Sandbox Code Playgroud)