不能将非英语字符发送到PDF

时间:2017-06-16 02:36:53

标签: node.js reactjs iframe report

我在使用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;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,希望能帮助别人。 Fluentreports允许注册字体。我在服务器端生成我的pdf,所以这是需要做的。从静态点下载Arial Unicode MS,将其提供给您呈现报告的位置,如下所示。

&#13;
&#13;
// 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;
&#13;
&#13;