2017-03-09 90 views
0

我正在與pdf製作,將靜態文本轉換爲pdf。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.personalMomentmodel.storyScriptData.createAConnectionmodel.storyScriptData.theResoultion是AngularJS的model

回答

0

Suposing你知道哪種語言被每次使用,你可以從模型上接收它作爲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] 
    } 

您可以添加自定義字體您pdfMake例如,作爲對他們的文檔here。 另外,在這個response有點不同。