2012-06-18 84 views
3

我想使用渲染插件將簡單的模板保存爲pdf,但無論我嘗試什麼,都無法使其工作。我需要的只是將文件保存在服務器上的文件系統中,並重定向到不同的頁面。grails渲染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) 

回答

2

你看看FileOutputStream docs?沒有寫(OutputStream)方法。

嘗試fos.write(bytes.toByteArray())。另外,bytes.writeTo(fos)可能工作。

+0

謝謝,這工作。我真的不敢相信我沒有看到它:( – BON