3

代替:

doc.appendparagraph();

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

我正在尝试拆分一行文本并将前半句加粗.setAttributes(bold);

我用....定义的粗体

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

谢谢你。

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

还有一种简单的方法可以使我的文档单行距吗?

4

1 回答 1

8

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

给定一个现有的段落,它的某些部分如何以 粗体呈现而其余部分保持正常?

一个Document包含一个Body,它可以包含Paragraph,每个 Paragraph 都可以包含其他元素,包括 Text。您可以将该 Text 作为字符串(您不能用它做很多事情)或作为Text Object来获取。这是使用该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(); 功能有吗?

不……但有一种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 );
  });
}
于 2013-06-24T19:43:22.917 回答