Paragraph を取得して、InlineImage を子要素として追加してください。
既存の Text オブジェクトの中に挿入したい場合は、Text を分割して間に挿入する。
- Body を取得
- Paragraph を取得
- (Paragraphの)Child(Text) を取得
- 3のChildのテキストを「晴れ」以前のテキストに変更
- 3のChildの次に画像(InlineImage)を挿入
- 5で追加したChildの次に「晴れ」以降のテキストを挿入
でうまくいきそうです。
表の内部のテキストとかどうなのかは検証してません。
JavaScript
1const doc = DocumentApp.getActiveDocument();
2
3const image = DriveApp.getFilesByName("sunny.png").next().getAs("image/png");
4
5const body = doc.getBody();
6body.getParagraphs().forEach(paragraph => {
7 for (let i = paragraph.getNumChildren() - 1; 0 <= i; i--) {
8 const child = paragraph.getChild(i);
9
10 if (child.getType() === DocumentApp.ElementType.TEXT) {
11 const text = child.getText();
12
13 const index = text.indexOf("晴れ");
14 if (index !== -1) {
15 const prefix = text.substring(0, index + 2);
16 const suffix = text.substring(index + 2);
17
18 let childIndex = paragraph.getChildIndex(child);
19
20 child.setText(prefix);
21 paragraph.insertInlineImage(++childIndex, image);
22 if (suffix) paragraph.insertText(++childIndex, suffix);
23 }
24 }
25 }
26});
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/01 16:08