我想将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的任何其他想法也是受欢迎的。
答案 0 :(得分:5)
有趣的问题。理解为什么这不起作用 - PDF转换不会“渲染”HTML来获取图像src。
我做了一个快速测试并确认Data URI's(不需要单独的HTTP调用的内联图像)可以处理图像。
因此,一个hacky解决方案可能是获取图像,然后将它们转换为数据URI。这有一些缺点 - 很难找到这些图像(正则表达式将是脆弱的或不全面的),许多UrlFetch调用(即使有一些缓存,大多数自动电子邮件发件人添加跟踪器,以便您最终重新获取相同的图像)和慢。
转换 -
<img src="http://images.myserver.com/myimage.png..."/>
To(您也可以动态检查内容类型) -
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhE..."/>