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

时间:2013-06-22 22:25:42

标签: google-apps-script google-docs

而不是:

doc.appendparagraph();

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

我正试图打破一行文字并用.setAttributes(bold);

加粗句子的前半部分

我使用....定义的粗体。

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

谢谢。

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

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

1 个答案:

答案 0 :(得分:5)

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

  

给定一个现有段落,如何呈现它的某些部分   大胆,其余的仍然正常吗?

Document包含Body,其中可以包含Paragraph个,其中每个都可以包含其他元素,包括文本。您可以将该文本作为字符串 - 您无法做多少 - 或作为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 );
  });
}