DataTables是否支持波斯语?

时间:2018-09-22 12:30:49

标签: jquery pdf utf-8 datatables

我正在使用波斯数据,并且当将它们打印为PDF时,仅英语数据正确,而波斯数据不正确。 有人可以帮忙吗?

这是图片:

before print:

after Print

4 个答案:

答案 0 :(得分:0)

请参阅数据表文档https://datatables.net/plug-ins/i18n/

我没有测试过,但是我认为应该可以。

$('#example').dataTable( {
            "language": {
                "url": "dataTables.german.lang"
            }
        } );

答案 1 :(得分:0)

首先,您应该下载插件:plugin for Persian lang

然后将此文件上传到您正在工作的目录并发出Ajax请求:

没有跨域Ajax请求:

<script>
$(document).ready(function() {
    $('#example').dataTable( {
        "language": {
            "url": "Persian.lang"
        }
    } );
} );
</script>

对于跨域Ajax请求:

$(document).ready(function() {
    $('#example').DataTable( {
        "language": {
            "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/Persian.json"
        }
    } );
} );

答案 2 :(得分:0)

以上答案是不准确,而且不是重点,也不回答问题。如您所知,可笑的PdfMake插件默认情况下使用Roboto字体。该字体不支持波斯字符/脚本。要解决此问题,您应该将默认字体更改为所需的波斯语字体。您需要采取的第一步操作是打开“ vfs_fonts.js”文件。该文件具有以下结构:

this.pdfMake = this.pdfMake || {}; this.pdfMake.vfs = {
  "arial.ttf": "AAEAA...MYXRu",
  "another_one.ttf": "XXXX...XXXX"
};

每个@AArew ... MYXRu字符串(如@AndrewJames所述)是相关字体文件的base64编码表示形式。您需要通过字体的特定字符串来进行更改。 要生成字符串,您应该转到dataurlmaker。此时,将dataurlmaker生成的(很长)字符串粘贴到您的vfs_fonts.js文件中。 确保不包含dataurlmaker提供的任何前同步码(“ data:application / octet-stream; base64”)。仅包含base64字符串本身。

按照建议使用dataurl之后,然后在pdfmake.js中更改字体名称并在vfs_fonts.js中使用该名称,然后更改字体。但是,仍然存在主要问题,那就是RTL的问题。祝你好运。

答案 3 :(得分:0)

迟到的答案,但已解决。 pdfmake 不支持 RTL 字体,您必须自定义并添加您自己的字体。 这是一个例子 on Github