目前不知道您是如何创建 pdf 文件的,但一种方法是使用Grails Rendering Plugin生成 pdf。有了这个,您可以使用任何视图/模板来生成 pdf 文件。
要从后端发送这些 pdf,您需要:
一个看法:
<html>
<head>...</head>
<body>
<h1>Your PDF Content</h2>
<g:each in="${images}" var="image">
<img src="${createLink(action:'displayImage', id:image.id)}" alt="${image.name}"/>
</g:each>
</body>
</html>
控制器中的操作:
def displayImage = {
def image = Image.get(params.id)
response.setHeader("Content-disposition", "attachment; filename=${image.name}")
response.contentType = image?.mimeType
response.contentLength = image?.data.length
response.outputStream.write(attachment?.data)
}
一个使用渲染的 pdf发送多部分邮件(使用邮件插件)的 grails 作业:
def execute() {
def pdfBytes = pdfRenderingService.render(template: '/path/to/your/template', model: [images: yourImages]).toByteArray()
sendMail {
multipart true
to "yourmail"
subject "yoursubject"
body (view: "/path/to/your/mailview", model: yourModel) attachBytes "yourTitle.pdf", CH.config.grails.mime.types['pdf'], pdfBytes
}
}
代码不完整,只是演示了基础知识。
希望有帮助!