循环遍历Google文档中复制到新页面

时间:2015-08-12 20:42:10

标签: javascript google-apps-script google-docs

我正在通过快速的方式让教师使用脚本创建Google云端硬盘上托管的论文翻译。预期的行为是脚本通过文档正文元素,翻译文本并将其复制到附加到文档的新页面。这还需要查找图像并将文档流中的图像复制到翻译中。

我有文本翻译工作 - 它抓取段落文本并翻译成新页面。由于某种原因,文档中的图像不会被复制。

脚本

function translate() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();

  body.appendPageBreak();

  var elements = body.getNumChildren();
  for( var i=0;i<elements;i++) {
   var element = body.getChild(i).copy();
    var type = element.getType();
    if( type == DocumentApp.ElementType.PARAGRAPH ){
      var text = element.asParagraph().getText();
      var spn = LanguageApp.translate(text, 'en', 'es');
      body.appendParagraph(spn);
     }
    else if( type == DocumentApp.ElementType.INLINE_IMAGE ){
      var img = element.asInlineImage().getBlob();
      body.appendImage(img);
    }
  }
}

我发现this SO post遍历文档并在控制台中打印元素(这对我的逻辑也有帮助)。测试脚本显示带有INLINE_IMAGE的第二个段落,但我的else if抓取并未将其复制到新页面。文字很好。

我应该在逻辑中运行不同的测试来获取图像和文本吗?

1 个答案:

答案 0 :(得分:0)

正如您在问题中提到的,内嵌图像位于第二段中,您应该能够通过首先获取段落然后获取该段落中的图像来获取图像。请查看此question中的帖子,详细了解相关信息。

希望有所帮助!

相关问题