2017-06-16 15 views
0

pdfのnon-english文字を、node.jsを使用してblobとして生成され、iframe要素に表示されるようにレンダリングするときに問題が発生します。 First line and client Name is supposed to be cyrillic characters私は扱える文字セットについて何も言及していないfluentreportsを使用しています。私のサーバーからBLOBを受け取るコードは次のとおりです。英語以外の文字をPDFに送信する

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> 
 

 
    ); 
 
    }

答えて

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'});

関連する問題