Bild an einer bestimmten Stelle einfügen

Ich habe ein Google Apps-Skript, das Platzhalter in einer Kopie eines Vorlagendokuments durch Text ersetzt, indem body.replaceText ('TextA', 'TextB') aufgerufen wird.

Jetzt möchte ich es erweitern, um Bilder zu enthalten. Hat jemand eine Idee, wie das geht?

Danke, Andrey

EDIT: Nur um zu verdeutlichen, was mein Skript macht. Ich habe ein Google-Formular in einer Tabelle erstellt. Ich habe ein Skript erstellt, das beim Absenden des Formulars ausgeführt wird, ein dem Formular entsprechendes Blatt durchläuft, unverarbeitete Zeilen findet, Werte aus den entsprechenden Zellen entnimmt und sie in eine Kopie eines Google-Dokuments einfügt. Einige Felder im Google-Formular sind mehrzeilige Textfelder. Daher kommt "\ r \ r".

Hier ist ein Workaround, den ich mir inzwischen ausgedacht habe, nicht elegant, aber es funktioniert soweit:

// replace <IMG src="URL"> with the image fetched from URL
function processIMG_(Doc) {

  var totalElements = Doc.getNumChildren();

  for( var j = 0; j < totalElements; ++j ) {

    var element = Doc.getChild(j);
    var type = element.getType();

    if (type =='PARAGRAPH'){
      var par_text = element.getText();

      var start = par_text.search(new RegExp('<IMG'));
      var end = par_text.search(new RegExp('>'));
      if (start==-1)
        continue;

      // Retrieve an image from the web.
      var url = getURL_(par_text.substring(start,end));
      if(url==null)
        continue;

      // Before image
      var substr = par_text.substring(0,start);
      var new_par = Doc.insertParagraph(++j, substr);

      // Insert image
      var resp = UrlFetchApp.fetch(url);
      new_par.appendInlineImage(resp.getBlob());

      // After image
      var substr = par_text.substring(end+1);
      Doc.insertParagraph(++j, substr);

      element.removeFromParent();
      j -= 2; // one - for latter increment; another one - for increment in for-loop
      totalElements = Doc.getNumChildren();      
    }      
  }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage