enspo lq-300k+ 打印机走纸问题 ( 积分: 200 )

  • 主题发起人 主题发起人 pangdanfeng
  • 开始时间 开始时间
P

pangdanfeng

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠:
我用的是windows2000 enspo lq-300k+ 打印机,我要打印的纸张大小为
10cm*14cm,两边有控的打印纸,每打印完一张后都要走完一张A4纸的长度才能停止,怎样能控制打印结束后立刻停止下来
怎样控制打印机的走纸问题在windows2000下 ,急求助
 
各位大侠:
我用的是windows2000 enspo lq-300k+ 打印机,我要打印的纸张大小为
10cm*14cm,两边有控的打印纸,每打印完一张后都要走完一张A4纸的长度才能停止,怎样能控制打印结束后立刻停止下来
怎样控制打印机的走纸问题在windows2000下 ,急求助
 
我用的是98,直接在打印机里设置好纸张 ,好像是2100*1400(记得不太清楚了)
这样就可以每次走半张纸
 
在打印机里怎么设它的纸张大小啊?
 
我也遇到同样的问题,不过用的是富士通DPK710,系统是XP
就算将打印机的纸张设成自定义了20*14,它也会走A4出来,烦死了
 
你用的报表控件有问题
 
2000在打印机那里是可以设自定义纸页的,设好后就是把打印机的自动切纸设为开。就可以了。
 
把打印机的打印首选项的纸张大小设置为自定义纸张,自定义纸张尺寸与你要打印的纸张大小一致即可。
 
用LQ1600KII的驱动~~
 
我用过的程序,一定可以的;
Win2000下自定义纸张打印的Delphi实现
最近做一个项目升级,在打印方面遇到问题。原系统是使用Powerprn进行页面设置,在Win98下运行正常,但在Win2000下,不能自定义纸张打印。
在Win2000下要自定义纸张,必须在“打印机”的服务器属性中增加(用资源管理器打开“打印机”页面,“文件”菜单中有“服务器属性”)。但总不能让用户自己去增加自定义纸张吧?应该可以通过程序自动进行设置。
包括以下内容:
函数一:设置自定义纸型
{增加规格自定义纸张
PaperName: 自定义纸张名称
PaperWidth: 纸张的宽度,以0.1mm为单位
PaperLength: 纸张的高度,以0.1mm为单位}
procedure AddCustomPaper(const PaperName: string;
PaperWidth, PaperLength:integer);
var
PrintDevice, PrintDriver, PrintPort : array[0..255] of Char;
hDMode : THandle;
hPrinter : THandle;
FormInfo : TFormInfo1;
begin

Printer.GetPrinter(PrintDevice, PrintDriver, PrintPort, hDMode);
OpenPrinter(PrintDevice, hPrinter, nil);
if hPrinter = 0 then

raise Exception.Create('联接打印机失败!');
with FormInfodo

begin

Flags := FORM_USER;
pName := PChar(PaperName);
Size.cx := PaperWidth*100;
Size.cy := PaperLength*100;
ImageableArea.Left := 0;
ImageableArea.Top := 0;
ImageableArea.Right := PaperWidth*100;
ImageableArea.Bottom := PaperLength*100;
end;

//修改纸型,如果没有就新增
if not SetForm(hPrinter, PChar(PaperName), 1, @FormInfo) then

AddForm(hPrinter, 1, @FormInfo);
ClosePrinter(hPrinter);
end;

函数二:判断操作系统类型,因为对win98和 win2000的devmode设置是不一样的,所以需要先进行判断。
Function OsisNT : boolean;//判断系统是否是NT类型
VAR
GETVER:OSVERSIONINFO;
//声明所需变量,具体内容请参考API函数说明文件。
RET:LONGBOOL;
begin

GETVER.dwOSVersionInfoSize:=148;
RET:=GETVERSIONEX(GETVER);
//调用API函数判断开始
result := GETVER.dwPlatformId=VER_PLATFORM_WIN32_NT;
end;

打印过程:
{首先应确保调用AddCustomPaper以确保有该种纸型
PaperWidth: 纸张的宽度,以0.1mm为单位
PaperLength: 纸张的高度,以0.1mm为单位}
procedure printSomething(PaperWidth, PaperLength:integer);
var
aDevice: array[0..CCHDEVICENAME-1] of Char;
aDriver: array[0..MAX_PATH-1] of Char;
aPort: array[0..31] of Char;
hDevMode: THandle;
pDevMode: PDeviceMode;
begin

// 获取打印机DeviceMode的句柄
Printer.GetPrinter(aDevice, aDriver, aPort, hDevMode);
if hDevMode <> 0 then

begin

// 获取指向DeviceMode的指针
pDevMode := GlobalLock(hDevMode);
if pDevMode <> nil then

begin

pDevMode^.dmPaperSize := DMPAPER_USER;
pDevMode^.dmPaperLength:= paperlength * 100;
pDevMode^.dmPaperWidth := PaperWidth * 100;
if OsisNT then

pDevMode^.dmFormName := 'Your Paper';//改成你的纸张类型名
pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERSIZE;
pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERLENGTH;
pDevMode^.dmFields := pDevMode^.dmFields or DM_PAPERWIDTH;
if OsisNT then

pDevMode^.dmFields := pDevMode^.dmFields or DM_FORMNAME;
ResetDC(Printer.Handle, pDevMode^);
GlobalUnlock(hDevMode);
end;

end;

with Printerdo

begin

begin
Doc;
{TODO: Print your report}
EndDoc;
end;

end;
 
嘿,不如去问问东家???
http://www.epson.com.cn/tech_support/faq/document.asp?articleId=1500&amp;ColumnId=890&amp;pg=&amp;view=
针式打印机打印241×279mm连续纸时总按A4纸长度多走一部分白纸,如何解决?
 
用自定义纸张,2100*1400,否则就是驱动有问题
 

Similar threads

N
回复
11
查看
266
nathanlee
N
N
回复
13
查看
290
duguqiubai
D
K
回复
6
查看
238
rhyme
R
D
回复
6
查看
253
delphihsc
D
后退
顶部