我正在尝试使用jsPDF在网页上的节点内的一组元素中从html生成几个单独的pdf。 (学生报告卡)。然后我需要使用JavaMail通过电子邮件将各个报告卡发送给每个学生家长。
问题是:我不想在生成它们时将pdf文件保存到磁盘,而是我想以编程方式遍历页面中的报告卡元素(id =“'studentCard_'+ studentId”,生成单独的pdf从html和store或者将每个单独的pdf推送到一个数组或对象中(因为它们被创建)然后我可以传递给JavaMail并循环以将每个单独的pdf附加到关联的父电子邮件。
我可以毫不费力地将html转换为pdf ...
我只是不确定如何将这个pdf附加到电子邮件,因为唯一的选择是pdf.save(文件名),我不想在循环到磁盘中实际保存每个单独生成的pdf - 我只是我希望在将生成的文件附加到电子邮件之前临时存储生成的文件并将其发送出去。
我已将pdf转换为blob和blob URL,然后我可以将blob推送到数组中。我可以将pdf转换为blob或blob url并将其推送到数组,然后循环遍历该数组并将其附加到电子邮件中。这是我的解决方案,将每个pdf转换为blob,然后将blob推送到一个数组,以传递给JavaMail循环?
我对这个问题一无所知。如果我将blob附加到电子邮件中,或者在主体中插入blob URL,当父点击文件下载它,或点击插入到正文中的链接时,它会自动转换回PDF格式吗?通过自己的邮件程序或浏览器阅读?我该怎么做呢?
您可以使用浏览器的客户端存储IndexedDB。我喜欢JsStore,一个IndexedDB包装器。我已将它用于我的几个项目。它非常整洁。
pdf.save(filename)
不是唯一的选择。您应该能够使用pdf.output(datauristring)
或pdf.output('blob')
并将其保存到IndexedDB。取决于你的pdf文件大小,你甚至可以使用localStorage,它更容易使用,但存储空间比idb少得多。