鱼C论坛

 找回密码
 立即注册
查看: 5927|回复: 7

[已解决]怎么用python调用条码软件打印条码?如bartender和codesoft软件

[复制链接]
发表于 2020-12-15 09:06:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
                在网上找了好久只找到了关于bartender的调用方法如下,但套用后打印不了,不知道是哪里出了问题?请各位大神支支招,看怎么实现用python调用对应条码软件的模版来打印,如bartender的*.BTW模版,或codesoft的*.LAB标签,小弟在这拜谢!

1607993644(1).jpg
最佳答案
2020-12-15 09:21:48
  1. #引入所需要的基本包
  2. from reportlab.pdfgen import canvas
  3. from reportlab.graphics.barcode import code39, code128, code93
  4. from reportlab.graphics.barcode import eanbc, qr, usps
  5. from reportlab.graphics.shapes import Drawing
  6. from reportlab.lib.units import mm
  7. from reportlab.graphics import renderPDF


  8. def createBarCodes(c):
  9.     barcode_value = "1234567890"

  10.     barcode39 = code39.Extended39(barcode_value)
  11.     barcode39Std = code39.Standard39(barcode_value, barHeight=20, stop=1)

  12.     # code93 also has an Extended and MultiWidth version
  13.     barcode93 = code93.Standard93(barcode_value)

  14.     barcode128 = code128.Code128(barcode_value)
  15.     # the multiwidth barcode appears to be broken
  16.     #barcode128Multi = code128.MultiWidthBarcode(barcode_value)

  17.     barcode_usps = usps.POSTNET("50158-9999")

  18.     codes = [barcode39, barcode39Std, barcode93, barcode128, barcode_usps]

  19.     x = 1 * mm
  20.     y = 285 * mm

  21.     for code in codes:
  22.         code.drawOn(c, x, y)
  23.         y = y - 15 * mm

  24.     # draw the eanbc8 code
  25.     barcode_eanbc8 = eanbc.Ean8BarcodeWidget(barcode_value)
  26.     d = Drawing(50, 10)
  27.     d.add(barcode_eanbc8)
  28.     renderPDF.draw(d, c, 15, 555)

  29.     # draw the eanbc13 code
  30.     barcode_eanbc13 = eanbc.Ean13BarcodeWidget(barcode_value)
  31.     d = Drawing(50, 10)
  32.     d.add(barcode_eanbc13)
  33.     renderPDF.draw(d, c, 15, 465)

  34.     # draw a QR code
  35.     qr_code = qr.QrCodeWidget('http://blog.csdn.net/webzhuce')
  36.     bounds = qr_code.getBounds()
  37.     width = bounds[2] - bounds[0]
  38.     height = bounds[3] - bounds[1]
  39.     d = Drawing(45, 45, transform=[45./width,0,0,45./height,0,0])
  40.     d.add(qr_code)
  41.     renderPDF.draw(d, c, 15, 405)


  42. #定义要生成的pdf的名称
  43. c=canvas.Canvas("reportlab.pdf")
  44. #调用函数生成条形码和二维码,并将canvas对象作为参数传递
  45. createBarCodes(c)
  46. #showPage函数:保存当前页的canvas
  47. c.showPage()
  48. #save函数:保存文件并关闭canvas
  49. c.save()
复制代码


转载自 CSDN ForTheDreamSMS
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-15 09:21:48 | 显示全部楼层    本楼为最佳答案   
  1. #引入所需要的基本包
  2. from reportlab.pdfgen import canvas
  3. from reportlab.graphics.barcode import code39, code128, code93
  4. from reportlab.graphics.barcode import eanbc, qr, usps
  5. from reportlab.graphics.shapes import Drawing
  6. from reportlab.lib.units import mm
  7. from reportlab.graphics import renderPDF


  8. def createBarCodes(c):
  9.     barcode_value = "1234567890"

  10.     barcode39 = code39.Extended39(barcode_value)
  11.     barcode39Std = code39.Standard39(barcode_value, barHeight=20, stop=1)

  12.     # code93 also has an Extended and MultiWidth version
  13.     barcode93 = code93.Standard93(barcode_value)

  14.     barcode128 = code128.Code128(barcode_value)
  15.     # the multiwidth barcode appears to be broken
  16.     #barcode128Multi = code128.MultiWidthBarcode(barcode_value)

  17.     barcode_usps = usps.POSTNET("50158-9999")

  18.     codes = [barcode39, barcode39Std, barcode93, barcode128, barcode_usps]

  19.     x = 1 * mm
  20.     y = 285 * mm

  21.     for code in codes:
  22.         code.drawOn(c, x, y)
  23.         y = y - 15 * mm

  24.     # draw the eanbc8 code
  25.     barcode_eanbc8 = eanbc.Ean8BarcodeWidget(barcode_value)
  26.     d = Drawing(50, 10)
  27.     d.add(barcode_eanbc8)
  28.     renderPDF.draw(d, c, 15, 555)

  29.     # draw the eanbc13 code
  30.     barcode_eanbc13 = eanbc.Ean13BarcodeWidget(barcode_value)
  31.     d = Drawing(50, 10)
  32.     d.add(barcode_eanbc13)
  33.     renderPDF.draw(d, c, 15, 465)

  34.     # draw a QR code
  35.     qr_code = qr.QrCodeWidget('http://blog.csdn.net/webzhuce')
  36.     bounds = qr_code.getBounds()
  37.     width = bounds[2] - bounds[0]
  38.     height = bounds[3] - bounds[1]
  39.     d = Drawing(45, 45, transform=[45./width,0,0,45./height,0,0])
  40.     d.add(qr_code)
  41.     renderPDF.draw(d, c, 15, 405)


  42. #定义要生成的pdf的名称
  43. c=canvas.Canvas("reportlab.pdf")
  44. #调用函数生成条形码和二维码,并将canvas对象作为参数传递
  45. createBarCodes(c)
  46. #showPage函数:保存当前页的canvas
  47. c.showPage()
  48. #save函数:保存文件并关闭canvas
  49. c.save()
复制代码


转载自 CSDN ForTheDreamSMS
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-15 15:21:30 | 显示全部楼层
qq1151985918 发表于 2020-12-15 09:21
转载自 CSDN ForTheDreamSMS

你发的这个是用python直接生成条码对吧?很感谢但不是我想要的,这边是已经用bartender和codesoft做好了相关的模版,目前想用python开发一个GUI界面,然后调用对应的条码模版直接打印。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-16 09:41:52 | 显示全部楼层

回帖奖励 +10 鱼币

这是做什么用的呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-16 13:03:15 | 显示全部楼层
bhcqzf 发表于 2020-12-16 09:41
这是做什么用的呀

利用python来打印条码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-22 14:44:28 | 显示全部楼层
难道没有人知道么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-14 14:20:25 | 显示全部楼层
请问后续有搞好吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-18 15:48:35 | 显示全部楼层
tzjzsblj 发表于 2021-7-14 14:20
请问后续有搞好吗

已经 好了,我贴了后续的解决方案,原方案还是没有解决的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-13 13:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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