如何在Google文档之间复制内容和格式?

时间:2013-11-14 19:55:10

标签: google-apps-script google-docs

我需要复制Google文档的内容,然后将其附加到另一个文档中。如果我使用这样的东西:

newDoc.getBody()appendParagraph(template.getText());

...我收到了文字,但丢失了原始文件中的格式。 (粗体斜体等)

如何将内容和格式复制到新文档?是否可以将所有内容分配给一个变量,并将其复制/粘贴到新文档中?

1 个答案:

答案 0 :(得分:3)

不仅使用1个变量,您必须迭代文档中的所有元素并逐个复制它们。

同一主题上有多个主题,例如尝试这个主题:How to copy one or more existing pages of a document using google apps script

仔细阅读代码并添加您在文档中应该满足的所有内容类型(表格,图像,分页符...)

编辑:这是一个关于这个想法的试验(开头)

function copyDoc() {
  var sourceDoc = DocumentApp.getActiveDocument().getBody();
  var targetDoc = DocumentApp.create('CopyOf'+DocumentApp.getActiveDocument().getName());
//  var targetDoc = DocumentApp.openById('another doc ID');
  var totalElements = sourceDoc.getNumChildren();

  for( var j = 0; j < totalElements; ++j ) {
    var body = targetDoc.getBody()
    var element = sourceDoc.getChild(j).copy();
    var type = element.getType();
    if( type == DocumentApp.ElementType.PARAGRAPH ){
      body.appendParagraph(element);
    }
    else if( type == DocumentApp.ElementType.TABLE){
      body.appendTable(element);
      }
    else if( type == DocumentApp.ElementType.LIST_ITEM){
      body.appendListItem(element);
      }
//    ...add other conditions (headers, footers...
    }
  targetDoc.saveAndClose();
}