4

HTMLメールをPDFに変換したい。私は次のコードを書きました。

      var txt = msgs[i].getBody();
      /* We need two blob conversions - one from text to HTML and the other from HTML to PDF */
      var blob = Utilities.newBlob(txt, 'text/html',"Test PDF");
      Logger.log(txt);
      var tempDoc = DocsList.createFile(blob);
      var pdf = tempDoc.getAs('application/pdf');
      pdf.setName('Email As PDF');
      DocsList.createFile(pdf);

上記のコードは、最初にGmailメッセージからHTMLからBlobを作成し、getAs()関数を使用してPDFに変換します。ただし、HTMLの画像はPDFには含まれていません。これらの画像を取得する方法についてのアイデアをいただければ幸いです。GmailメッセージをPDFに変換する方法に関する代替案も歓迎します。

4

1 に答える 1

5

興味深い問題。これが機能しない理由については理にかなっています-PDF変換は、画像srcをフェッチするためにHTMLを「レンダリング」する必要はありません。

簡単なテストを行い、データURI(個別のHTTP呼び出しを必要としないインライン画像)が画像で機能することを確認しました。

したがって、ハッキーな解決策の1つは、画像をフェッチしてからデータURIに変換することです。これにはいくつかの欠点があります-これらの画像を見つけるのは難しい(正規表現は壊れやすいか包括的ではない)、多くのUrlFetch呼び出し(一部のキャッシュがある場合でも、ほとんどの自動化された電子メール送信者はトラッカーを追加して、同じ画像を再フェッチすることになります)スロー。

変換 -

<img src="http://images.myserver.com/myimage.png..."/>

To(コンテンツタイプも動的に確認できます)-

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>

于 2012-11-29T15:11:13.083 に答える