1

我遇到了使用飞碟的 Grails Pdf 插件的问题。一切都按预期工作,直到我部署到运行 Tomcat6 的 Ubuntu 服务器上。然后我的 gsp 中对 css 和图像的引用失败,尽管我仍然可以渲染 PDF。

我尝试了两种不同的方法来构建 PDF

ITextRenderer renderer = new ITextRenderer()

renderer.setDocument(url)
renderer.setDocumentFromString(content, baseUri)

使用“grails prod run-war”运行战争可以正常运行,并且没有安全性的虚拟应用程序可以在本地运行,但是当我在服务器上部署它时也会失败。(尽管我试图渲染的内容都没有受到保护),图像的 URL 是正确的。(我尝试过绝对和相对 URL)都不会在 PDF 中呈现,但如果您从浏览器请求这些资源,它们就在那里。对未托管在服务器上的图像的引用确实有效。

所有这一切让我相信,当你这样做时,随 ubuntu 一起安装的 tomcat6sudo apt-get install tomcat6以某种方式配置得很有趣。我知道它与许多安装一样使用用户“tocat6”而不是“root”运行。这是否会导致 Flying Saucer 以某种方式无法访问所引用的文件?

4

1 回答 1

1

由于除图像/css 之外的所有内容都在工作,我猜你的 baseURI 不正确?!我在生产系统上有这段代码,它正在工作。所有图像都绝对引用:

renderer.setDocument(doc, request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort());

您的 baseURI 设置为什么?

于 2012-05-22T13:47:08.820 回答