llPDFLib的中文乱码问题

lhkyz1985 2016-09-16 06:41:36
如题,我用的BCB6,从网上下载的llPDFLib.v3.6插件,生成PDF,英文的可以,但是中文的就是乱码。代码如下:
PDFDocument1->FileName="C:\\tt.pdf";;
PDFDocument1->AutoLaunch=true;
PDFDocument1->PageLayout=plSinglePage;
PDFDocument1->BeginDoc();
PDFDocument1->Compression =ctNone;
TFontStyles CurrentFontStyle = TFontStyles()<<fsBold<<fsUnderline;
PDFDocument1->CurrentPage->SetActiveFont("黑体", CurrentFontStyle, 20,GB2312_CHARSET);
PDFDocument1->CurrentPage->TextOutput(220, 10, 0, "中文乱码");
然后我又试着从canvas输出,这次没问题:
PDFDocument1->NewPage();
PDFDocument1->CurrentPage->SetActiveFont("黑体", CurrentFontStyle, 20,GB2312_CHARSET); // Show page header
PDFDocument1->Canvas->Font->Style=TFontStyles()<<fsItalic<<fsUnderline;
PDFDocument1->Canvas->Font->Size=20;
PDFDocument1->Canvas->Font->Name="黑体";
PDFDocument1->Canvas->Font->Charset=GB2312_CHARSET;
PDFDocument1->Canvas->Font->Charset=0;
PDFDocument1->Canvas->TextOut(350, 80, "中文正常" );我想问一下各位怎么解决这个问题啊,谢谢各位!
...全文
2156 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zouguan 2019-06-22
  • 打赏
  • 举报
回复
TextOut确实不可以,但是可以使用WideTextOut llpdflib6.4 3.6版本的可以使用UnicodeTextOut
罗后强 2018-10-23
  • 打赏
  • 举报
回复
这个的问题出在,不应该使用canvas来设置和输出文本,而应该使用:
CurrentPage->SetActiveFont('宋体',[],40);
CurrentPage->TextOut(40,400,-45,'只是一个测试而已');
并且最后一个参数“GB2312_CHARSET”不需要。
我的6.4版本下显示正确。
ooolinux 2016-09-17
  • 打赏
  • 举报
回复
GB2312_CHARSET 跟字符集有没有关系?

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