首页>少儿编程>利用python批量生成条形码数据

利用python批量生成条形码数据

客户需要生成一批条码,询问其条码格式的时候,客户不仅告知是code128格式,还很贴心的发过来一个网站,直接在网站上填入数据,点击生成就可以生成一个条形码。然而这一批产品总计有100多台,而站点一次只能生成一个条码,挨个生成后改名(为了后续方便导入coreldraw)并保存,这个工作量有点繁重。

尝试了利用jquery挨个修改数据,将图片保存到本地的时候又犯了难,保存文件的时候不知道如何跳过下载窗口。虽然免去了修改的步骤,连按100多次下载保存,连带还要修改文件名,这显然不是一个靠谱的方式。

折腾了大半天,突然想起来python这个万能的工具,都说“人生苦短,我用python”,没准python直接就有现成的库呢,没法从站点批量下载到本地,我直接本地生成总可以了吧。

python的安装

python的编程用的不多,单位甚至没有安装,好在python的站点访问速度一直很不错,重新下载一个也耗费不了太多时间。博主用的python2.7.18版本,安装基本无脑点“next”,只是选择组件的时候记得要把环境变量给勾选上,方便后续利用pip命令安装一些库,比如本文中需要利用到的pybarcode。

pybarcode的安装

pybarcode是一个python的条形码生成工具库,这个库默认并不包含在python安装包之中,需要自行下载。python的好用就是依赖其千奇百怪的库,但是难用也难用在这里,什么功能需要用到什么库博主基本只能依赖百度查询。打开windows的命令行窗口,直接输入以下命令,如果命令无法正确执行,大概率是因为安装时没有勾选将python的几个关键path添加进环境变量:

pip install pybarcode

python的程序

python的语法早就还给了百度,一边百度一边修改,最终完成了以下程序,在博客里做个记录,方便复用与查询,python的语法很有意思,判断与循环的结果利用了缩进,取消了传统的大括号。关于python,网上有很多的教程,总体上感觉用的人太多,包含的库太多,百度能搜索到的内容不成体系,往往需要翻阅多篇文章,才能尝试出一个正确的结果。

import barcode
code=barcode.get_barcode_class("code128")
min="test-001-00"
mid="test-001-0"
max="test-001-"
for i in range(1,150):
    if i<10:
        bar=code(min+str(i))
    elif i<100:
        bar=code(mid+str(i))
    else:
        bar=code(max+str(i))
    bar.save(str(i),{'text_distance':4})

设置参数

save函数有两个参数:save(filename,options=None),filename参数为保存文件名,不需要加扩展名,将根据设置自动添加扩展名,由函数返回文件全名。当前面构造函数使用默认writer时,保存为SVG文件,扩展名为.svg。options参数默认值为None,此时使用默认参数。如果需要修改设置,使用字典传入参数,例如:save("d:\barcode",{'text':
'ABCD','format':'JPEG'})。可用参数如下:

  • 'module_width':默认值0.2,每个条码宽度,单位为毫米;
  • 'module_height':默认值15.0,条码高度,单位为毫米;
  • 'quiet_zone':默认值6.5,两端空白宽度,单位为毫米;
  • 'font_size':默认值10,文本字体大小,单位为磅;
  • 'text_distance':默认值5.0,文本和条码之间的距离,单位为毫米;
  • 'background':默认值'white',背景色;
  • 'foreground':默认值'black',前景色;
  • 'text':默认值'',显示文本,默认显示编码,也可以自行设定;
  • 'write_text':默认值True,是否显示文本,如果为True自动生成text的值,如果为False则不生成(如果此时手工设置了text的值,仍然会显示文本);
  • 'center_text':默认值True,是否居中显示文本;
  • 'format':默认值'PNG',保存文件格式,默认为PNG,也可以设为JPEG、BMP等,只在使用ImageWriter时有效;
  • 'dpi':默认值300,图片分辨率,,只在使用ImageWriter时有效。

后续打印

博主的条码需要导入coreldraw中排版打印,事实上coreldraw也自带条码工具,但不知道什么原因,博主的条码工具生成的条码经常无法正确被扫描。倒是python生成的条码,博主拿来与客户提供站点的图片对比了一下,图形基本一致,扫码结果也是相同的。

条码数据的校验

记得早先,微信与支付宝都可以方便的扫描条码并显示数据,后面微信扫描后不再显示条码信息,仅显示关联的结果。支付宝倒是一如既往,显示关联信息之余也会显示条码自身的内容。

