请教各位大哥一个问题,我在票据套打系统中,已将文字换行,如何在打印的时候也是换行的?分不够可以加
我是用TPrinter套打的,请各位大哥帮我看看!谢谢! 问题点数:100、回复次数:8Top
1 楼cherrylin(伊雪)回复于 2004-12-04 10:14:55 得分 0
up!Top
2 楼zwb666(zwb)回复于 2004-12-04 17:11:01 得分 5
帮你DINGTop
3 楼bmwyc(汗血宝马)回复于 2004-12-04 17:59:17 得分 5
帮你up!Top
4 楼soundbug(兼职乞丐)回复于 2004-12-04 18:43:13 得分 5
方法1:如果你直接抓屏打印,那么屏幕上是怎么样打印出来就是怎么样的;方法2:可以试试在打印要换行的内容前面加上#13#10看看能否解决问题。
Top
5 楼man8888(北京男人)回复于 2004-12-05 06:03:36 得分 15
如果你是用TQuickReport做的报表,那么用以下方法换行:
{------------------------------------------------------}
{
功能:对一个Pascal字符串进行定长换行处理
入口参数:Value -- 要转换的Pascal字符串, max_len_line -- 每行Unicode字符个数。
返回结果:转换后的字符串。
}
function wrap_line(Value: String; max_len_line: integer ): String;
var
ws: WideString;
s: string;
begin
ws:= Value;
s:= '';
while length(ws) > MAX_LEN_LINE do begin
s:= s + Copy(ws, 1, MAX_LEN_LINE) + #13;
delete(ws, 1, MAX_LEN_LINE);
end;
Result:= s + ws;
end;
//调用方法OnPrint事件中写代码:
procedure TForm1.QRDBText4Print(sender: TObject;
var Value: String);
begin
Value:= wrap_line(Value, 15);
end;
Top
6 楼dakk(初学者)回复于 2004-12-05 09:43:09 得分 60
自动换行时不可能的,你必须计算出换行的位置,然后通知打印机换行打印。
我做过很多这样的程序,有几个要注意的问题。
1、计算中文字符的换行位置不要出现乱码。
2、注意不同打印机的分辨率不同,换行的位置可能时不一样的。
3、换行后是否有换页的问题Top
7 楼cherrylin(伊雪)回复于 2004-12-11 14:24:43 得分 0
up!Top
8 楼longtusoft(神灯之主)回复于 2004-12-11 15:07:46 得分 10
把打印内容绑定在MEMO控件上,就可以实行换行了.Top




