打印折行的问题:因为要套打,一行不能打完内容时要折行,怎样解决分割汉字不好而出现乱码的问题?(50分)

  • 主题发起人 SevenOrient
  • 开始时间
S

SevenOrient

Unregistered / Unconfirmed
GUEST, unregistred user!
1。我首先判断一行能容纳多少个汉字
2。然后把要打印的内容都分别分成几段,
3,折行
4。可是要打印的是汉字,
举例子:要打印的字符串:“str:='A中华人民共和国'”一行只能打3个汉字,6个字节;
var a,i:integer;
begin
a:=(Length(Str) mod 6) +1
for i:=0 to a-1 do begin
printer.canvas.textout(0,i*10,copy(str,i*6+1,6));//这时候有时候把汉字分割开,
//成了乱码了!!
end;
end;
怎么不出现乱码呢?
 
做个记。
睡去了。
明天收箱
 
取字前先判断一下这个字是汉字还是单字节字符:
if word(sourcestr[String_temp])<176 then //是字符
...
else //是汉字
...
 
var
str:widestring;
这样汉字就不会被截取一半了。
 
wind2000的方法很有效,借鉴!
 
thinknet的可以,但wind2000的更简单,不过我一直没用过。
 
多人接受答案了。
 
顶部