标签: python

移动端可扫我直达哦~

推荐阅读

python 2024-06-28

python中print函数的格式控制符号

%字符:标记转换说明符的开始;转换标志:- 表示左对齐;+ 表示在转换值之前要加上正负号;“” (空白字符)表示正数之前保留空格;0表示转换值若位数不够则用0填充;最小字段宽度:转换后的字符串至少应该具有该值指定的宽度。如果是*,则宽...

少儿编程 python

python 2024-06-27

小鸟数据python语法速查表

Python对大小写敏感,使用半角符号,变量命名采用“_”、数字或字母的组合,建议采用规范的命名方式,比如使用驼峰式命名方式,编程过程中多写注释。基础语法数据类型:整数,浮点,字符串,逻辑值运算符号:+,-,*,/, % , // ,...

少儿编程 python

python 2024-06-18

pyautogui报错误:No module named pytweening

之前利用pyautogui实现了一个类似按键精灵的功能,在一个可写的PDF文件中,动态修改某个单元格的值,并依次打印出来。利用python2.7实现的程序,因为中途换装过python3,换回python2.7版本之后很多库都失效了,年...

少儿编程 python

python 2024-06-17

利用PYTHON批量修改图片的宽高尺寸

将制作完成的产品拍照发客户,是博主的工作之一,原来是用的数码相机,随着手机照片质量的提升,现在用手机拍照也能满足需求。目前在用的手机是xsmax,默认设置下一张照片经常会超过4M,记得购买的第一个u盘的容量也就32M还是64M。遇到客...

少儿编程 python

python 2024-04-08

Python利用tinify API实现批量压缩图片

一直觉得“API”这个词语的书面解释过于高大上,使用下来感觉API就如同一个自动售货机,有需求的人投了一个币进去,然后售货机给了你对应面值的饮料。就比如这个tinify API,核心功能是实现图片的压缩,用户传过去一张图片,它回传一个...

少儿编程 python

python 2024-03-21

利用python批量修改照片名称

博主之前用的iphone6sp,年前闲鱼入了一个二手的xsmax,两者拍摄的照片默认后缀都是大写的"JPG"。小鸟数据博客的主题是自己捣鼓的,技术实力有限,仅能正确识别小写的图片名称,所以某次直接用原图发布文章的时候,发生了图片无法正...

少儿编程 python

python 2023-10-24

Python官网下载速度很慢怎么办

之前一直在Python官网下载安装包,用浏览器自带的下载工具,并没有觉得慢到难以忍受。时隔大半年,手头的存储安装包的u盘不知道落哪里了,于是又一次访问了官网。公司单独拉了一根光纤,然而打开Python官网主页居然就花了半天,心说完犊子...

少儿编程 python

python 2023-09-28

pyautogui中的键盘对应键位的名称

pyautogui可以模拟用户按键,比如需要按回车,我们可以输入“enter”,需要按删除键,我们可以输入“delete”,键位太多记不过来,干脆写篇笔记记录一下吧。顺便一提,利用help可以查看pyautogui的帮助信息:help...

少儿编程 python

python 2023-09-28

利用python自动编辑可编辑pdf并实现自动打印

可编辑的pdf文件不多,工作中很少遇到类似的情况,很多需要用到自动打印的场合,一般就直接把pdf拖入到coreldraw或ai中,转换为矢量图,然后利用vba在编辑软件中实现自动打印。手头上有一份客户发过来的pdf文件,可以直接在文件...

少儿编程 python

python 2023-09-28

python2.7所对应的pyautogui版本是哪个

想安装一个pyautogui,用于实现一个类似按键精灵的效果,因为客户发过来一个可编辑的pdf文件,需要在其中填入对应的序列号,手工填写一次几百张有点儿麻烦,所以考虑用python来组合一套动作,实现自动的操作。于是在win7系统中打...

少儿编程 python

python 2023-06-28

利用python批量修改文件名一例

对python认识不多,虽然也认真的学习过一段时间,在玩魔兽世界怀旧服的时候,曾经实现过一个自动钓鱼的程序,可惜在自己的电脑上跑的好好的,换台电脑就失效了,菜鸟玩家,写的程序不具备兼容性。下载了几个文件,因为防网盘屏蔽的原因,分享者修...

少儿编程 python