求:printer连续纸打印例子(50分)

  • 主题发起人 主题发起人 kgdu
  • 开始时间 开始时间
K

kgdu

Unregistered / Unconfirmed
GUEST, unregistred user!
一次发送大约十张A4打印,但到一页时打印机就停了。如何处理呢?
用newpage则又走一页,我要的是连续套打,就像邮局打电话费单一样。
我要永远一直套打下去可以吗?
 
用A4的吗?在打印机那里有选择的,你可以选择连续走纸的,那样的话就可以实现连续套打啦
 
如何设置,我用win2000---LQ300K+II
在程序设还是windows
 
我用printer.begin
Doc;
printer.Canvas.Font.Size:=11;
printer.Canvas.Font.Name:='宋体';
for i:=1 to 100do
printer.canvas.TextOut(200,i*100,'测试');
printer.EndDoc;
为什么打一页就停下来不打呢?如何控制打印机连续不断打下去。。。帮啊
 
我以前碰到过这样的问题,改天我把答案给你发过来
 
先谢谢你cgy705
 
是打印10份一样的,还是一共十页(不同的十页)?
 
制衣用工飞。。。份数不定,但格式是定的。用连续纸打的。
——————————————————————————
| 制单号:AAA 数量:100 货号:5063 扎号:第1号 |
----------------------------------------------------
| 工序1 | 钑骨包橡巾仔(钑前上贴) 数量:10 |
|----------------------------------------------------
| 工序2 | 人工拉骨 数量:10 |
|----------------------------------------------------
| 工序3 | 平车车前中裤头织唛 数量:20 |
|----------------------------------------------------
|......基本如此(我们定期10个或15个工序)......... |
|----------------------------------------------------
| 工序10| 执包装 数量:10 |
|----------------------------------------------------
要横向连续打印,(其实就是打工序卡)工序卡的长度与连续纸的长度一样(订造的)。
打印工序卡的多少(份数)取决于这张生产制单扎数的多少。
 
我想用printer来实现,但.........
var i:integer;
begin
printer.begin
doc;
for i:=1 to 99999do
printer.canvas.textout(i*100,200,'假定这是打印内容');
printer.enddoc;

