使用Jquery数据表和pdf导出来自的自定义消息或段落

使用Jquery数据表和pdf导出来自的自定义消息或段落,pdf,datatables,Pdf,Datatables,我正在使用jQueryDataTables中的pdf按钮,它本质上就是pdfmake库。我遇到的问题是,当用户单击按钮导出表格时,我想在表格的正上方添加一个附加段落。我曾尝试使用“message”参数,但就我而言,在下载pdf之前,我无法检索其他信息。我试过这么做 按钮:[ { 扩展:“pdfHtml5”, 定位:'景观', pageSize:'合法', 标题:“条目”, 标题:对, 消息:函数(){$(“#HeaderDesc”).text()} } ] 但是我的尝试没有成功。有人对如何做到

我正在使用jQueryDataTables中的pdf按钮,它本质上就是pdfmake库。我遇到的问题是,当用户单击按钮导出表格时,我想在表格的正上方添加一个附加段落。我曾尝试使用“message”参数,但就我而言,在下载pdf之前,我无法检索其他信息。我试过这么做

按钮:[
{
扩展:“pdfHtml5”,
定位:'景观',
pageSize:'合法',
标题:“条目”,
标题:对,
消息:函数(){$(“#HeaderDesc”).text()}
}
]

但是我的尝试没有成功。有人对如何做到这一点有什么想法吗?

你不能。按钮的
配置
文本被读取一次,并且
消息
不支持函数类型

但是,您可以在文档不太完整的
customize()
回调中更改
消息。这是在dataTables将生成的文档传递给pdfmake之前调用的。如果定义了
消息
,则
内容
节点中将存在
消息
部分,并且这些节点具有保存实际消息的
文本
属性:

定制:功能(doc){
doc.content.forEach(函数(内容){
如果(content.style=='message'){
content.text='这是一封创建较晚的邮件'
}
})
}   
如前所述,您必须先定义
消息
,然后才能执行此操作。如果尚未定义
消息
,则没有可操作的消息类型样式。您的
pdfhtml5
设置可能如下所示:

按钮:[
{
消息:'\uuu消息'',
扩展:“pdfHtml5”,
定位:'景观',
pageSize:'合法',
标题:“条目”,
标题:对,
自定义:功能(文档){
doc.content.forEach(函数(内容){
如果(content.style=='message'){
content.text=$(“#HeaderDesc”).text()
}
})
}   
}  
] 

演示->您不能。按钮的
配置
文本被读取一次,并且
消息
不支持函数类型

但是,您可以在文档不太完整的
customize()
回调中更改
消息。这是在dataTables将生成的文档传递给pdfmake之前调用的。如果定义了
消息
,则
内容
节点中将存在
消息
部分,并且这些节点具有保存实际消息的
文本
属性:

定制:功能(doc){
doc.content.forEach(函数(内容){
如果(content.style=='message'){
content.text='这是一封创建较晚的邮件'
}
})
}   
如前所述,您必须先定义
消息
,然后才能执行此操作。如果尚未定义
消息
,则没有可操作的消息类型样式。您的
pdfhtml5
设置可能如下所示:

按钮:[
{
消息:'\uuu消息'',
扩展:“pdfHtml5”,
定位:'景观',
pageSize:'合法',
标题:“条目”,
标题:对,
自定义:功能(文档){
doc.content.forEach(函数(内容){
如果(content.style=='message'){
content.text=$(“#HeaderDesc”).text()
}
})
}   
}  
] 

演示->还有另一个简单的解决方案。 我通过使用splice属性实现了这一点。您可以在自定义功能中这样做

 doc.content.splice(0, 1, {
                            text: [
                                       { text: 'I am loving dataTable and PdfMake \n',bold:true,fontSize:15 },
                                       { text: 'You can control everything.',italics:true,fontSize:12 }

                            ],
                            margin: [0, 0, 0, 12],
                            alignment: 'center'
                        });
这将在第一个位置[0索引]处拼接,并用上述内容替换1值


编码快乐

还有另一个简单的解决方案。 我通过使用splice属性实现了这一点。您可以在自定义功能中这样做

 doc.content.splice(0, 1, {
                            text: [
                                       { text: 'I am loving dataTable and PdfMake \n',bold:true,fontSize:15 },
                                       { text: 'You can control everything.',italics:true,fontSize:12 }

                            ],
                            margin: [0, 0, 0, 12],
                            alignment: 'center'
                        });
这将在第一个位置[0索引]处拼接,并用上述内容替换1值


编码快乐

你是最棒的!非常感谢你的回答。我为那件事绞尽脑汁。你是最棒的!非常感谢你的回答。我为那件事绞尽脑汁。