Я пытаюсь создать pdf-файл с помощью Node.js, используя PDFKit. PDF содержит текст на нескольких языках, включая арабский и русский, так что я пытаюсь использовать Noto Sans от Google, но как только я использую этот шрифт, расположение полностью неисправна, не показывая даже латинские символы:PDFKit сломан, когда используется шрифт Noto Sans
var doc = new PDFDocument();
doc.registerFont('NotoSans', 'fonts/NotoSans-Regular.ttf');
doc.font('NotoSans');
doc.pipe(res);
doc.fontSize(15);
doc.text('UTF-8 Test');
doc.text('صباح الخیر');
doc.text('japanese');
doc.text('武大郎');
doc.text('RUSSIAN');
doc.text('Привет/здравствуйте');
doc.end();
Но это результат. Я ожидал, что японцы не будут работать, но ничего не отображается правильно. Это выход я получаю:
Используя специальные шрифты для японских и арабских работ делают этот язык, но мне нужен шрифт, который поддерживает несколько языков, потому что я печатаю динамическую таблицу, и я не даже знать, какие языки необходимы.
P.S. Я заметил, что при использовании непечатаемого (вместо намека) я видел некоторые из тех же результатов, что и вы. Это руководство по стилю Googles (https://material.google.com/style/typography.html#typography-typeface): «Подсказки - это инструкции, встроенные в шрифт о том, как изменять (искажать) глиф чтобы выглядеть лучше на дисплеях с низким разрешением. В качестве компромисса намеченный шрифт потребляет больше места, чем неизведанная версия ». – jwerre
Это имеет смысл, но я все еще запутался, потому что, если я удалю все другие языки, даже текст на английском не работает. Спасибо за ссылку Franc, я проверю ее и посмотрю, могу ли я использовать динамический язык (я не знаю, на каком языке я буду печатать) – jasalguero
Если вы клонируете git repo, упомянутое выше, вы заметите, что в подкаталоги: «намекнул» и «не заметил», убедитесь, что вы используете «намек» версию шрифта. У меня была такая же проблема с «без признаков». – jwerre