Angular 6: как я использую jspdf-customfonts

Сначала я запускаю jspdf. Его работа очень хорошо. Теперь я хочу использовать шрифты UTF-8. Я создаю собственный шрифт, например этот пример

Для этого я устанавливаю: npm i jspdf-customfonts Создаю файл default_vjs.js:

(function (jsPDFAPI) { 
"use strict";
jsPDFAPI.addFileToVFS('PTSans-Regular.ttf', 'Base64-encoded string of my font');
jsPDFAPI.addFileToVFS('PTSans-Bold.ttf', 'Base64-encoded string of my font'); })(jsPDF.API);

и сохраните его по пути: scr/app/js/default_vfs.js

Я тестирую его в своем компоненте:

import * as jsPDF from 'jspdf';

.......

const test = new jsPDF('p', 'mm', 'a4');
 test.addFont('PTSans-Regular.ttf', 'PTSans', 'normal');
 test.addFont('PTSans-Bold.ttf', 'PTSans', 'bold');
 test.setFont('PTSans');
 test.setFontType('normal');
 test.text(10, 10, 'Hallo Welt € ');
 test.save('customFont.pdf');

Но это не работает. Знак € неверен. Может ли кто-нибудь здесь сказать мне, что я сделал неправильно?


person Ingo Manthey    schedule 07.09.2018    source источник


Ответы (1)


Моя проблема решена:
regularNormal – это строка моего шрифта в кодировке Base64.

AddFontArimo(doc: jsPDF) {
   (doc as any).addFileToVFS('arimo.regular-normal.ttf', this.regularNormal);
}
person Ingo Manthey    schedule 07.11.2018