我发现这是可以通过修改jsPDF.js来公开现有的addFont方法在公共API.
在jsPDF.js中,查找:
//---------------------------------------
// Public API
添加以下内容:
API.addFont = function(postScriptName, fontName, fontStyle) {
addFont(postScriptName, fontName, fontStyle, 'StandardEncoding');
};
为了清晰起见,我将此方法放在其他字体方法附近 – API.setFont,API.setFontSize,API.setFontType等.
现在在你的代码中,使用:
doc.addFont('ComicSansMS', 'Comic Sans', 'normal');
doc.setFont('Comic Sans');
doc.text(50,50,'Hello World');
这对我来说适用于加载jsPDF之前的css包含的@ font-face字体以及系统字体.使用jsPDF的插件框架可能会有更好的方法,但是这个快速而肮脏的解决方案至少应该让你走.
请注意,doc.getFontList()不会显示添加的字体:
// TODO: iterate over fonts array or return copy of fontmap instead in case more are ever added.