【问题标题】:How to create a pdf file on the fly and make it an email attachment?如何即时创建 pdf 文件并将其作为电子邮件附件?
【发布时间】:2019-04-02 13:31:08
【问题描述】:

我找到的发送带有附件的email 的教程是基于一个已经创建的文件。但我需要即时创建一个pdf 文件并将其附加到电子邮件中。该怎么做?

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: java spring spring-boot


【解决方案1】:

大多数 PDF 生成器都支持写入 OutputStream。一种解决方案是使用FileOutputStream,将 PDF 保存到磁盘,创建邮件(使用您拥有的教程),发送邮件,删除文件。

另一种选择是使用ByteArrayOutputStream(使用commons-lang3 中的那个,因为Java 运行时中的那个对于大文件来说非常慢)。使用它来生成“文件”。创建 PDF 后,使用 getByteArray() 并将其放入 ByteArrayInputStream 中,您应该可以将其用作邮件附件。

【讨论】:

  • 那么我会寻求你的第二个建议:) thnx
  • 留意这些文件的大小。许多邮件服务器会删除太大的附件,而且它会使您的 JVM 崩溃并出现 OutOfMemory 错误。每封邮件需要大约 5 倍于每个 PDF 的内存来处理它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 2013-06-24
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
相关资源
最近更新 更多