2017-03-09 4 views
0

私はと協力しています。これは、静的テキストをpdfに変換するpdfMakeです。動的コンテンツ用pdfMakeの複数のフォント

HTMLのテキストはAngularJSのサービスから来ており、動的です。テキストは、韓国語、日本語、中国語などの英語以外の文字と英語の両方の文字を含むことができます。

現在、英語のフォントしか持っていないので、英語以外の文字の場合はの空白を表示します。

この問題を解決するにはどうすればよいですか?

JSコード:model.storyScriptData.personalMomentmodel.storyScriptData.createAConnectionmodel.storyScriptData.theResoultionはAngularJSでmodel年代です

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

は、各時点で使用されている言語を知っている、そしてあなたその

答えて

0

Suposingいくつかの報酬のモデルからそれをmodel.storyScriptData.currentLanguageとして受け取ることができます。あなたがに似たオブジェクトが必要です

:あなたは自分のように、あなたのpdfMakeインスタンスにカスタムフォントを追加することができます

defaultStyle: { 
     font: fonts[model.storyScriptData.currentLanguage] 
    } 

var fonts = { 
    english: 'english_font_name', 
    japanese: 'japanese_font_name', 
    chinese: 'chinese_font_name', 
    korean: 'korean_font_name' 
} 

を次に、各言語の正しいフォントを選択することができます文書here。 また、このresponseでは少し異なって説明されています。

関連する問題