我日前在做一个打印交费发票的时候,因为发票就那么点长,可是打印机老是走很长的一段纸,我要控制打印机刚好走到下一张发票纸,就最好了,这个怎么控制,怎么向打印机发送指令,请教各位高手。
解决方案 »
- 请帮看下这小段代码哪里有问题?IdTCPClient、IdTCPServer传输数据
- 关于程序窗口自已刷新的问题?
- 在COM的接口方法中能不能用字符串数组,能的话在类型库参数中选择什么Type?不能的话有什么方法替代?如:procedure Tusd_ws.aa(aaa: arr
- !!!!!!散分!收集delphi567下载地址
- 超连接问题,请指教.
- 有什么方法可以实现在打印的过程中即自动换行,又可以设置字体?
- 按下F9怎么总是先跳出CPU窗口,在哪里设置关了它?
- 咨询!咨询!咨询!
- 广州创业公司急聘全职Delphi/java工程师
- 再问一次,我想开个软件公司,可没有行业背景和关系,成功率多少?
- 请教,发送函数SendBuffer和接收的OnDataReceive可以同时执行不?
- 想学ADO,请问哪里可以下到李维的<<DELPHI 5.X ADO/MTS/COM+高级程序设计》这本书?
我为财务用C++BUILDER编过一个打印连续小纸的程序,居然分毫不差地
控制走纸分页。
{
char Device[CCHDEVICENAME];
char Driver[MAX_PATH];
char Port[32];
THandle hDMode;
PDevMode pDMode; TPrinter *Prn = Printer();
Prn->GetPrinter(Device,Driver,Port,hDMode);
if (hDMode!=NULL)
{
pDMode=(PDevMode)GlobalLock((HGLOBAL &)hDMode);
if (pDMode!=NULL)
{
pDMode->dmPaperSize= 256;
pDMode->dmFields=pDMode->dmFields | DM_PAPERSIZE;
pDMode->dmPaperLength =h; //高 *0.1mm
pDMode->dmFields =pDMode->dmFields| DM_PAPERLENGTH;
pDMode->dmPaperWidth = w; //宽 *0.1mm
pDMode->dmFields =pDMode->dmFields| DM_PAPERWIDTH;
}
ResetDC(Prn->Handle,pDMode);
GlobalUnlock((HGLOBAL &)hDMode);
}
}
// 不知怎样改成delphi
设定缺省打印机的纸张,非常管用,此API程序是由BCB孙版
主春阳提供的,
的初衷,打印机的型号千差万别
否则换页问题根本就不算问题,因为它总是按照纸张设定
的大小换页的
你要的是字符方式,要绕开windows了,
DOS下是调用Bios的,现在已不能调用它了,
把打印机当成“文件”试试,看写打印机文件行不行。打印机是有一套内部控制码的,但各个打印机的内部码肯定是不一样的,
你是想回到上个世纪的DOS方式了,想当年每一套系统都要自已控制不
同的打印机,够累的了。我觉得你是钻牛角尖,其实在windows下根本用不着你去
控制换页,你只要设置纸张的大小,在这么大小的面积,写上你的字符
就行了。