Как насчет этой модификации?Я испытал ту же ситуацию с вами.В то время я использовал этот обходной путь.Я думаю, что может быть несколько решений для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.
Точки модификации:
- В случае копирования таблицы, когда есть ячейки, включая изображения, она копирует изображения изисходная таблица к целевой таблице.По этому изображение можно увидеть.Поток заключается в следующем.
- Скопируйте исходную таблицу в целевое устройство.
- Извлечение абзацев в ячейке.
- Извлечение изображения.
- Удаление изображения из целевой ячейки.
- Скопируйте изображение из исходной ячейки в целевую ячейку.
Модифицированный скрипт:
Пожалуйста, измените следующим образом.
От:
else if( type == DocumentApp.ElementType.TABLE){
body.appendTable(element);
}
Кому:
else if( type == DocumentApp.ElementType.TABLE){
var dstTable = body.appendTable(element);
var srcTable = element.asTable();
var row = srcTable.getNumRows();
for (var i = 0; i < row; i++) {
var col = srcTable.getRow(i).getNumCells();
for (var j = 0; j < col; j++) {
var cell = srcTable.getCell(i, j);
var c1 = cell.getNumChildren();
for (var k = 0; k < c1; k++) {
var paragraph = cell.getChild(k).asParagraph();
var c2 = paragraph.getNumChildren();
for (var l = 0; l < c2; l++) {
var child = paragraph.getChild(l);
var t = child.getType();
if (t === DocumentApp.ElementType.INLINE_IMAGE) {
var srcImg = child.asInlineImage();
var dstParagraph = dstTable.getCell(i, j).getChild(k).asParagraph().clear();
var dstImg = dstParagraph.insertInlineImage(l, srcImg.getBlob());
dstImg.setWidth(srcImg.getWidth());
dstImg.setHeight(srcImg.getHeight());
}
}
}
}
}
}
Ссылки:
Хотя в моей среде я мог подтвердить, что этот модифицированный скрипт работал, когда изображение в вашем вопросе использовалось в качестве примера ситуации, если это не работало вЯ сожалею о вашей среде.
Редактировать 1:
Для добавленной ситуации, пожалуйста, измените ваш сценарий следующим образом.
От:
else if( type == DocumentApp.ElementType.TABLE){
body.appendTable(element);
}
Кому:
else if( type == DocumentApp.ElementType.TABLE){
var dstTable = body.appendTable(element);
var srcTable = element.asTable();
copyTable(srcTable, dstTable);
}
И, пожалуйста, добавьте следующую функцию.
function copyTable(srcTable, dstTable) {
var row = srcTable.getNumRows();
for (var i = 0; i < row; i++) {
var col = srcTable.getRow(i).getNumCells();
for (var j = 0; j < col; j++) {
var cell = srcTable.getCell(i, j);
var c1 = cell.getNumChildren();
for (var k = 0; k < c1; k++) {
var ty = cell.getChild(k).getType();
if (ty === DocumentApp.ElementType.TABLE) {
srcTable = cell.getChild(k).asTable();
dstTable = dstTable.getCell(i, j).getChild(k).asTable();
return copyTable(srcTable, dstTable);
} else {
var paragraph = cell.getChild(k).asParagraph();
var c2 = paragraph.getNumChildren();
for (var l = 0; l < c2; l++) {
var child = paragraph.getChild(l);
var t = child.getType();
if (t === DocumentApp.ElementType.INLINE_IMAGE) {
var srcImg = child.asInlineImage();
var dstParagraph = dstTable.getCell(i, j).getChild(k).asParagraph().clear();
var dstImg = dstParagraph.insertInlineImage(l, srcImg.getBlob());
dstImg.setWidth(srcImg.getWidth());
dstImg.setHeight(srcImg.getHeight());
}
}
}
}
}
}
}
Редактировать 2:
Для добавленной ситуации, пожалуйста, измените ваш скрипт следующим образомминимумы.
От:
else if( type == DocumentApp.ElementType.TABLE){
body.appendTable(element);
}
До:
else if( type == DocumentApp.ElementType.TABLE){
var dstTable = body.appendTable(element);
var srcTable = element.asTable();
copyTable(srcTable, dstTable);
}
И, пожалуйста, добавьте следующую функцию.
function copyTable(srcTable, dstTable) {
var row = srcTable.getNumRows();
for (var i = 0; i < row; i++) {
var col = srcTable.getRow(i).getNumCells();
for (var j = 0; j < col; j++) {
var cell = srcTable.getCell(i, j);
var c1 = cell.getNumChildren();
for (var k = 0; k < c1; k++) {
var ty = cell.getChild(k).getType();
if (ty === DocumentApp.ElementType.TABLE) {
srcTable = cell.getChild(k).asTable();
dstTable = dstTable.getCell(i, j).getChild(k).asTable();
return copyTable(srcTable, dstTable);
} else {
var paragraph = cell.getChild(k).asParagraph();
var c2 = paragraph.getNumChildren();
for (var l = 0; l < c2; l++) {
var child = paragraph.getChild(l);
var t = child.getType();
if (t === DocumentApp.ElementType.INLINE_IMAGE) {
var srcImg = child.asInlineImage();
var dstParagraph = dstTable.getCell(i, j).getChild(k).asParagraph();
dstParagraph.getChild(l).asInlineImage().removeFromParent();
var dstImg = dstParagraph.insertInlineImage(l, srcImg.getBlob());
dstImg.setWidth(srcImg.getWidth());
dstImg.setHeight(srcImg.getHeight());
}
}
}
}
}
}
}