从HTML转换的Blob为PDF时,图片不能转载(Images not reproduced whe

2019-07-04 03:55发布

我想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。 然而,在HTML图像不是在PDF中找到。 如何获得这些图像的任何想法,将不胜感激。 关于如何将Gmail邮件转换为PDF任何其他的想法,也欢迎。

Answer 1:

有趣的问题。 有道理,为什么这不工作 - PDF转换不烦“渲染”的HTML去获取图片src。

我做了一个快速测试,并确认数据的URI (无需单独的HTTP调用内嵌图像)与图像的工作。

所以,一个哈克的解决方案可能是去获取图像,然后将其转换为数据URI。 这有几个缺点 - 很难找到这些图像(正则表达式将是脆弱的或不全面),大量的网址抓取的要求(即使有一些缓存,大多数自动发送的电子邮件的发件人,使你最终添加跟踪重新获取相同的图像),并慢。

兑换 -

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

为了(你可以检查内容类型动态以及) -

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



文章来源: Images not reproduced when converting a Blob from HTML to PDF