在你的qrdbtext的onprint事件中下下列代码,
procedure QRDBText1Print(sender: TObject;
var Value: String);
var bExit : boolean;
iLen : integer;
strSource, strTemp : string;
begin
if Length(Value) <= 58 then
//这个58应该是用你的行的长度除以8得到的,你可 以多试几次,保证折行的准确长度
exit;
strSource := Value;
Value := '';
//防止截断汉字。
while truedo
begin
iLen := 1;
while iLen < 58do
begin
if ord(strSource[iLen]) > 128 then
inc(iLen, 2)
else
inc(iLen);
end;
dec(iLen);
strTemp := Copy(strSource, 1, iLen);
//加回车。
if Value = '' then
Value := strTemp
else
Value := Value + #13 + strTemp;
strSource := Copy(strSource, iLen + 1, Length(strSource) - iLen);
if Length(strSource) <= 82 then
begin
Value := Value + #13 + strSource;
exit;
end;
end;
end;