podofo 中文乱码

 时间:2024-11-12 23:03:13

1、为了方便,在文件头中加入这个预编译宏,表示把所有的字符当成utf8编码#if defined(_MSC_VER) && (_MSC_VER >= 1600)# pragma execution_character_set("utf-8")#endif

podofo 中文乱码

2、设置字体,好像pdf中,只有这个字体支持中文const PdfEncoding* pp = PdfEncodingFactory::GlobalIdentityEncodingInstance(); PdfFont* pFont = document.CreateFont("SimHei", true, true, false, pp);

podofo 中文乱码

3、告诉垓矗梅硗 PdfString 将字符串当成utf8编码解析double w = pPage->GetPageS足毂忍珩ize().GetWidth(); double h = pPage->GetPageSize().GetHeight(); painter.DrawText( 10, 10, "Hello World!" ); PdfString str((pdf_utf8* )"测试podofo显示中文文本显示是否为乱码! \n \n"); painter.DrawMultiLineText( 0, 0, w, h, str);

podofo 中文乱码

4、下面我以podofo的helloworld为例子,helloworld是一个简单生成pdf的demo,我结合这个demo讲述一下整个实现过程,打开Podofo的vs2010工程,这个工程是基于podofo 0.9.3版本的源码生成的,在下图可以看到Helloworld这个工程

podofo 中文乱码

5、将上面的锾哩菸谷全部代码段写入到源码中去const PdfEncoding* pp = PdfEncodingFactory::GlobalIdentityEncodingInstance(); PdfFont* pFont = document.CreateFont("SimHei", true, true, false, pp);//Helvetica painter.SetFont( pFont ); double w = pPage->GetPageSize().GetWidth(); double h = pPage->GetPageSize().GetHeight(); painter.DrawText( 10, 10, "Hello World!" ); PdfString str((pdf_utf8* )"测试podofo显示中文文本显示是否为乱码! \n \n"); painter.DrawMultiLineText( 0, 0, w, h, str);

podofo 中文乱码

6、编译helloworld工程,运行helloworld,会在工程目录里生成一个output.pdf的文档,打开output.pdf文档,如下图所示,中文显示正常

podofo 中文乱码
  • Win10如何查看电脑下载速度?
  • ipv4和ipv6的区别是什么?
  • Kali linux 怎么挂载Windows共享盘
  • 虚拟机如何设置连接网络
  • xshell使用root用户登录Ubuntu的配置修改
  • 热门搜索
    怎么恢复视力 酸辣粉怎么做 怎么下载视频 好孩子推车怎么折叠 鹰嘴豆怎么吃 粽子的五花肉怎么腌制 阳痿怎么治 cat怎么读 胃病怎么治 肉粽子的肉怎么腌制