Некоторые символы UTF-8 (Turki sh) отображаются как HTML Numeri c Код в jsPDF - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь создать PDF-файл, содержащий символы Turki sh, используя библиотеку jsPDF . Прежде чем что-то изменить, он создавал PDF-файлы так:

image

" Ğ " персонаж выглядит пустым и " Ö " символ отображается как 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-файл вроде этого: image

" Ğ " персонаж выглядит хорошо, но " Ö"персонаж все еще ищет Ö

Я просто изменяю шрифт, используя 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);

В чем проблема? Очень странно, что персонаж " Ğ " выглядит нормально после всех этих процессов, но персонаж " Ö " выглядит неправильно, не так ли?

1 Ответ

0 голосов
/ 03 мая 2020

Хорошо, проблема решена: так как я использовал C#, я получал эти тексты из моего модального режима, и мне пришлось использовать их внутри Html.Raw() метода. Поэтому я написал так Html.Raw(@model.Name), и это решило проблему.

...