使用自定义字体的数据表 pdf 导出

时间:2021-03-31 06:18:52

标签: pdf datatable

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

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

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

任何人都可以向我展示使用自定义字体导出 dataTable pdf 的步骤吗? 提前致谢

1 个答案:

答案 0 :(得分:0)

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

  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:"
  5. 现在在数据表文件中使用如下:

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. 最后在 dataTable 按钮对象中我使用如下:

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

现在它就像魅力一样!!!