我是这样做的:
设TQRDBText的AutoSize:=False;AutoStretch:=True;WordWrap:=True;
在OnPrint加入:
procedure TXXForm.XXPrint(sender: TObject;
var Value: String);
var
bExit : boolean;
iLen : integer;
strSource, strTemp : string;
begin
//32是栏宽。
if Length(Value) <= 32 then
exit;
strSource := Value;
Value := '';
//防止截断汉字。
while truedo
begin
iLen := 1;
while iLen < 32do
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) <= 32 then
begin
Value := Value + #13 + strSource;
exit;
end;
end;
end;