DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: cuiqingbo
今日帖子: 20
在线用户: 15
导航: 论坛 -> 报表专区 斑竹:sunyesy,iamdream  
作者:
男 somemak (mak) ★☆☆☆☆ -
普通会员
2016/7/11 16:14:36
标题:
【经验分享】fastreport打印斑马条码 浏览:3379
加入我的收藏
楼主: 打印条码主要有3种方式:
1.ZPL指令写端口。
这种方式兼容性最好,但是不够直观,修改一个条码格式,需要不断的调试。
2.fastreport报表工具。
这种方式最方便,所见即所得。但是不能用代码来控制打印速率、浓度等必要属性。
3.ole调用第三方软件。
这种方式功能最强大。版权问题。。。你懂得。。。

如果把第1,2种方式结合起来,应该是目前比较好的方式了,步骤如下:
1.用fastreport设计条码,并保存fr3报表文件。程序在打印时,写代码控制打印到文件。(这个文件用文本编辑器会看到,该文件是由ZPL指令组成)
frxReport1.PrintOptions.ShowDialog := False;//不显示打印对话框
frxReport1.PrintOptions.PrnOutFileName := sTempFile;//输出的文件名
Printer.SetPrinter(PChar(defaultPrintName),PChar(defaultPrintName),'File',0);//打印到文件,需要在uses 增加Printers

2.用文本编辑器打开打印的文件。(参考附件)
写代码修改该文件中关于左、上边距,打印速率,打印浓度的ZPL指令,具体指令请参考ZPL指令帮助文档
^LH是控制边距,^PR是控制打印速率,~SD是控制打印浓度

3.将修改好的文件,打印到条码打印机的端口
 AssignFile(tempFile, defaultPrintPort);//写端口

OK,是不是发现很简单快速?利用了fastreport的所见即所得,快速设计条码格式,然后以ZPL指令输出到条码打印机。一个新的条码格式只需要几分钟就可以交货了哦

但是请注意:用fastreport这类报表工具做的条码,只适用于精度要求不高的场合。具体情况大家试试。

希望可以帮到有需要的delphier,这么多年来,delphier越来越少了。。。
此帖子包含附件:
JPEG 图像
大小:156.5K
----------------------------------------------
-
作者:
男 sun2016 (sun) ▲▲▲△△ -
普通会员
2016/7/11 16:18:01
1楼: 非常感谢分享.
----------------------------------------------
学Delphi不久,会问些初级问题,希望有人指引,不胜感激...
作者:
男 vmao (毛小毛) ★☆☆☆☆ -
盒子活跃会员
2016/7/11 21:15:25
2楼: 你这个是打一个固定的条码么?
比如:我现在有一个DataSet,里面有100个料号,现在需要循环打印出这100个条码,条码值就是料号,你这个是要做100个文件么?还是可以绑定数据集啥的?
----------------------------------------------
-
作者:
男 somemak (mak) ★☆☆☆☆ -
普通会员
2016/7/12 0:44:51
3楼: 当然是关联数据集的啊。。。
----------------------------------------------
-
作者:
男 somemak (mak) ★☆☆☆☆ -
普通会员
2016/7/12 0:46:42
4楼: 相同格式的可以做好一个模板(fr3文件),动态调用
----------------------------------------------
-
作者:
男 stone01 (stone) ★☆☆☆☆ -
普通会员
2016/7/12 8:17:26
5楼: 不错。就是带中文的标签还要加装字库,转成ZPL后又对其他类型打印机不支持。目前正头疼FR的条码精度问题。
----------------------------------------------
-
作者:
男 somemak (mak) ★☆☆☆☆ -
普通会员
2016/7/12 10:04:07
6楼: 打中文不用加装字库的,在fastreport设好字体,打印到文件时会自动转。前提是安装好Windows的驱动就好。
如果是其他指令的打印机,你可以转成打印机支持的指令集,都是大同小异的,主要是看指令集的帮助
----------------------------------------------
-
作者:
男 somemak (mak) ★☆☆☆☆ -
普通会员
2016/7/12 15:13:05
7楼: 条码精度,可以尝试调整TfrxBarcodeView的ZOOM属性
----------------------------------------------
-
作者:
男 ghs_79 (ghs) ★☆☆☆☆ -
盒子活跃会员
2016/7/13 11:55:24
8楼: fastreport哪个版本?
----------------------------------------------
Delphi爱好者。
作者:
男 somemak (mak) ★☆☆☆☆ -
普通会员
2016/7/13 15:36:04
9楼: fastreport4.X,这个应该和fastreport的版本无关吧,fastreport2.5也是可以的。
A.实际上fastreport只是用来快速建立条码格式及数据联接,
B.然后通过打印机的驱动程序,转换为打印机识别的指令文件,
C.再按照实际需求修改此指令文件,
D.最后把修改好的指令文件写端口输出到打印机。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行74.21875毫秒 RSS