Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript pdfmake-使用自己的字体不起作用_Javascript_Pdfmake - Fatal编程技术网

Javascript pdfmake-使用自己的字体不起作用

Javascript pdfmake-使用自己的字体不起作用,javascript,pdfmake,Javascript,Pdfmake,我正在使用pdfmake在客户端创建PDF。我们有一个WYSIWYG编辑器,允许用户创建pdf。然后对其进行解析以使用pdfmake 但是,我无法使用普通字体。该插件用于在PDF上创建字体,默认为Roboto 我正试图让它与泰晤士报、新罗马报等合作 我尝试过这样修改文件: window.pdfMake=window.pdfMake | |{}; window.pdfMake.vfs={ 机器人:{ “Roboto Italic.ttf”:“此处以64为基数”, “Roboto Medium.t

我正在使用pdfmake在客户端创建PDF。我们有一个WYSIWYG编辑器,允许用户创建pdf。然后对其进行解析以使用pdfmake

但是,我无法使用普通字体。该插件用于在PDF上创建字体,默认为Roboto

我正试图让它与泰晤士报、新罗马报等合作

我尝试过这样修改文件:

window.pdfMake=window.pdfMake | |{};
window.pdfMake.vfs={
机器人:{
“Roboto Italic.ttf”:“此处以64为基数”,
“Roboto Medium.ttf”:“此处以64为基数”,
“Roboto Regular.ttf”:“此处以64为基数”
},
TimesNewRoman:{
“Roboto Italic.ttf”:“此处以64为基数”,
“Roboto Medium.ttf”:“此处以64为基数”,
“Roboto Regular.ttf”:“此处以64为基数”
}

}
PDF制作有关如何在客户端使用自定义字体的文档

vfs_fonts.js文件格式类似于:

this.pdfMake = this.pdfMake || {}; this.pdfMake.vfs = {
  "Roboto-Italic.ttf": "AAEAAAASAQAABAAgR0RFRtRX1"
}
因此,您应该像下面这样定义它:

window.pdfMake.vfs["Times-New-Roman-Regular.ttf"] = "BASE 64 HERE";
window.pdfMake.vfs["Times-New-Roman-Medium.ttf"] = "BASE 64 HERE";
window.pdfMake.vfs["Times-New-Roman-Italic.ttf"] = "BASE 64 HERE";
之后,您仍然需要分配pdfMake.font:

pdfMake.fonts = {
    // Default font should still be available
    Roboto: {
        normal: 'Roboto-Regular.ttf',
        bold: 'Roboto-Medium.ttf',
        italics: 'Roboto-Italic.ttf',
        bolditalics: 'Roboto-Italic.ttf'
    },
    // Make sure you define all 4 components - normal, bold, italics, bolditalics - (even if they all point to the same font file)
    TimesNewRoman: {
        normal: 'Times-New-Roman-Regular.ttf',
        bold: 'Times-New-Roman-Bold.ttf',
        italics: 'Times-New-Roman-Italics.ttf',
        bolditalics: 'Times-New-Roman-Italics.ttf'
    }
};
然后,您可以使用
Robot
TimesNewRoman
作为pdf定义的字体,就像您现在所做的那样:

{  
   content:[  
      {  
         text: 'some text using Roboto font'
         style: 'style_1'
      },
      {  
         text: 'some text using Times New Roman font'
         font: 'TimesNewRoman'
      }
   ],
   styles:{  
      style_1:{  
         opacity: '1',
         font: 'Roboto'
      }
   }
}
基于这个答案,我用Times New Roman字体javascript文件构建了一个github存储库,并给出了如何使用它的说明

: 我计划最终添加新字体