Grails:从GSP生成PDF

don*_*y76 5 grails groovy

我的GSP页面有多个表格,还有一些其他HTML元素,如输入文本字段和标题<h1> <h2>文本.

我希望在生成的文本中捕获所有这些信息.

到目前为止,我看到的例子只适用于生成一个表.

有没有一种从GSP中已经填充的所有数据生成PDF的快速方法?

我正在使用Export插件.

compile ':export:1.6'
Run Code Online (Sandbox Code Playgroud)

以下是我到目前为止尝试的示例代码.

它绘制一个带标题的表,行中没有数据.

def myPDFexport () {
        String userNumber = params.UserInfoInstance;

        UserInfo userObj = UserInfo.findByNumber(userNumber);

        params.format = "pdf";
        params.extension = "pdf"
        List fields = ["User ID", "User Name", "User Password"]
        Map labels = [userID: "User ID", userName: "User Name", userPW: "User Password"]

        if(params?.format && params.format != "html"){
            response.contentType = grailsApplication.config.grails.mime.types[params.format]
            response.setHeader("Content-disposition", "attachment; filename=${woNumber}.${params.extension}")
            exportService.export(params.format, response.outputStream, userObj.list(params), fields, labels, [:], [:])
        }
    }
Run Code Online (Sandbox Code Playgroud)

我几乎迷失了,因为我是Grails的新手,也没有以前的PDF生成经验.

如果可能,请提供一些示例代码.

aio*_*los 7

有很多解决方案来创建PDF.

作为第一个简单的方法,您应该看看Grails渲染插件.

您可以使用任何视图或模板来生成pdf(或图像).

将插件添加到项目后,您可以向控制器添加这样的操作:

def createPdfReport = {
    renderPdf(template: '/templates/pdf/yourtemplate', model: yourmodel, filename: "yourTitle")
}
Run Code Online (Sandbox Code Playgroud)

它将使用指定的模板生成pdf并将其作为响应发送给客户端.

有关详细信息,请查看插件文档.