将Blob从HTML转换为PDF时未复制的图像

Sri*_*rik 4 google-apps-script

我想将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);
Run Code Online (Sandbox Code Playgroud)

上面的代码首先从Gmail邮件中创建HTML中的Blob,并使用getAs()函数将其转换为PDF.但是,HTML中的图像不能在PDF中找到.关于如何获得这些图像的任何想法将不胜感激.关于如何将Gmail邮件转换为PDF的任何其他想法也是受欢迎的.

Aru*_*jan 5

有趣的问题.理解为什么这不起作用 - PDF转换不会"渲染"HTML来获取图像src.

我做了一个快速测试,并确认数据URI(内联图像不需要单独的HTTP调用)可以处理图像.

因此,一个hacky解决方案可能是获取图像,然后将它们转换为数据URI.这有一些缺点 - 很难找到这些图像(正则表达式将是脆弱的或不全面的),许多UrlFetch调用(即使有一些缓存,大多数自动电子邮件发件人添加跟踪器,以便您最终重新获取相同的图像)和慢.

兑换 -

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

要(您也可以动态检查内容类型) -

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