html - DataTable JQuery 导出 PDF 显示错误方向的阿拉伯数据

标签 html jquery datatables pdfmake arabic-support

我有一个包含阿拉伯语数据的表格。我用DataTable JQuery 。当它放在 table 上时,它显示出完美。但是当我导出PDF时,句子的方向和单词的位置发生了变化。例如,如果有一个包含 3 个单词的句子,例如“word1 word2 word3”,pdf 将显示“word3 word2 word1”

请在此处查找项目示例 link .

截图: enter image description here

最佳答案

由于 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/

相关文章:

javascript - 具有多个属性的可克隆文件输入

html - 在有/没有滚动条的页面之间切换时停止背景移动?

html - 如何停止在 <header> 或 <footer> 下显示文本?

javascript - 如何隐藏jQuery的版本

jquery - 使用 jQuery DataTables 添加按钮到工具栏

html - z-index block 倒序

jquery - 等到加载背景(css)中的图像

jquery - "$(document).on(' pageshow '"不适用于 jQuery 1.9.1 + JQM 1.3.0-stable

javascript - 数据表每 30 秒自动刷新一次不起作用

php - 关系表MYSQL