有个思源宋体的字体使用疑惑,请大佬指点

查看 58|回复 1
作者:bard99   
U+2f04

U+4e59

在使用 itext 的 html2pdf 生成 PDF 文件,发现一个奇怪的问题。
举个例子,我的原始文本是:乙方。这个乙方就是输入法正常打出来的乙方,拼音:yifang 。Unicode 为 U+4e59 。
但是生成的 PDF 文件,却变成了:⼄。Unicode 为 U+2f04 。拼音查不出来,好像因为是一个部首?
我是用的思源宋体的粗体,然后产生了这个问题。后面我换了一个字体,狮尾四季春。PDF 生成的文字就正常了,生成的也是乙方。拼音:yifang 。Unicode 为 U+4e59 。
我去查了一下,确实这是 2 个字符:
  • https://charbase.com/2f04-unicode-kangxi-radical-second
  • https://charbase.com/4e59-unicode-cjk-unified-ideograph

    但是思源宋体也是同时有这 2 个字符:



    那导致这个转换不一致的原因是什么呢?
    [ol]
  • 我看了下 html2pdf 的源码 debug ,找了半天没找到关于字体这里转换字符的逻辑。
  • 但是我想了下,原始文本是乙方,乙的 Unicode 是 U+4e59 ,那应该 html2pdf 在思源宋体里面找 U+4e59 编码的字符使用就好了,但这里不应该会找错啊?
    [/ol]
    困扰了半天了,求助下了解的大佬~

    e59, 乙方, unicode, 字符

  • tabris17   
    应该是 iText 的 bug
    我用字体工具查看了思源宋体,发现代码点$2F04,$4E59 共用一个字形,可能 iText 在处理字体输出后就取了小的那个 Unicode 码
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部