我正在为教师提供一种快速的方法,可以使用脚本创建托管在Google Drive上的论文的翻译。预期的行为是脚本处理文档主体元素,翻译文本,并将其复制到附加到文档的新页面。这还需要查找图像并将文档流中的图像复制到翻译中。
我有文本翻译工作-它是抓取段落文本和翻译成一个新的页面。由于某些原因,文档中的图像没有被复制。
脚本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);
}
}
}
我发现了这个SO帖子,它迭代了一个文档并打印了控制台中的元素(这对我的逻辑也有帮助)。测试脚本显示了带有INLINE_IMAGE
的第二段,但是我的else if
捕获并没有将其复制到新页面。
我应该在逻辑中运行不同的测试以获得图像和文本吗?
正如您在问题中提到的,内联图像在第二段中,您应该能够通过首先获取段落然后获取该段中的图像来获取图像。关于这个问题的更多细节,请查看我的帖子。
希望有帮助!