生成底部带文字的code128条码

wils
wils Lv.2 潜力创作者

Lv.2潜力创作者

昨天有朋友问,能否用类似code128.ttf字体的方式,生成底部带字符的code128条码

试了一下Libre Barcode 128 Text这款字体,结果出现问题

  • 在浏览器里使用上述字体时,能够正确得到结果

  • 但表格内使用,校验位的底部会多出一个字符

  • 问AI,说是Excel不支持字体的calt特性导致的


而且,wps表格已经支持IMAGE公式

似乎通过本地服务,用zint生成带字符的条码更方便


Linux里很方便安装busybox和zint命令

Windows里可以通过wsl1安装,也可以用其他方式


  1. 新建cgi-bin目录,里面创建个bar.sh的脚本

  1. 脚本内容是:

#!/bin/sh
echo -e 'Content-Type: image/svg+xml; charset=utf-8\n'
QUERY_DECODED=$(busybox httpd -d "$QUERY_STRING")
zint -d "$QUERY_DECODED" --scale=2 --height=20 --filetype=svg --direct
  1. 启动服务:

busybox httpd -p 8080

然后就可以在wps表格内使用IMAGE公式生成条码

B1=IMAGE("http://127.0.0.1:8080/cgi-bin/bar.sh?"&ENCODEURL(A1))

效果不太令人满意,可以通过zint命令的参数进行调整

下一步我再看看上面那个字体里,有没有不含字符的条码,尝试手动计算能否让校验位不出问题

海南省
浏览 114
收藏
6
分享
6 +1
+1
全部评论