Я пытаюсь создать PDF-файл, содержащий символы Turki sh, используя библиотеку jsPDF . Прежде чем что-то изменить, он создавал PDF-файлы так:
" Ğ " персонаж выглядит пустым и " Ö " символ отображается как HTML цифра c код, который является Ö
Код этого примера:
var doc = new jsPDF(('p','pt','a4'));
doc.setFontType("bold");
doc.text(60, 28, 'Given name(s):');
doc.setFontType("normal");
doc.text(88, 28, 'OĞUZHAN');
doc.setFontType("bold");
doc.text(60, 32, 'Place and date of birth:');
doc.setFontType("normal");
doc.text(101, 32, 'KADIKÖY,');
doc.save('test.pdf');
Затем я выбираю шрифт, который имеет символы Turki sh и расширение .tff. Я конвертирую его с помощью Font Converter , который создает разработчик.
Он дал мне файл. js. После того, как я включил этот файл и файл .tff в проект, теперь я вижу итоговый PDF-файл вроде этого:
" Ğ " персонаж выглядит хорошо, но " Ö"персонаж все еще ищет Ö
Я просто изменяю шрифт, используя doc.setFont("timestr");
:
var doc = new jsPDF(('p','pt','a4'));
doc.setFont("timestr");
doc.setFontType("bold");
doc.text(60, 28, 'Given name(s):');
doc.setFontType("normal");
doc.text(88, 28, 'OĞUZHAN');
doc.setFontType("bold");
doc.text(60, 32, 'Place and date of birth:');
doc.setFontType("normal");
doc.text(101, 32, 'KADIKÖY,');
doc.save('test.pdf');
Конечно, я включаю. js файлы, которые дал мне конвертер :
<script src="/fonts/timestr-normal.js"></script>
<script src="/fonts/timestr-bold.js"></script>
<script src="/fonts/timestr-italic.js"></script>
<script src="/fonts/timestr-bolditalic.js"></script>
Один из этих js таких файлов:
(function (jsPDFAPI) {
var font = 'AAEAAAAZAQA...'; // A very long string, I shorted it to show you
var callAddFont = function () {
this.addFileToVFS('timestr-normal.ttf', font);
this.addFont('timestr-normal.ttf', 'timestr', 'normal');
};
jsPDFAPI.events.push(['addFonts', callAddFont])
})(jsPDF.API);
В чем проблема? Очень странно, что персонаж " Ğ " выглядит нормально после всех этих процессов, но персонаж " Ö " выглядит неправильно, не так ли?