Javascript pdfmake-使用自己的字体不起作用
我正在使用pdfmake在客户端创建PDF。我们有一个WYSIWYG编辑器,允许用户创建pdf。然后对其进行解析以使用pdfmake 但是,我无法使用普通字体。该插件用于在PDF上创建字体,默认为Roboto 我正试图让它与泰晤士报、新罗马报等合作 我尝试过这样修改文件: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
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存储库,并给出了如何使用它的说明
:
我计划最终添加新字体