如題,我用的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, "中文正常" );我想問一下各位怎么解決這個問題啊,謝謝各位!
uj5u.com熱心網友回復:
GB2312_CHARSET跟字符集有沒有關系?
uj5u.com熱心網友回復:
這個的問題出在,不應該使用canvas來設定和輸出文本,而應該使用:CurrentPage->SetActiveFont('宋體',[],40);
CurrentPage->TextOut(40,400,-45,'只是一個測驗而已');
并且最后一個引數“GB2312_CHARSET”不需要。
我的6.4版本下顯示正確。
uj5u.com熱心網友回復:
TextOut確實不可以,但是可以使用WideTextOut llpdflib6.4 3.6版本的可以使用UnicodeTextOut轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/32468.html
標籤:VCL組件使用和開發
上一篇:用c++編譯
