代码之家  ›  专栏  ›  技术社区  ›  Nanji Mange

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

  •  0
  • Nanji Mange  · 技术社区  · 4 年前

    我有一张表格,上面有阿拉伯语的数据。我用 DataTable JQuery .放在桌上时,它表现得很完美。但当我导出PDF时,句子的方向和单词的位置会发生变化。例如,如果有一个由3个单词组成的句子,比如“word1 word2 word3”,pdf会显示“word3 word2 word1”

    请在这里找到项目样本 link .

    截图: enter image description here

    0 回复  |  直到 4 年前
        1
  •  2
  •   Alaa mohammed    3 年前

    由于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;
                        }
                    }
                }
            }
        ],
    })
    

    这段代码只需在表格标题和正文中搜索阿拉伯字符,然后将其反转即可。 如果您的表有页脚可以复制,请将页眉部分粘贴到exportOptions>页眉并将其重命名为页脚,就完成了。