Unicode 在pdfmake上是否有绕过此错误的方法&引用;类型错误:无法读取属性';音节';“无效”的定义;

Unicode 在pdfmake上是否有绕过此错误的方法&引用;类型错误:无法读取属性';音节';“无效”的定义;,unicode,pdfkit,pdfmake,Unicode,Pdfkit,Pdfmake,我正在使用pdfmake生成带有僧伽罗语unicode字符的PDF,使用“Iskoola Pota”字体。大多数unicode字符都能很好地工作。但是,当文档包含某些字符时,例如\u0dda和\u0ddd,它会从fontkit模块抛出此错误 “类型错误:无法读取null的属性'symplete'” (当我使用其他常用字体时,它不会引发错误。但我必须使用“Iskoola Pota”,因为我想正确显示字符。) 问题:我对PDFmake和PDFkit都有相同的问题。我昨天找到了一个解决方案,这可能会帮

我正在使用pdfmake生成带有僧伽罗语unicode字符的PDF,使用“Iskoola Pota”字体。大多数unicode字符都能很好地工作。但是,当文档包含某些字符时,例如
\u0dda
\u0ddd
,它会从fontkit模块抛出此错误

“类型错误:无法读取null的属性'symplete'”

(当我使用其他常用字体时,它不会引发错误。但我必须使用“Iskoola Pota”,因为我想正确显示字符。)


问题:

我对PDFmake和PDFkit都有相同的问题。我昨天找到了一个解决方案,这可能会帮助那些有同样问题的人

我使用的是PDFmake版本0.1.65。在您的安装目录中有一个子目录,名为./node_modules/fontkit。转到该目录,您将找到一个名为index.js的文件。在文本编辑器中打开index.js并搜索单词“Sinhala”,或者您可以转到第9601行(如果版本为0.1.65,希望您会找到相同的内容)。无论以何种方式到达函数nextSyllable$1()中的行“sinh:UniversalShaper”,如下所示

function nextSyllable$1(glyphs, start) {
        :
sinh: UniversalShaper, // Sinhala
        :
}
现在,将UniversalShaper更改为IndicsShaper并保存并退出文件


我还没有做过广泛的测试,但它做了我打算做的。希望这对你也有帮助。我还将向Bartek Pampuch(PDFmake作者)报告这一点,让他看看。

我对PDFmake和PDFkit都有同样的问题。我昨天找到了一个解决方案,这可能会帮助那些有同样问题的人

我使用的是PDFmake版本0.1.65。在您的安装目录中有一个子目录,名为./node_modules/fontkit。转到该目录,您将找到一个名为index.js的文件。在文本编辑器中打开index.js并搜索单词“Sinhala”,或者您可以转到第9601行(如果版本为0.1.65,希望您会找到相同的内容)。无论以何种方式到达函数nextSyllable$1()中的行“sinh:UniversalShaper”,如下所示

function nextSyllable$1(glyphs, start) {
        :
sinh: UniversalShaper, // Sinhala
        :
}
现在,将UniversalShaper更改为IndicsShaper并保存并退出文件


我还没有做过广泛的测试,但它做了我打算做的。希望这对你也有帮助。我还将向Bartek Pampuch(PDFmake作者)报告这一点,让他看看。

我也有同样的问题,我使用@Harsha Wickramasinghe所做的类似解决方法修复了这个问题。 以下是步骤:(我使用的是pdfMake版本0.1.65)

  • 为PDFMake库创建了一个自定义字体(这里我使用了'iskpota'字体。为了创建自定义字体,我使用了'iskpota'字体)
  • 将“vfs_fonts.js”文件复制到您的项目中(我复制到这个src/assets/pdfMake)
  • 将“node_modules/pdfmake/build/pdfmake.js”文件复制到您的项目中(我复制到了这个“src/assets/pdfmake”)
  • 用编辑器打开“src/assets/pdfMake/pdfMake.js”

    4.1和更换

  • sinh:UniversalShaper,//Sinhala

    4.2  And uncommented these lines
    

    sinh:indicshapper,//Sinhala

    4.2  And uncommented these lines
    
    在这些更改之后,您可以将“iskpota”字体与pdfMake lib一起使用

    //------------------------------------------------------------------//

    您可以帮助这些代码更改添加“iskpota”字体

    pdfMake.fonts = {
      Iskpota: {
        normal: 'Iskpota-Regular.ttf',
        bold: 'Iskpota-Bold.ttf',
        italics: 'Iskpota-Regular.ttf',
        bolditalics: 'Iskpota-Regular.ttf'
      }
    }
    
    在pdf中包含新字体的步骤

    defaultStyle: {
      font: 'Iskpota'
    },
    

    我也有同样的问题,我使用了@Harsha Wickramasinghe所做的类似解决方法修复了这个问题。 以下是步骤:(我使用的是pdfMake版本0.1.65)

  • 为PDFMake库创建了一个自定义字体(这里我使用了'iskpota'字体。为了创建自定义字体,我使用了'iskpota'字体)
  • 将“vfs_fonts.js”文件复制到您的项目中(我复制到这个src/assets/pdfMake)
  • 将“node_modules/pdfmake/build/pdfmake.js”文件复制到您的项目中(我复制到了这个“src/assets/pdfmake”)
  • 用编辑器打开“src/assets/pdfMake/pdfMake.js”

    4.1和更换

  • sinh:UniversalShaper,//Sinhala

    4.2  And uncommented these lines
    

    sinh:indicshapper,//Sinhala

    4.2  And uncommented these lines
    
    在这些更改之后,您可以将“iskpota”字体与pdfMake lib一起使用

    //------------------------------------------------------------------//

    您可以帮助这些代码更改添加“iskpota”字体

    pdfMake.fonts = {
      Iskpota: {
        normal: 'Iskpota-Regular.ttf',
        bold: 'Iskpota-Bold.ttf',
        italics: 'Iskpota-Regular.ttf',
        bolditalics: 'Iskpota-Regular.ttf'
      }
    }
    
    在pdf中包含新字体的步骤

    defaultStyle: {
      font: 'Iskpota'
    },