我在使用node.js生成为blob并在iframe元素中显示的pdf中渲染非英文字符时遇到问题。 First line and client Name is supposed to be cyrillic characters 我使用的是fluentreports,它没有提及它可以处理的字符集。这是从我的服务器接收blob的代码。
if (xhr.status === 200) {
var file = new Blob([xhr.response], {type: 'application/pdf'});
var fileURL = URL.createObjectURL(file);
this.setState({
pdf: fileURL
})
}
});
xhr.send(formDataString);
}
render() {
return (
<div>
<div style = {{ margin: '0'}} className = "container">
<div className= "jumbotron">
{this.state.form ? <DateForm onChange = {this.handleChange} onChange2 = {this.handleChange2} onSubmit = {this.onSubmit} date1 = {this.state.date1} date2 = {this.state.date2}/> : null}
{this.state.pdf? <iframe style = {{width:"100%" ,height: "800"}} src = {this.state.pdf}> </iframe> : null}
</div>
</div>
</div>
);
}
&#13;
答案 0 :(得分:0)
回答我自己的问题,希望能帮助别人。 Fluentreports允许注册字体。我在服务器端生成我的pdf,所以这是需要做的。从静态点下载Arial Unicode MS,将其提供给您呈现报告的位置,如下所示。
// Create a Report
var rpt = new Report(res,({fontSize: 10,font: 'Bulgarian'}))
.titleHeader(hh)
.margins(40)
.data( {}) // Add some Data (This is required)
rpt.registerFont("Bulgarian", {normal: './server/static/ARIALUNI.ttf'});
&#13;