Datatable导出PDF时表格被裁剪右侧列缺失 如何解决?
解决Datatable导出PDF列截断问题
核心原因
Datatable默认PDF导出使用pdfmake库,默认采用纵向A4布局、固定边距、无自适应列宽配置,列数过多时就会出现右侧内容截断。
修复方案
将默认的pdf按钮替换为自定义配置项,修改布局、边距、字体、列宽规则即可:
$(document).ready(function() { $('#example_booking').DataTable({ "order": [ [0, "desc"] ], dom: 'lBfrtip', buttons: [ 'copy', 'csv', 'excel', // 替换原有pdf字符串为下方自定义配置 { extend: 'pdf', orientation: 'landscape', // 切换为横向布局,大幅提升可容纳列数 pageSize: 'A4', // 列数极多时可替换为'A3'获得更大宽度 customize: function (doc) { doc.pageMargins = [10, 10, 10, 10]; // 缩小页面四边留白,增加可用宽度 doc.defaultStyle.fontSize = 8; // 适当缩小字体,适配更多列 doc.defaultStyle.wordWrap = true; // 长单元格内容自动换行 // 所有列宽度自动分配,铺满整页 doc.content[1].table.widths = Array(doc.content[1].table.body[0].length).fill('*'); } }, 'print' ] }); }); $(document).ready(function() { $('#example').DataTable({ }); });
- 若调整后仍有截断,可继续调小
fontSize数值,或更换更大的pageSize规格。 - 如果你自定义了PDF导出的标题内容,需调整
doc.content[1]的索引值,确保指向表格对象即可。
内容的提问来源于stack exchange,提问作者tamerjar
相关产品推荐
相关产品推荐

