【问题标题】:Append drawing from one doc to another将绘图从一个文档附加到另一个文档
【发布时间】:2023-02-02 23:24:41
【问题描述】:

我想创建一个功能,将所有内容从一个 Google 文档复制到另一个 Google 文档。模板有表格、图片、文字和图纸 文字和表格复制过来就好了,就是图纸和图片好像不行。我尝试过不同的东西,但总是出错。

这就是我所拥有的(我也是从 stackoverflow 得到的):

function copyTemplate() {

  var thisDoc = DocumentApp.getActiveDocument();
  var thisBody = thisDoc.getBody();

  var templateDoc = DocumentApp.openById('LMwo6kT1_XDCh-8HkwTNN890W3_MeL6AJKU');
  var templateBody = templateDoc.getBody();

  for(var i=0; i<templateBody.getNumChildren();i++){
    switch (templateBody.getChild(i).getType()) { 

      case DocumentApp.ElementType.PARAGRAPH:
        thisBody.appendParagraph(templateBody.getChild(i).copy());
        break;
      case DocumentApp.ElementType.LIST_ITEM:
        thisBody.appendListItem(templateBody.getChild(i).copy());
        break;
      case DocumentApp.ElementType.TABLE:
        thisBody.appendTable(templateBody.getChild(i).copy());
        break;
      case DocumentApp.ElementType.INLINE_DRAWING:
        var drawing = element.asParagraph();
        thisBody.appendParagraph(templateBody.getChild(i).copy());
        break;
      case DocumentApp.ElementType.INLINE_IMAGE:
        thisBody.appendImage(templateBody.getChild(i).copy());
        break;
    }
}

我是新手,所以也许答案非常简单,但我似乎找不到。非常感谢!

【问题讨论】:

  • 为什么不简单地复制文件?
  • 因为它不是我拥有的唯一模板。至少有 5 个。因此,完整代码将重复这 5 次,每次都是从不同文档中复制的不同函数。然后我会在工具栏上添加一个菜单,这样我就可以选择何时从文档中复制过来,如果需要的话甚至可以选择多次。那有意义吗?

标签: google-apps-script google-docs


【解决方案1】:

这对我有用。

  case DocumentApp.ElementType.INLINE_DRAWING:
    thisBody.appendImage(templateBody.getChild(i).copy());
    break;
  case DocumentApp.ElementType.INLINE_IMAGE:
    thisBody.appendImage(templateBody.getChild(i).copy());
    break;

【讨论】:

    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-13
    相关资源
    最近更新 更多