Оказывается, это проблема со шрифтом:
Юникод работает, но вы должны убедиться, что используемый вами шрифт включает символы, которые вы хотите использовать. В отличие от вашей операционной системы, PDFKit не выполняет автоматической замены шрифтов.
Источник: тема Reddit, комментарий автора /u/devongovett
Я протестировал два шрифта, которые были включены в pdfkit. И «Helvetica-Bold», и «Times-Roman» не работали с символами Unicode. Я заметил в документации по шрифтам, что вы можете добавлять свои собственные шрифты, поэтому дал Cardo Font (размещенный в Google Fonts), поскольку он поддерживает множество символов Юникода.
Конечно же, это сработало. Вот сценарий, который я использовал для тестирования (убедитесь, что у вас есть шрифт Cardo):
var PDFDocument = require('pdfkit');
var doc = new PDFDocument();
doc.registerFont('Cardo', 'Cardo/Cardo-Regular.ttf')
doc.font('Cardo')
.fontSize(20)
.text('Testing [\u20AC]', 10, 10);
doc.write('out.pdf');
Если вы настроены на использование Helvetica-Bold, загрузите копию шрифта в другом месте (убедитесь, что он поддерживает символы Юникода, которые вам нужны) и зарегистрируйте его, как у меня, со шрифтом Cardo.
person
Jay
schedule
10.09.2013