如何控制打印机走纸(20分)

F

fonder

Unregistered / Unconfirmed
GUEST, unregistred user!
我用
Printer.Canvas.TextOut(Px, Py, Txt); 来对一个表格(比如:银行的存款单),进行打印,
打印完后,如何控制打印机走纸?
 
想进还是想退?
 
关注。
也想知道如何单行单行地打印文字,我打印的时候,想让它打了一行然后等待,老是不行,
哪怕打了一行,命令一结束,就走了一张纸了。
 
关注。。
 
我用
Printer.Canvas.TextOut(Px, Py, Txt); 来对一个表格(比如:银行的存款单),进行打印,
打印完后,如何控制打印机走纸?


请高手帮忙!
 
如果不会自动走纸的话,发送char(27)+char(10)吧
 
to nathanlee,麻烦详细一点,还有如何定义页长。
 
v a r
f : Te x t F i l e ;
b e g i n
A s s i g n P r n ( f ) ;
t r y
R e w r i t e ( f ) ;
Wr i t e l n ( f ,char(27)+char(10)) ;
f i n a l l y
C l o s e F i l e ( f ) ;
e n d ;
e n d ;

页长度的改变我也不熟悉了
 
如果用 Printer.Canvas.TextOut(Px, Py, Txt) 进行打印,怎样设置页长(在打印的属性里面设置页长,有作用吗?),怎样设置走
纸(让客户方便撕纸)。请帮忙!
 
本来想告诉你,你也太小气了,20!
 
关注。。
 
是不是发票纸张大小?如果只是为了方便客户撕纸呢,那就真接在打印机上设置就行了,
Epson300K的打印机就有一个功能:[red]自动切纸[/red]。
不知是不是答非所问!?
 
如果用 Printer.Canvas.TextOut(Px, Py, Txt) 进行打印,怎样设置页长(在打印的属性里面设置页长,有作用吗?),怎样设置走
纸(让客户方便撕纸)。请帮忙!
 
在begindoc之前设置纸张大小enddoc后走纸将是设置的纸张的大小
函数
Procedure SetPrnPage(mLength, mWidth: Integer); //打印机纸张设置 大小单位 0.1毫米
Var
Device: Array[0..128] Of Char;
Driver: Array[0..128] Of Char;
Port: Array[0..32] Of Char;
hDMode: THandle;
pDMode: PDevMode;
Begin
Printer.GetPrinter(Device, Driver, Port, hDMode);
//获取打印机DevMode 结构的句柄值 存放在hDMode 中
If hDMode <> 0 Then
Begin
pDMode := GlobalLock(hDMode);
//获取指向打印机DevMode 结构的// 指针
If pDMode <> Nil Then
Begin
pDMode^.dmPaperSize := 256;
// 如果要将当前打印机纸张变为自定义dmPaperSize 必须设置成256
pDMode^.dmPaperLength := mLength;
pDMode^.dmPaperWidth := mWidth;
pDMode^.dmFields := pDMode^.dmFields Or
DM_PAPERSIZE;
pDMode^.dmFields := pDMode^.dmFields Or DM_PAPERLENGTH;
pDMode^.dmFields := pDMode^.dmFields Or DM_PAPERWIDTH;
{以上三条语句是对相应的dmFields 成员进行置位。}
ResetDC(Printer.Handle, pDMode^);
//设置打印机设备环境句柄的值
GlobalUnlock(hDMode);
End;
End;
End;
 
to wonder365:感谢你的回答,还有些问题,ENDDOC 之后的走页命令(函数)是什么?如果
我要打连续打印几张单,是不是每次都要设置页长。
 
enddoc后打印机就走纸,不用调函数。如果是连续纸(链式进纸)走纸的长度,否则换页。
如果连续打印,不用每次设纸长。
不过,打印机的纸型必须设为“自定义”。
over
 
Printer.NewPage; //换页走纸
刚做完,没问题,套打数据!
 
顶部