帆软的一维码设置不够用?引入外部条码实现自定义需求【handcode128】
背景:
项目标签要求在35个字符串的一维条码显示长度在7cm左右,目前帆软自带的条码功能不支持修改为更小的条码密度,需要新开发帆软插件引入条码支持此修改需求;
最初的方案是通过调整打印时纸张的缩放实现,但是在实际打印中有诸多不便如:字体变小,布局错乱,打印跨页,空白页等问题,,调整十分耗时;于是有了如下方案——自定义开发引入外部条码。
引入条码工具类型:barcode4j Welcome to Barcode4J
自定义函数文档:自定义函数 - FineReport帮助文档 - 全面的报表使用教程和学习资料 (fanruan.com)
基本原理:
1.将条码生成为图片;
2.调整图片缩放,匹配目前单元格大小;
可实现任意条码长度需求。
使用方法如下:
HandCode128(string1,number):生成条形码,避免字符串过长,生成的条形码显示不全,string1为所要转换的条码字符串;number1为高度,默认值为50
示例:
HandCode128('abcdefghijklmn',30)生成宽度为30的条形码,扫描结果为abcdefghijklmn的条形码
案例:
XXX条码标签——需要在7cm左右显示35位字符串
a. 设置容纳条码的单元格宽度为80mm,在其中输入如下公式将字符串转换为条码;
b. 设置单元格图片布局为“适应”
c. 打印预览和实际打印如图
不同字符串长度效果如下,与图片自适应缩放效果相同,但条码过程也会导致扫码困难。
以上,条码长度满足需求,打印可使用手机和PDA正常扫码,无需调整页面缩放。