我正在尝试使用渲染插件将一个简单的模板保存到pdf,但无论我尝试什么,我都无法让它工作。我只需要将它保存在服务器上的文件系统中并重定向到另一个页面。
当时pdf模板不需要任何参数,因为它只打印hello world。一旦我开始工作,我将尝试添加一些数据。
我收到错误,如果没有附加'/',我需要指定一个控制器。但我试过添加这个无济于事。另外,我不明白它需要哪个控制器,因为我已经尝试指定控制器声明了这个动作。
有人可以看看这个并告诉我我做错了吗?
RenderingService pdfRenderingService
def displayPDFSummary = {
ByteArrayOutputStream bytes = pdfRenderingService.render(template: "_pdfTemplate", controller:"RSSCustomerOrder", model: [origSessionId:params.origSessionId])
def fos= new FileOutputStream('NewTestFile.pdf')
fos.write(bytes)
fos.close()
render(template: "_pdfTemplate", params: [origSessionId:params.origSessionId])
}
我在控制台中收到以下错误消息:
groovy.lang.MissingMethodException: No signature of method: java.io.FileOutputStream.write() is applicable for argument types: (java.io.ByteArrayOutputStream)
(Then prints contents of template...)
Possible solutions: write([B), write(int), write([B), write(int), wait(), wait(long)
答案 0 :(得分:2)
你看过FileOutputStream docs了吗?没有写(OutputStream)方法。
试试fos.write(bytes.toByteArray())
。此外,bytes.writeTo(fos)
可能会有效。