Есть ли способ обойти эту ошибку на pdfmake? «Ошибка типа: невозможно прочитать свойство« слог »с нулевым значением» - PullRequest
0 голосов
/ 04 февраля 2020

Я использую pdfmake для генерации PDF с сингальскими символами юникода, используя шрифт «Iskoola Pota». Большинство символов Юникода работают отлично. Но когда документ содержит определенные символы, такие как \u0dda и \u0ddd, он выдает эту ошибку из модуля fontkit.

«Ошибка типа: невозможно прочитать свойство« слог »с нулевым значением»

(Это не выдает ошибку, когда я использую другие распространенные шрифты. Но я должен использовать «Iskoola Pota», так как я хочу правильно отображать символы.)

Проблема: https://github.com/bpampuch/pdfmake/issues/1916

1 Ответ

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

У меня была такая же проблема как с PDFmake, так и с PDFkit. Вчера я нашел решение, и это может помочь тем, у кого такая же проблема.

Я использую PDFmake версии 0.1.65. В вашем установленном каталоге есть подкаталог с именем ./node_modules/fontkit. Go в этот каталог, и вы найдете файл с именем index. js. Откройте индекс. js в текстовом редакторе и найдите слово «сингальский», или вы можете go в строке 9601 (надеюсь, вы найдете то же самое, если это версия 0.1.65). Каким бы способом вы не указали строку «sinh: UniversalShaper» внутри функции nextSyllable $ 1 (), как показано ниже.

function nextSyllable$1(glyphs, start) {
        :
sinh: UniversalShaper, // Sinhala
        :
}

Теперь измените UniversalShaper на IndicShaper, сохраните и выйдите из файла.

Я не проводил обширных испытаний, но удовлетворился тем, что намеревался сделать. Надеюсь, это вам тоже поможет. Я также сообщу об этом Бартеку Пампучу (автору PDFmake), чтобы посмотреть.

...