有谁知道怎么向打印机直接发送控制命令?我用的是windows 2000.(100分)

  • 主题发起人 主题发起人 duguqiubai
  • 开始时间 开始时间
D

duguqiubai

Unregistered / Unconfirmed
GUEST, unregistred user!
我用了writeprinter和escape好像都不好使。
 
procedure TForm2.PrintMyReport;
var
NPixX,NPixY:Integer;
i,m,j:Integer;
nx,ny:Integer;
hei:Single;
rhei,rHeight,rWid:Single;
begin
//nx:=-5;
ny:=0;
hei:=0.295;
rhei:=0.3;
rWid:=1.5;
rHeight:=2.8;
printer.PrinterIndex:=-1;
printer.Orientation:=poPortrait;
//纵向打印
NPixX:=GetDeviceCaps(printer.Handle,LOGPIXELSX);
NPixY:=GetDeviceCaps(printer.Handle,LOGPIXELSY);
printer.begin
Doc;
printer.Canvas.Font.Name:='宋体/0';
printer.Canvas.Font.Height:=28;
printer.Canvas.TextOut(trunc(NPixX*0.42),trunc(NPixY*0.7)+ny,Label1.Caption);
printer.Canvas.TextOut(trunc(NPixX*0.42)+150,trunc(NPixY*0.7)+ny,MLabel5.Caption);
ny := ny+40;
printer.Canvas.TextOut(trunc(NPixX*0.42),trunc(NPixY*0.7)+ny,Label5.Caption);
printer.Canvas.TextOut(trunc(NPixX*0.42)+150,trunc(NPixY*0.7)+ny,MLabel9.Caption);
ny := ny+40;
printer.Canvas.TextOut(trunc(NPixX*0.42),trunc(NPixY*0.7)+ny,Label2.Caption);
printer.Canvas.TextOut(trunc(NPixX*0.42)+150,trunc(NPixY*0.7)+ny,MLabel6.Caption);
ny := ny+40;
printer.Canvas.TextOut(trunc(NPixX*0.42),trunc(NPixY*0.7)+ny,Label3.Caption);
printer.Canvas.TextOut(trunc(NPixX*0.42)+150,trunc(NPixY*0.7)+ny,MLabel7.Caption);
ny := ny+40;
printer.Canvas.TextOut(trunc(NPixX*0.42),trunc(NPixY*0.7)+ny,Label4.Caption);
printer.Canvas.TextOut(trunc(NPixX*0.42)+150,trunc(NPixY*0.7)+ny,MLabel8.Caption);
printer.EndDoc;
end;
 
write('指令')
 
在windows2000下,但打印完一页,开始走纸,我需要连续打印图形,需要控制打印机不让它走纸,需要往打印机发控制码,我用了writeprinter和escape,无法打印出图形,不知道为什么,请各位大虾帮忙。要直接往并行端口写数据,该怎么写呢?
 
到DSP上去下一个打印控件,免费的便可以了,好用得很.
 
你不要调用Printer.EndDoc不就可以不走纸了吗?
要直接往并行端口写数据,需要控件,我前两天刚搞了一个,但和你的需求是两回事,你现在的思路还是DOS的思路。
 
我设置了页长为100mm,我要打印的图分成若干页,在Printer.begin
Doc和Printer.EndDoc之间循环打印,每次用printer.newpage开始新页,可还是走纸。如果不执行Printer.EndDoc就不走纸,那我的程序应该不走纸才对。后来我用 StartPagePrinter调用开始新页,用EndPagePrinter结束一页,打印机只打印一页。请各位仁兄帮忙。

 
用第三方控件吧
 
VAR
lpt :TextFile;
begin
AssignFile( lpt, 'LPT1' );
ReWrite( lpt );
Write( lpt, '打印内容测试' );
Write( lpt, #12 );
//打印机换页
CloseFile( lpt );
end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部