开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

楼主: qiukeng007
收起左侧

[已解决] 求助关于易语言打印条码的精度问题?

 关闭 [复制链接]
结帖率:100% (5/5)
发表于 2025-3-10 17:33:08 高大上手机用户 | 显示全部楼层   陕西省西安市
.版本 2 .程序集 条码生成器 .程序集变量 打印机句柄, 整数型 .程序集变量 条宽毫米, 小数型 .程序集变量 DPI, 整数型 .子程序 _初始化 DPI = 300 ' 默认300dpi 条宽毫米 = 0.5 .子程序 生成Code128 .参数 数据, 文本型 .局部变量 编码序列, 整数型, , "0" .局部变量 单位宽度, 小数型 .局部变量 当前X, 小数型 .局部变量 是否画条, 逻辑型 .局部变量 i, 整数型 ' 编码转换 编码序列 = 编码处理(数据) ' 初始化打印机 InitPrinter() ' 计算单位宽度(毫米转像素) 单位宽度 = DPI / 25.4 * 条宽毫米 ' 设置页面大小(根据实际纸张尺寸) 打印机_置纸张大小(100, 50) ' 单位:毫米 ' 绘制静区(左侧空白) 当前X = 单位宽度 * 10 ' 左侧留5mm(10个条宽单位) ' 绘制条码 是否画条 = 真 .计次循环首 (取数组成员数(编码序列), i) .如果 (是否画条) 打印机_画矩形(当前X, 0, 单位宽度 * 编码序列[i], 15 * DPI/25.4) ' 高度15mm .否则 ' 空区域跳过不画 .如果结束 当前X = 当前X + (单位宽度 * 编码序列[i]) 是否画条 = 取反(是否画条) .计次循环尾 ' 结束打印 打印机_结束文档() .子程序 编码处理 .参数 数据, 文本型 .局部变量 结果, 整数型, , "0" .局部变量 校验和, 整数型 .局部变量 i, 整数型 ' 起始码B(编码值104) 校验和 = 104 加入成员(结果, 2) ' 条 加入成员(结果, 1) ' 空 加入成员(结果, 2) ' 条 加入成员(结果, 2) ' 空 加入成员(结果, 2) ' 条 加入成员(结果, 2) ' 空 ' 数据编码(需补全编码表) .计次循环首 (取文本长度(数据), i) ' 查表获取编码值(示例) .判断开始 (取代码(数据, i) = 65) ' A 加入成员(结果, 2,1,3,2,1,2) 校验和 = 校验和 + 33 * i ' ...其他字符处理 .默认 .判断结束 .计次循环尾 ' 校验码(需实现完整计算) 校验和 = 校验和 % 103 ' 加入校验码编码 ' 终止符 加入成员(结果, 2,3,3,1,1,2,3) 返回 结果 ' 需实现的打印机API封装 .子程序 InitPrinter ' 调用Windows GDI API实现打印初始化 ' 使用API:StartDoc、StartPage等 .子程序 打印机_画矩形 .参数 x, 小数型 .参数 y, 小数型 .参数 宽, 小数型 .参数 高, 小数型 ' 调用Rectangle或FillRect API

使用注意事项:

需补全Code128编码表(共107个字符编码)

完善校验码计算逻辑(模103算法)

实现精确的毫米到像素转换公式

建议添加静区检查(左侧≥5mm,右侧≥3mm)

调用前需设置打印机为高精度模式: 打印机_置质量(DPI, 真) ' 设置分辨率并禁用缩放

实际打印建议:

使用激光打印机输出

选择哑光不反光的标签纸

打印后用多种扫描枪测试识别率

调整条宽值应在0.25mm-0.75mm之间
回复

使用道具 举报

结帖率:50% (3/6)

签到天数: 1 天

 楼主| 发表于 2025-3-10 21:39:27 | 显示全部楼层   南非
jyfinn 发表于 2025-3-10 17:33
.版本 2 .程序集 条码生成器 .程序集变量 打印机句柄, 整数型 .程序集变量 条宽毫米, 小数型 .程序集变量 D ...

说实话,这段代码不是很理解,能有成品吗?
回复

使用道具 举报

结帖率:33% (1/3)

签到天数: 2 天

发表于 2025-3-11 09:00:57 | 显示全部楼层   山东省菏泽市
是你打印机精度不行吧,换个好的高精度标签打印机试试
回复

使用道具 举报

结帖率:50% (3/6)

签到天数: 1 天

 楼主| 发表于 2025-3-11 14:19:16 | 显示全部楼层   南非
zangai 发表于 2025-3-11 09:00
是你打印机精度不行吧,换个好的高精度标签打印机试试

同一台打印机,用市面上其他点标签打印软件打印点非常精细,我用易语言打印,全是胡的
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 3 天

发表于 2025-3-11 14:29:54 | 显示全部楼层   陕西省西安市
条码管理源码
https://bbs.125.la/forum.php?mod=viewthread&tid=14829785
(出处: 精易论坛)

把打印的代码抠出来
回复

使用道具 举报

结帖率:100% (7/7)

签到天数: 3 天

发表于 2025-3-11 19:29:23 | 显示全部楼层   广东省茂名市
看了看源码,没有打印机测试,怀疑是单位、像素的问题,可以打印出来看看那些数值是否和打印的一致:
0.e (17.08 KB, 下载次数: 1)
回复

使用道具 举报

结帖率:50% (3/6)

签到天数: 1 天

 楼主| 发表于 2025-3-11 19:34:57 | 显示全部楼层   南非
鱼老板 发表于 2025-3-11 14:29
条码管理源码
https://bbs.125.la/forum.php?mod=viewthread&tid=14829785
(出处: 精易论坛)

这个应该是用了锐浪点打印套件,我之前用过,但是打印小条码回不被扫码枪识别,所以需要其他方案
回复

使用道具 举报

结帖率:50% (3/6)

签到天数: 1 天

 楼主| 发表于 2025-3-11 19:36:43 | 显示全部楼层   南非
jingyi11023995 发表于 2025-3-11 19:29
看了看源码,没有打印机测试,怀疑是单位、像素的问题,可以打印出来看看那些数值是否和打印的一致:
...

易语言自带点打印机功能能够打印,之前用过打印机画图片的方法,但是精度不够,是模糊的
回复

使用道具 举报

结帖率:100% (7/7)

签到天数: 3 天

发表于 2025-3-11 20:30:54 | 显示全部楼层   广东省茂名市
qiukeng007 发表于 2025-3-11 19:36
易语言自带点打印机功能能够打印,之前用过打印机画图片的方法,但是精度不够,是模糊的 ...

模糊可能原因是什么?像素?打印分辨率?
打印机1.绘画单位 = 0  ' 0到5
所以叫你自己试。。。你没试怎么知道是哪个原因?
回复

使用道具 举报

结帖率:100% (75/75)

签到天数: 3 天

发表于 2025-3-11 22:40:50 高大上手机用户 | 显示全部楼层   吉林省长春市
我的 50×30mm 都正常扫

补充内容 (2025-3-12 08:13):
你不生成的条形码载入图片框,然后打印机画图片时候从图片框载入就清晰了。

补充内容 (2025-3-12 08:14):
你生成的条形码载入图片框,然后打印机画图片时候从图片框载入就清晰了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表