300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > pdflib:使用pdflib输出中文生僻字和繁体字乱码问题

pdflib:使用pdflib输出中文生僻字和繁体字乱码问题

时间:2019-09-21 01:10:19

相关推荐

pdflib:使用pdflib输出中文生僻字和繁体字乱码问题

使用pdflib输出中文生僻字和繁体字乱码问题。

添加中文字体语句,如下:

pdf->obj[2+i].offset = pdf->offset;length = LPDF_SPRINTF(pdf_buf,"%d 0 obj\n<<\n/Type /Font\n/Subtype /Type0\n""/BaseFont /SimSun\n/Encoding /GB-EUC-H\n/DescendantFonts [ %d 0 R ]\n"">>\nendobj\n\n",3+i,4+i);LPDF_FWRITE(&pdf->file,pdf_buf,length,&writeBytes);

参考pdf说明文档:

PDFlib自带STSong-Light,AdobeSongStd-Light-Acro,及STSongStd-Light-Acro三种简体中文字体。这三种字体同时也是Acrobat的简体中文标准字体。

以上三种字体均支持以下几种编码(Encoding):UniGB-UCS2-H,UniGB-UCS2-V,UniGB-UTF16-H,UniGB-UTF16-V,GB-EUC-H,GB-EUC-V,GBpc-EUC-H,GBpc-EUC-V,GBK-EUC-H,GBK-EUC-V,GBKp-EUC-H,GBKp-EUC-V,GBK2K-H,及GBK2K-V。

各编码定义如下:

编码以-H结尾的,表示字体将会横向输出;以 –V结尾的,表示字体将会纵向输出。以Uni开头的是Unicode类编码,如果你的输入字符串是Unicode,则应选择此类编码。以GB开头的是CP936类编码,如果你的输入字符串是Code Page 936,则应选择此类编码。

GB-EUC-H对应GB2312是1980 年,中国发布了第一个汉字编码标准,全称 《信息交换用汉字编码字符集·基本集》,通常简称 GB (“国标”汉语拼音首字母), 共收录了 6763 个常用的汉字和字符,但是不包含繁体字和一些生僻字。

所以使用此字符集会出现繁体字和生僻字乱码的情况。

这里简单介绍一下常用的几种中文字符集的关系:

看到这里,大概就知道应该怎么做了。就是把GB-EUC-H改成更全面的GBK-EUC-H或者GBK2K-H就可以了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。