ui-grid pdf制作导出布局
ui-grid pdfMake export layout
我正在使用 pdfMake 从 ui-grid 导出,我正在尝试使用 ui-grid 文档中描述的 exporterPdfTableLayout 设置 table 的布局
A tableLayout in pdfMake format, controls gridlines and the like. We use the default layout usually.
Defaults to null, which means no layout
我正在尝试使用以下行设置布局:
exporterPdfTableLayout: 'lightHorizontalLines'
其中 'lightHorizontalLines' 是我想使用的 pdfMake 提供的标准布局。
我在 ui-grid 上找不到用于此目的的任何示例或任何其他文档。
有人可以帮我解决我哪里出错了吗?
看来
exporterPdfTableLayout:
在 ui 网格中不起作用。我通过直接在 pdfMaker.js 文件
中编辑 'defaultLayout' 来解决这个问题
@Janbango 也不要忘记更新 ui-grid.js 以包含布局:grid.options.exporterPdfTableLayout,进入文档定义。
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;
}
您可以使用该模式设置任何布局属性。确保引用子 属性(例如 'layout')。如果您尝试在内容级别设置属性,您将覆盖存储由 ui-grid 传入的正文对象的内容对象(您的 table 数据)(或者您可以设置所有@Gary 上面建议的内容属性)。
我正在使用 pdfMake 从 ui-grid 导出,我正在尝试使用 ui-grid 文档中描述的 exporterPdfTableLayout 设置 table 的布局
A tableLayout in pdfMake format, controls gridlines and the like. We use the default layout usually. Defaults to null, which means no layout
我正在尝试使用以下行设置布局:
exporterPdfTableLayout: 'lightHorizontalLines'
其中 'lightHorizontalLines' 是我想使用的 pdfMake 提供的标准布局。
我在 ui-grid 上找不到用于此目的的任何示例或任何其他文档。
有人可以帮我解决我哪里出错了吗?
看来
exporterPdfTableLayout:
在 ui 网格中不起作用。我通过直接在 pdfMaker.js 文件
中编辑 'defaultLayout' 来解决这个问题@Janbango 也不要忘记更新 ui-grid.js 以包含布局:grid.options.exporterPdfTableLayout,进入文档定义。
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;
}
您可以使用该模式设置任何布局属性。确保引用子 属性(例如 'layout')。如果您尝试在内容级别设置属性,您将覆盖存储由 ui-grid 传入的正文对象的内容对象(您的 table 数据)(或者您可以设置所有@Gary 上面建议的内容属性)。