我正在使用pdfMake从ui-grid导出,我正在尝试使用exporterPdfTableLayout设置表格的布局,如ui-grid文档中所述
pdfMake 格式的 tableLayout ,控制网格线等。我们通常使用默认布局。 默认为 null,表示没有布局
我正在尝试使用以下行设置布局:
exporterPdfTableLayout: 'lightHorizontalLines'
其中"lightHorizontalLines"是pdfMake提供的标准布局,我想使用它。
我找不到任何用于此目的的示例或ui-grid上的任何其他文档。
有人可以帮助我出错的地方吗?
看起来
exporterPdfTableLayout:
在 UI 网格中不起作用。我通过直接在pdfMaker文件中编辑"默认布局"来解决此问题.js
@Janbango也不要忘记更新ui-grid.js以将layout:grid.options.exporterPdfTableLayout包含在docDefinition中。
var docDefinition = {
pageOrientation: grid.options.exporterPdfOrientation,
pageSize: grid.options.exporterPdfPageSize,
content: [{
style: 'tableStyle',
table: {
headerRows: 1,
widths: headerWidths,
body: allData
},
layout: grid.options.exporterPdfTableLayout,
}],
styles: {
tableStyle: grid.options.exporterPdfTableStyle,
tableHeader: grid.options.exporterPdfTableHeaderStyle
},
defaultStyle: grid.options.exporterPdfDefaultStyle
};
exporterPdfCustomFormatter
设置布局,并且必须引用内容数组中的第一个对象,如下所示:
docDefinition.content[0].layout = {
hLineWidth: function(i, node) {
return (i === 0 || i === node.table.body.length) ? 2 : 1;},
vLineWidth: function(i, node) {
return (i === 0 || i === node.table.widths.length) ? 2 : 1;},
hLineColor: function(i, node) {
return (i === 0 || i === node.table.body.length) ? 'black' : 'gray';},
vLineColor: function(i, node) {
return (i === 0 || i === node.table.widths.length) ? 'black' : 'gray';}
}
或:
docDefinition.content[0].layout = 'lightHorizontalLines'
完整的属性设置如下所示:
exporterPdfCustomFormatter: function (docDefinition) {
docDefinition.content[0].layout = 'lightHorizontalLines'
return docDefinition;
}
您可以使用该模式设置任何布局属性。请务必引用子属性(例如"布局")。如果尝试在内容级别设置属性,则会覆盖存储由 ui-grid 传入的正文对象的内容对象(表数据)(或者可以设置所有内容属性,如上面@Gary建议)。