end;
以上代码打印一页后就停了下来,我不会用....我曾见过这些代码它是用newpage,但结果走一页。
printer.begin
Doc;
printer.Canvas.Font.Size:=11;
printer.Canvas.Font.Name:='宋体';
h:=0;
Tdytm.First;
with Tdytmdo
begin
while not(Tdytm.Eof)do
begin
with printer.Canvasdo
begin
TextOut(tdycs.FieldValues['床次1'],y,inttostr(fieldvalues['cc']));
TextOut(tdycs.FieldValues['尺码1'],y,fieldvalues['cm']);
TextOut(tdycs.FieldValues['制单1'],y,editdh.Text);
if fieldvalues['gx1']<>null then
begin
TextOut(tdycs.FieldValues['工序1'],y,inttostr(fieldvalues['gx1']));
TextOut(tdycs.FieldValues['扎号1'],y,inttostr(fieldvalues['zh']));
font.Size:=13;
TextOut(tdycs.FieldValues['件数1'],y,inttostr(fieldvalues['js']));
font.Size:=11;
TextOut(tdycs.FieldValues['工序2'],y,inttostr(fieldvalues['gx1']));
end;
case h of
0:TextOut(tdycs.FieldValues['制单2'],y,'('+editdh.Text+')');
2:TextOut(tdycs.FieldValues['制单2'],y,'('+fieldvalues['ys']+')');
4:TextOut(tdycs.FieldValues['制单2'],y,'('+inttostr(fieldvalues['js'])+'件)');
6:if fieldvalues['gh']<>null then
TextOut(tdycs.FieldValues['制单2'],y,'('+fieldvalues['gh']+')');
end;
inc(h);
TextOut(tdycs.FieldValues['床次2'],y,inttostr(fieldvalues['cc']));
TextOut(tdycs.FieldValues['尺码2'],y,fieldvalues['cm']);
TextOut(tdycs.FieldValues['制单3'],y,editdh.Text);
if fieldvalues['gx2']<>null then
begin
TextOut(tdycs.FieldValues['工序4'],y,inttostr(fieldvalues['gx2']));
TextOut(tdycs.FieldValues['扎号2'],y,inttostr(fieldvalues['zh']));
font.Size:=13;
TextOut(tdycs.FieldValues['件数2'],y,inttostr(fieldvalues['js']));
font.Size:=11;
TextOut(tdycs.FieldValues['工序3'],y,inttostr(fieldvalues['gx2']));
end;
y:=y+tdycs.FieldValues['列高']/2;
if fieldvalues['tm1']<>null then
begin
Textout(tdycs.FieldValues['床次1'],y,inttostr(fieldvalues['tm1']));
font.Name:='IntP12DlTt';
font.Size:=9;
Textout(tdycs.FieldValues['制单1'],y-5,fieldvalues['code1']);
font.Name:='宋体';
font.Size:=11;
end;
if fieldvalues['tm2']<>null then
begin
Textout(tdycs.FieldValues['床次2'],y,inttostr(fieldvalues['tm2']));
font.Name:='IntP12DlTt';
font.Size:=9;
Textout(tdycs.FieldValues['制单3'],y-5,fieldvalues['code2']);
font.Name:='宋体';
font.Size:=11;
end;
y:=y+tdycs.FieldValues['列高']/2;
TextOut(tdycs.FieldValues['床次1'],y,inttostr(fieldvalues['cc']));
TextOut(tdycs.FieldValues['尺码1'],y,fieldvalues['cm']);
TextOut(tdycs.FieldValues['制单1'],y,editdh.Text);
if fieldvalues['gx3']<>null then
begin
TextOut(tdycs.FieldValues['工序1'],y,inttostr(fieldvalues['gx3']));
TextOut(tdycs.FieldValues['扎号1'],y,inttostr(fieldvalues['zh']));
font.Size:=13;
TextOut(tdycs.FieldValues['件数1'],y,inttostr(fieldvalues['js']));
font.Size:=11;
TextOut(tdycs.FieldValues['工序2'],y,inttostr(fieldvalues['gx3']));
end;
case h of
1:TextOut(tdycs.FieldValues['制单2'],y,'('+inttostr(fieldvalues['cc'])+'床)');
3:TextOut(tdycs.FieldValues['制单2'],y,'('+inttostr(fieldvalues['zh'])+'扎)');
5:;
7:TextOut(tdycs.FieldValues['制单2'],y,'('+fieldvalues['cm']+')');
end;
inc(h);
if h>7 then
h:=0;
TextOut(tdycs.FieldValues['床次2'],y,inttostr(fieldvalues['cc']));
TextOut(tdycs.FieldValues['尺码2'],y,fieldvalues['cm']);
TextOut(tdycs.FieldValues['制单3'],y,editdh.Text);
if fieldvalues['gx4']<>null then
begin
TextOut(tdycs.FieldValues['工序4'],y,inttostr(fieldvalues['gx4']));
TextOut(tdycs.FieldValues['扎号2'],y,inttostr(fieldvalues['zh']));
font.Size:=13;
TextOut(tdycs.FieldValues['件数2'],y,inttostr(fieldvalues['js']));
font.Size:=11;
TextOut(tdycs.FieldValues['工序3'],y,inttostr(fieldvalues['gx4']));
end;
y:=y+tdycs.FieldValues['列高']/2;
if fieldvalues['tm3']<>null then
begin
Textout(tdycs.FieldValues['床次1'],y,inttostr(fieldvalues['tm3']));
font.Name:='IntP12DlTt';
font.Size:=9;
Textout(tdycs.FieldValues['制单1'],y,fieldvalues['code3']);
font.Name:='宋体';
font.Size:=11;
end;
if fieldvalues['tm4']<>null then
begin
Textout(tdycs.FieldValues['床次2'],y,inttostr(fieldvalues['tm4']));
font.Name:='IntP12DlTt';
font.Size:=9;
Textout(tdycs.FieldValues['制单3'],y,fieldvalues['code4']);
font.Name:='宋体';
font.Size:=11;
end;
y:=y+tdycs.FieldValues['列高']/2;
inc(fenye);
if fenye>10 then
begin
fenye:=0;
printer.NewPage;
y:=0 end;
end;
Tdytm.next;
end;
end;
printer.EndDoc;
 
有人吗?几天啦
 
有人吗?几天啦
 
可以用行打来实现,在网上搜一下有很多,微软的网站上有例子,不过是VB的,你也可以看下。
 
有人吗?几天啦
 
这个应该很容易呀 把打印机的纸张高度重新设置一下
printer.PageHeight:=your_page_length;
这样就ok了
 
在windows里面自定义一个纸张就可以了
 
接受答案了.
 
程序设置比较灵活
windows里设置纸大小缺乏移植
 
后退
顶部