grails渲染pdf插件不起作用,简单的例子?

时间:2012-06-18 15:04:43

标签: grails controller pdf-generation rendering

我正在尝试使用渲染插件将一个简单的模板保存到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)

1 个答案:

答案 0 :(得分:2)

你看过FileOutputStream docs了吗?没有写(OutputStream)方法。

试试fos.write(bytes.toByteArray())。此外,bytes.writeTo(fos)可能会有效。