我正在通过快速的方式让教师使用脚本创建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
抓取并未将其复制到新页面。文字很好。
我应该在逻辑中运行不同的测试来获取图像和文本吗?
答案 0 :(得分:0)
正如您在问题中提到的,内嵌图像位于第二段中,您应该能够通过首先获取段落然后获取该段落中的图像来获取图像。请查看此question中的帖子,详细了解相关信息。
希望有所帮助!