我正在尝试创建一个邮件合并功能,以便根据一个简单的模板创建一个文档。 我尝试使用以下函数来复制模板元素,但是我遇到了(内联)图像的问题,它们总是显示为PARAGRAPH而不是INLINE_IMAGE,并且出现以下图标而不是图像:
以下是代码:
function appendToDoc(src, dst) {
// iterate accross the elements in the source adding to the destination
for (var i = 0; i < src.getNumChildren(); i++) {
appendElementToDoc(dst, src.getChild(i));
}
}
function appendElementToDoc(doc, object)
{
var element = object.copy();
var type = object.getType();
if (type == DocumentApp.ElementType.PARAGRAPH) {
doc.appendParagraph(element);
} else if (type == DocumentApp.ElementType.TABLE) {
doc.appendTable(element);
} else if (type== DocumentApp.ElementType.INLINE_IMAGE) { // This is never called :(
var blob = element.asInlineImage().getBlob();
doc.appendImage(blob);
}
}
关于如何解决这个问题的任何想法?提前谢谢!
答案 0 :(得分:1)
据我所知,内嵌图像包含在一个段落中,因此我们必须在段落中检查图像类型。
所以检查的代码是这样的:
if (type == DocumentApp.ElementType.PARAGRAPH) {
if (element.asParagraph().getNumChildren() != 0 && element.asParagraph().getChild(0).getType() == DocumentApp.ElementType.INLINE_IMAGE) {
var blob = element.asParagraph().getChild(0).asInlineImage().getBlob();
doc.appendImage(blob);
}
else doc.appendParagraph(element.asParagraph());
}
希望有所帮助!