我有一个包含阿拉伯语数据的表格。我用DataTable JQuery 。当它放在 table 上时,它显示出完美。但是当我导出PDF时,句子的方向和单词的位置发生了变化。例如,如果有一个包含 3 个单词的句子,例如“word1 word2 word3”,pdf 将显示“word3 word2 word1”
请在此处查找项目示例 link .
最佳答案
由于 pdfmake 不支持开箱即用的 rtl 语言,因此您需要循环遍历表行并反转任何字符。
这就是我的实现方式:
$('#table').dataTable({
buttons: [
{
extend: 'pdfHtml5',
text: 'PDF',
exportOptions: {
columns: ':visible',
modifier: {order: 'index'},
format: {
body: function (data, row, column, node) {
const arabic = /[\u0600-\u06FF]/;
if (arabic.test(data)) {
return data.split(' ').reverse().join(' ');
}
return data;
},
header: function (data, row, column, node) {
const arabic = /[\u0600-\u06FF]/;
if (arabic.test(data)) {
return data.split(' ').reverse().join(' ');
}
return data;
}
}
}
}
],
})
此代码只是在表头和正文中搜索阿拉伯字符并将其反转。 如果您的表格有页脚,您可以复制、粘贴页眉部分到导出选项 > 页眉并将其重命名为页脚,然后就完成了。
关于html - DataTable JQuery 导出 PDF 显示错误方向的阿拉伯数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61504509/