我的GSP页面包含多个表格以及其他一些HTML元素,例如输入文本字段和标题<h1> <h2>
文本。
我希望在生成的文本中捕获所有这些信息。
到目前为止,我看到的示例仅适用于生成一个表。
是否有快速方法从GSP中已填充的所有数据中生成PDF?
我正在使用导出插件。
compile ':export:1.6'
以下是我到目前为止尝试的示例代码。
它绘制一个带标题的表,行中没有数据。
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, [:], [:])
}
}
我几乎迷失在此,因为我是Grails的新手,也没有以前的PDF生成经验。
如果可能,请提供一些示例代码。
答案 0 :(得分:6)
有很多解决方案可以创建PDF。
作为第一个简单方法,您应该查看Grails rendering plugin。
您可以使用任何视图或模板生成pdf(或图像)。
将插件添加到项目后,您可以向控制器添加这样的操作:
def createPdfReport = {
renderPdf(template: '/templates/pdf/yourtemplate', model: yourmodel, filename: "yourTitle")
}
它将使用指定的模板生成pdf并将其作为响应发送给客户端。
有关详细信息,请查看插件文档。
答案 1 :(得分:0)
在您的Grails-app&gt; BuildConfig&gt;中添加以下内容
if( !frame1.empty())
imshow("1", frame1);
if( !frame2.empty())
imshow("2", frame2);