2012-11-26 63 views
4

我想將HTML電子郵件轉換爲PDF。我寫了下面這段代碼。將Blob從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); 

上面片的代碼首先創建的Blob出從Gmail消息的HTML並使用getAs()函數將其轉換爲PDF。但是,PDF中不能找到HTML中的圖像。任何想法如何獲得這些圖像將不勝感激。 有關如何將gmail郵件轉換爲PDF的任何替代想法也是受歡迎的。

回答

5

有趣的問題。有道理,爲什麼這不起作用 - PDF轉換不會「渲染」HTML來獲取圖像src。

我做了一個快速測試,並確認Data URI's(內聯圖像,無需單獨的HTTP調用)處理圖像。

因此,一個hacky解決方案可能會去獲取圖像,然後將其轉換爲數據URI。這有幾個缺點 - 很難找到這些圖像(正則表達式會很脆弱或不全面),很多UrlFetch調用(即使有一些緩存,大多數自動電子郵件發件人添加跟蹤器,以便最終重新獲取相同的圖像)和慢。

轉換 -

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

要(你可以檢查內容類型動態以及) -

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

+0

這工作就像一個魅力。非常感謝 ! – Srik