使用自定义字体导出 dataTable pdf

dataTable pdf export with custom font

我正在尝试从 DataTable 导出 pdf 数据。我的 table 内容是孟加拉语。导出后它只显示奇怪的字符。我尝试下载 vfs_fonts.js 并在其中包含“NikoshBAN.ttf”字体...但 pdf 仍然无法显示内容。

this.pdfMake.fonts = {
  Nikosh: {
    normal: 'public/fonts/NikoshBAN.ttf'
  }
};
在数据表按钮初始化中,我使用:

{
  extend: 'pdf',
  text: 'Export PDF',
  exportOptions: {columns: ':visible'},
  customize: function (doc) {        
    doc.defaultStyle.font = 'Nikosh';
  },
}

谁能告诉我用自定义字体导出 dataTable pdf 的步骤? 提前致谢

我通过以下方式解决了问题:

  1. 我使用 https://www.giftofspeed.com/base64-encoder/
  2. 编码我的 NikoshBAN.ttf 文件
  3. https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js 下载 vfs_fonts.js 文件并作为本地 .js 文件
  4. 然后将 NikoshBAN.ttf:"<第 1 步中的编码值" 添加到 vfs_fonts.js 文件中
  5. 现在在dataTable文件中使用如下:

pdfMake.fonts = {
                Roboto: {
                    normal: 'Roboto-Regular.ttf',
                    bold: 'Roboto-Medium.ttf',
                    italics: 'Roboto-Italic.ttf',
                    bolditalics: 'Roboto-MediumItalic.ttf'
                },
                nikosh: {
                    normal: "NikoshBAN.ttf",
                    bold: "NikoshBAN.ttf",
                    italics: "NikoshBAN.ttf",
                    bolditalics: "NikoshBAN.ttf"
                }
            };

  1. 最后在我按如下方式使用的数据表按钮对象中:

buttons: [
      'copy', 'csv', 'excel', 'print',
      {
          extend: 'pdf',
          customize: function(doc) {
              doc.defaultStyle.font = "nikosh";
          }
      }
]

现在它很有魅力!!!