文本转条码及二维码合集

分享  收藏
3 / 335
import qrcode
import base64
from io import BytesIO
#code = qrcode.make("5645646")
'''
自定义属性
version:二维码的格子矩阵大小,可以是 1 到 40,1 最小为 21*21,40 是 177*177
error_correction:二维码错误容许率,默认 ERROR_CORRECT_M,容许小于 15% 的错误率
box_size:二维码每个小格子包含的像素数量
border:二维码到图片边框的小格子数,默认值为 4
fill_color:填充色
back_color:背景色

'''

qr = qrcode.QRCode( version=1, box_size=10, border=1)
qr.add_data("564564654a")
qr.make(fit=True)
img = qr.make_image(fill_color='blue', back_color='white')
obs = BytesIO()
#code.save(obs,format='PNG')
img.save(obs,format='PNG')

binarydata = obs.getvalue()
#数据流转base64
base64String = base64.b64encode(binarydata).decode()
print(base64String)

'''
import barcode
import base64
from barcode.writer import ImageWriter
from io import BytesIO
#条码类型编码 ['code128', 'code39', 'ean', 'ean13', 'ean14', 'ean8', 'gs1', 'gs1_128', 'gtin', 'isbn', 'isbn10', 'isbn13', 'issn', 'itf', 'jan', 'pzn', 'upc', 'upca']
#Code = barcode.get_barcode_class('code128')
#输出PNG 默认值
#CodeImage = barcode.get('5901234123457', writer=ImageWriter())

module_width 条形码模块的宽度(以毫米为单位,为浮点数)。默认为0.2
module_height 条形码模块的高度(以毫米为单位)的浮点数。默认为15.0
font_size 条形码下文本的字体大小(以 pt 为单位,为整数)。字体大小为零时,文本将被隐藏。默认为10
text_distance 条形码与其下方文本之间的距离(以毫米为单位,浮点数)。默认为5.0
background 创建的条形码的背景颜色为字符串。默认为白色
foreground 创建的条形码的前景色和文本颜色(字符串)。默认为黑色

#自定义参数 writer_options
options = {"module_width":0.2,"module_height":15,"font_size":10}
#CodeImage = barcode.get(name="code128",code="56456456456456", writer=ImageWriter())
#文件名不含后缀默认PNG--->保存到本地(代码块勿用)
#code = codeiamge.save('Code')

obs = BytesIO()
CodeImage = barcode.generate(name="gs1_128",code="hkjhjkkDDDD5645646", writer=ImageWriter(), output = obs,writer_options = options,text = "")
OutputStream = obs.getvalue()
base64String = base64.b64encode(OutputStream).decode()

print(base64String)
'''

注意 这是两个模块!!!

因为打印模板要有条码和二维码,系统给的条码参数出来是带文字的,而模板需要条码不带底部文字
明道的条码没法去掉底部文字,现在只能用这个方法

image.png

但是附件图片是可以作为参数放进去的,只要是图片,基本可以完美做出对应的模板

(现在还有子表单元格合并的问题没有解决)