我正在使用 grails 渲染插件生成 pdf。
在开发过程中,我将使用带有 src 标签的图像包含在服务器上的图像中。它工作正常,但在部署应用程序时不再起作用。图像就消失了。
我正在通过模板重新设计,所以当我在 gsp 中调用这个模板时,它没问题(即我看到带有图像的 pdf 的 html 版本),但是当使用 renderPdf 在我的 Controller 中调用时,没有图像。
再次仅在已部署的应用程序( war )中,而不是在开发中。
任何提示?
编辑:根据流行的要求,这里是代码:
_pdf.gsp 文件可以很简单
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head/>
<body>
<img src="path/to/image.jpg"/>
</body>
</html>
Controller 的相关部分是
def pdf={
renderPdf(template: "/file/pdf", filename: "myfile.pdf")
}
最佳答案
我一直在关注这个令人沮丧的两天,并尝试了很多东西。我的建议,也是他们在文档中给出的建议是给 坚持使用内嵌图像 .我的意思是以字节形式定义图像。你不会后悔的,你会确信渲染插件会与其他插件如 ui-performance 和资源一起很好地发挥作用。
首先像这样创建文件对象
def paid = new File(ApplicationHolder.application.parentContext.servletContext.getRealPath("/images/paid.jpg"))
然后将文件的字节传入模型
renderPdf(template:invoiceTemplate, model:[paidBytes:paid.bytes])
现在在您的 pdf 模板中使用以下标签:
<rendering:inlineJpeg bytes="${paidBytes}" />
如果您没有依赖性问题,那么您应该设置。
如果您确实像我一样遇到依赖问题并指出 HERE ,然后查看您拉入的 iText 版本。
关于pdf - Grails 渲染插件在部署时不渲染图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8209707/