DataTable JQuery экспорт PDF показывает арабские данные в неправильном направлении

У меня есть таблица с данными на арабском языке. Я использую DataTable JQuery. Он показывает идеально, когда он находится в таблице. Но когда я экспортирую PDF, меняется направление предложения и положение слова в обратном порядке. Например, если есть предложение из 3 слов, таких как «слово1 слово2 слово3», pdf показывает «слово3 слово2 слово1»

Пример проекта можно найти по этой ссылке.

Скриншот: введите здесь описание изображения


person Nanji Mange    schedule 29.04.2020    source источник


Ответы (1)


Поскольку 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 › header и переименуйте его в нижний колонтитул, и все готово. .

person Alaa mohammed    schedule 07.03.2021