关于在Delphi中做票据打印

cysh 2006-01-02 08:38:11
如何在DELPHI中做票据打印,可以用什么控件?我现在做一个管理系统,要打印小票据(类似于交电话费后给打印的那种票据),是不是还要有专用的打印机?用一般的打印机可不要以实现?
...全文
380 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
楼上的用EXCEL 是个好方法..顶一下
其实用报表也可以实现的.和什么打印机没太大关系.我用的是自带的报表.可以实现的 就是麻烦了点.需要长时间的调试.如果是连续套打 建议你使用好点的打印机.否则连续打印会出现走纸偏差的
99175776 2006-01-05
  • 打赏
  • 举报
回复
我用过很多方法,但现在只用一种方法:
  用EXCEL打印格式又快又省心,
  把你需要的格式用程序写成EXCEL文件或是把几个打印模版在EXCEL里做好打包到资源文件里用的时候调用。

  在EXCEL里做套打时我一般用这么几个步骤
  先将套打的票据用扫描仪出一个300点的文件。
  再将文件做成EXCEL文件的背景
  然后就是画格。
  再就是填充数据了。

这样做出来的多试几次就可以出出比较理想的票据了。



祝你顺利!
y740504 2006-01-04
  • 打赏
  • 举报
回复
用FASTREPORT就可以了,因为宽度是固定的,只要计算页面的长度即可.
Mrkang 2006-01-03
  • 打赏
  • 举报
回复
给你一段代码,可以套打任何纸张
procedure TForm1.N12Click(Sender: TObject);
var
q:integer;
begin
if (Edit1.Text='') or (Edit2.Text='')
then showmessage('纸张没有设置')
else begin
Rep:=TQuickrep.create(nil);
SetLength(TmQrlabel,i);
try
Rep.Page.Length:=strtoint(Edit1.text);
Rep.page.width:=strtoint(Edit2.Text);
Rep.page.bottommargin:=0;
Rep.page.Leftmargin:=0;
Rep.page.Rightmargin:=0;
Rep.page.Topmargin:=0;
Rep.bands.HasTitle:=true;
rep.bands.TitleBand.Height:=strtoint(Edit1.Text);
rep.bands.TitleBand.Width:=Strtoint(Edit2.Text);
for q:=low(TMQrlabel) to high(TMQrlabel) do
begin
TmQRLabel[q]:=TQRLabel.create(rep);
TmQrLabel[q].parent:=Rep.bands.titleBand;
TmQrlabel[q].AutoStretch:=true;
TmQrLabel[q].wordwrap:=true;
TmQrLabel[q].Caption:= ADBText[q].Text;
TmQrlabel[q].Font.Assign(ADBText[q].font);
TmQrlabel[q].left:=formcmTopix(strtoint(AEdit[q].text));
TmQrLabel[q].Top:=FormcmTopiy(strtoint(BEdit[q].text));
end;
rep.print;

Finally
Rep.free;
end;
end;
end;
Function TForm1.FormCmtoPix(Len:integer):integer; //换算
var
DC:HDC;
dpiSize:integer;
begin
DC:=GetDC(self.Handle);
dpiSize:=GetDeviceCaps(dc,LOGPIXELSX);
Result:=Round(len*(dpisize/25.4));
end;
Function TForm1.FormCmtoPiy(Len:integer):integer;
var
DC:HDC;
dpiSize:integer;
begin
DC:=GetDC(self.Handle);
dpiSize:=GetDeviceCaps(dc,LOGPIXELSY);
Result:=Round(len*(dpisize/25.4));
end;
newfang 2006-01-03
  • 打赏
  • 举报
回复
用DELPHI带的PRINTER就可以做到精确打印!
Blakhawk 2006-01-03
  • 打赏
  • 举报
回复
建议采用EPS 1600K 的打印机。
Blakhawk 2006-01-03
  • 打赏
  • 举报
回复
用 fastReport做吧。
还有就是你的打印机可能要注意选型,因为有的打印机的走纸不标准。
如果你想实现自动进纸,连续打印的话,打印机的选型是很重要的。
我就遇到过这个情况,同样的程序,有的打印机就能很规范的打印
而有的就不能。
gerrylc 2006-01-03
  • 打赏
  • 举报
回复
帮顶一下
cysh 2006-01-02
  • 打赏
  • 举报
回复
我的票据格式大小是自定义的,我的想法是这样的,先把格式做好,然后动态填充数据,再做打印.我只用过Quick report ,没有做过像票据这样的打印,不知道如何下手.
ourlin 2006-01-02
  • 打赏
  • 举报
回复
我的想法是在 fastReport 里自己动手做一个定位打印. 我估计没有什么现成的控件,
因为各种单据的格式不一样. 但如果有的话, 别忘了告诉我一声.
至于打印机, 如果可以连续进纸打印的, 那一般的针式打印机就可以了,
如果主要是单页进纸的, 那建议使用票据打印机(好贵哦).
帮你顶了
pjfsoft 2006-01-02
  • 打赏
  • 举报
回复
不需要用专用的打印机,能不能说的的详细一点你的问题!
cysh 2006-01-02
  • 打赏
  • 举报
回复
没有人吗?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