读书人

小弟我用的76的针式打印机,收银的那种

发布时间: 2012-02-14 19:19:19 作者: rapoo

我用的76的针式打印机,收银的那种,每次打印完总要走一段空白纸,有没有办法??
我用POS指令写的很好,但是老板要求用很大的字,没办法,只好换成TPRINTER做,在80带切纸的机器上很好,但是在76的针式打印机上,每次ENDDOC后,总要走很长一段空白,我试了一下设页面高度,结果没有用.不知道有什么方法可以解决.设置纸张的带码是COPY的,如下.
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; //要设为其它可查API 中的DevMode
// 如果要将当前打印机纸张变为自定义
//dmPaperSize 必须设置成256
pDMode^.dmPaperLength := 100;
pDMode^.dmPaperWidth := 1900;
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;
{ 下面的代码是为了测试打印机是否
 按190 *114 纸张大小来打印}
with Printer do begin
BeginDoc;
Canvas.TextOut(10,10, 'Hello, My Friend! ');
EndDoc;
end;
我是在80的机器上试的,手头没有76的机器,结果Hello, My Friend一打就切纸了,并没有按我设的长度走.请指教?

[解决办法]
世道不好,大家都懒得搞这些了。

读书人网 >.NET

热点推荐