票据打印---按事先定制好的空白票单打印 小弟做POS系统时要做一个票据打印,就象银行的票据打印一样.不知道要买什么类型的票据打印机. 针打还是热敏式.需要主要什么指标,请介绍几款! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在也在作票据打印,我用的是针打。但是对数据输出的位置控制的不好。你有什么好的方法吗?我的方法如下:procedure TForm1.Button1Click(Sender: TObject);var Device : array[0..cchDeviceName - 1] of Char; Driver : array[0..(MAX_PATH - 1)] of Char; port : array[0..32] of Char; hDMode :THandle; pDMode :PDevMode;begin 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; //如果要将当前的打印机纸张变为自定义的 // dmPaperSize 必须设置成256 pDMode^.dmPaperLength := 1850; pDMode^.dmPaperwidth := 2630; 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; //打印输出的数据 with Printer do begin begindoc; // Canvas.TextOut(955,212,edit1.Text); //Canvas.TextOut(1155,212,edit2.Text); //Canvas.TextOut(355,315,edit3.Text); { Canvas.TextOut(960,222,edit1.text); //听字 Canvas.TextOut(1155,222,edit2.text); //第几联 Canvas.TextOut(355,325,edit3.text); //姓名 Canvas.TextOut(430,380,edit4.text); //案件名称 Canvas.TextOut(420,450,edit5.text); //年 Canvas.TextOut(605,450,edit6.text); //月 Canvas.TextOut(680,450,edit7.text); //日 Canvas.TextOut(760,450,edit8.text); //上下午 Canvas.TextOut(850,450,edit9.text); //几时 Canvas.TextOut(930,450,edit10.text); //分 Canvas.TextOut(1050,450,edit11.text); //地点 Canvas.TextOut(520,570,edit12.text); //主持人姓名 Canvas.TextOut(950,570,edit13.text); //主持人职务 Canvas.TextOut(520,635,edit14.text); //记录人姓名 Canvas.TextOut(950,635,edit15.text); // 记录人职务 Canvas.TextOut(420,1750,edit16.text); //通知日期:年 Canvas.TextOut(605,1750,edit17.text); //月 Canvas.TextOut(680,1750,edit18.text); //日 Canvas.TextOut(680,1750,edit18.text); Canvas.TextOut(680,1750,edit18.text); Canvas.TextOut(680,1750,edit18.text); } Canvas.TextOut(680,680,memo1.Lines.Text); EndDoc; end;end; To: : shangxueson不好意思,我还没有用过票据打印机. 这论坛有人吗? 请教局域网内SQL SERVER 数据库同步问题的解决方案,在线等... [外壳][上下文菜单]如何取得快捷方式文件(.lnk)本身的名字 求判断输入的身份证号码是否合法的算法 急~~请问如何在程序的客户区绘制数据曲线? 简单问题,请帮手,在线等…… 请教:spcomm串口接收数据时间过长的问题 sql小问题 大侠帮忙, 一个字符串怎么样才能转换成一个字节数组? 我是菜鸟只有22分了 Delphi中怎样用Excel做报表! 菜鸟提问:请教诸位前辈,怎样能更快的学好delphi 请问:如何用程序断开拨号连接!
但是对数据输出的位置控制的不好。
你有什么好的方法吗?
我的方法如下:
procedure TForm1.Button1Click(Sender: TObject);
var
Device : array[0..cchDeviceName - 1] of Char;
Driver : array[0..(MAX_PATH - 1)] of Char;
port : array[0..32] of Char;
hDMode :THandle;
pDMode :PDevMode;
begin
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;
//如果要将当前的打印机纸张变为自定义的
// dmPaperSize 必须设置成256
pDMode^.dmPaperLength := 1850;
pDMode^.dmPaperwidth := 2630;
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;
//打印输出的数据
with Printer do begin
begindoc;
// Canvas.TextOut(955,212,edit1.Text);
//Canvas.TextOut(1155,212,edit2.Text);
//Canvas.TextOut(355,315,edit3.Text);
{ Canvas.TextOut(960,222,edit1.text); //听字
Canvas.TextOut(1155,222,edit2.text); //第几联
Canvas.TextOut(355,325,edit3.text); //姓名
Canvas.TextOut(430,380,edit4.text); //案件名称
Canvas.TextOut(420,450,edit5.text); //年
Canvas.TextOut(605,450,edit6.text); //月
Canvas.TextOut(680,450,edit7.text); //日
Canvas.TextOut(760,450,edit8.text); //上下午
Canvas.TextOut(850,450,edit9.text); //几时
Canvas.TextOut(930,450,edit10.text); //分
Canvas.TextOut(1050,450,edit11.text); //地点
Canvas.TextOut(520,570,edit12.text); //主持人姓名
Canvas.TextOut(950,570,edit13.text); //主持人职务
Canvas.TextOut(520,635,edit14.text); //记录人姓名
Canvas.TextOut(950,635,edit15.text); // 记录人职务
Canvas.TextOut(420,1750,edit16.text); //通知日期:年
Canvas.TextOut(605,1750,edit17.text); //月
Canvas.TextOut(680,1750,edit18.text); //日
Canvas.TextOut(680,1750,edit18.text);
Canvas.TextOut(680,1750,edit18.text);
Canvas.TextOut(680,1750,edit18.text); }
Canvas.TextOut(680,680,memo1.Lines.Text);
EndDoc;
end;
end;
不好意思,我还没有用过票据打印机.