如何让打印机从页的最顶部开始打印?(200分)

  • 主题发起人 主题发起人 wallis
  • 开始时间 开始时间
W

wallis

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位,该如何让EPSON LQ1600打印连续纸的时候从页的最顶部开始,不留空白。
我试过微调打印机的进纸设定,但他总有一个最少进纸。有什么办法能让打印机从最
顶部开始打印或者进纸后退回顶部?
 
你能不能.设置成直接打印输出...
 
to brown0432:'设置成直接打印输出'是什么意思?
 
我的意思是让你直接写入到打印机..打印..
 
打印机设置中有设置页顶位置
请看说明书
另外连续纸有自动切纸功能,
LQ300K用过不知Epson LQ 1600K如何
 
我找了很久,在各论坛也发过很多贴,这个问题上得到以下结论:
除直接调用打印机指令(如EPSON指令集)外,没有API或其他方法可以实现,
就算您写PRINTER.CANVAS,也只能从进纸后的位置(0,0)开始打印,
改成(-10,-10)打印机也不会退一丁点的纸,只会出现打了半截的字
 
to beagx:我看过一下打印机的控制指令,但不懂怎样使用,能不能举个例子说明一下
 
因为不通用,所以我没有用DELPHI写过,
很久以前用TC2.0写的,用EPSON指令集
/*打印一行汉字(字符数组,放大参数(是否采用倍宽打印),字符长度,打印端口[通常为0])*/
void printline(unsigned char ch[],int fd,int cd,int print_port)
{ int i;
unsigned char chh[2];
if (fd==2)
{
biosprint(0,27,print_port);
biosprint(0,14,print_port);
}
for (i=0;i<cd;i++)
if (ch<0xf8)
{
biosprint(0,ch,print_port);
if (ch>0xa0)
{
i++;
biosprint(0,ch,print_port);
}
}
else
{
chh[0]=ch;
i++;
chh[1]=ch;
dylpz(fd,chh,print_port);//用于打印一些在UCDOS/HDDOS中自造的汉字
if (fd==1)
biosprint(0,20,print_port);
if (fd==2)
{
biosprint(0,27,print_port);
biosprint(0,14,print_port);
}
}
biosprint(0,20,print_port);
}
在DELPHI中,你把PRN当成文件写就可以了,
如下:
ASSIGNED('PRN',fp);
write(fp,打印机指令);//如EPSON换行:write(fp,27);write(fp,10);
write(fp,str);
close(fp);

 
后退
顶部