我正在使用 pdfMake ,将静态文本转换为pdf。
HTML中的文本来自AngularJS中的一项服务,并且是动态的。该文本可以包含英语和非英语字符,如韩语,日语,中文等。
目前,我只有英文字体,因此会为非英文字符打印空白。
如何解决此问题?
JS 代码:
self.downloadAsPdf = function (dateTimeId) {
var datetime = document.getElementById(dateTimeId).innerHTML;
pdfMake.fonts = {
proximaNova: {
normal: 'proximanova-regular.ttf',
bold: 'Roboto-Medium.ttf',
italics: 'proximanova-light.ttf',
bolditalics: 'proximanova-semibold.ttf'
}
};
var docDefinition = {
{ text: 'Heading', style: 'header' },
{ text: 'Subheading', style: 'myscript' },
{ text: datetime, style: 'datetime' },
{ text: model.storyScriptData.personalMoment, style: 'body' },
{ text: model.storyScriptData.createAConnection, style: 'body' },
{ text: model.storyScriptData.theResoultion, style: 'body' }
],
defaultStyle: {
font: 'proximaNova'
},
styles: {
header: {
fontSize: 24,
alignment: 'center',
color: "#ffffff",
margin: [0, 60, 0, 0]
},
myscript: {
fontSize: 18,
alignment: 'left',
color: "#a7a7a7",
margin: [0, 100, 0, 0]
},
datetime: {
fontSize: 11,
alignment: 'left',
color: "#a7a7a7",
margin: [0, 2, 0, 36]
},
body: {
fontSize: 13,
alignment: 'left',
color: "#727272",
lineHeight: 1.5,
bolditalics: true
}
}
}
pdfMake.createPdf(docDefinition).download('optionalName.pdf');
}
其中model.storyScriptData.personalMoment
,model.storyScriptData.createAConnection
和model.storyScriptData.theResoultion
是AngularJS中的model
答案 0 :(得分:0)
假设您知道每次使用哪种语言,并且您可以在model.storyScriptData.currentLanguage
的某个属性上从模型接收它。
你应该有一个类似于的对象:
var fonts = {
english: 'english_font_name',
japanese: 'japanese_font_name',
chinese: 'chinese_font_name',
korean: 'korean_font_name'
}
然后您可以为每种语言选择正确的字体:
defaultStyle: {
font: fonts[model.storyScriptData.currentLanguage]
}