使用python创建标准条码。不需要外部模块(包括可选的PIL支持)。

pyBarcode的Python项目详细描述


啊![示例ean13.png](https://bitbucket.org/repo/rXdyBE/images/1631728592-example_ean13.png

pybarcode

这个库提供了一种简单的方法,只使用 python标准库。创建为SVG对象的条形码。

https://bitbucket.org/whitie/python-barcode/issues/

报告错误

要求

  • Setuptools/distribute for installation (new in version 0.7beta4)
  • Python 2.6 or above (including Python 3.x)
  • On Python 2.6, 3.0, 3.1: argparse (for the commandline script)
  • Program to open SVG objects (your browser should do it)
  • Optional: PIL to render barcodes as images (PNG, JPG, …)

安装

确保安装了setuptools/distribute。

将下载的文件cd解压到pybarcode目录并运行 python setup.py安装。或者复制条形码目录 你的Python。

最好的方法是使用pip:pip install pybarcode

提供条形码

EAN-8、EAN-13、EAN-14、UPC-A、JAN、ISBN-10、ISBN-13、ISSN、代码39、代码128、PZN

待办事项

  • Add documentation
  • Add more codes
  • Improve Python 3 support
  • Add simple GUI

使用量

交互式:

>>> import barcode
>>> barcode.PROVIDED_BARCODES
[u'code39', u'code128', u'ean', u'ean13', u'ean8', u'gs1', u'gtin',
 u'isbn', u'isbn10', u'isbn13', u'issn', u'jan', u'pzn', u'upc', u'upca']
>>> EAN = barcode.get_barcode_class('ean13')
>>> EAN
<class 'barcode.ean.EuropeanArticleNumber13'>
>>> ean = EAN(u'5901234123457')
>>> ean
<barcode.ean.EuropeanArticleNumber13 object at 0x00BE98F0>
>>> fullname = ean.save('ean13_barcode')
>>> fullname
u'ean13_barcode.svg'
# Example with PNG
>>> from barcode.writer import ImageWriter
>>> ean = EAN(u'5901234123457', writer=ImageWriter())
>>> fullname = ean.save('ean13_barcode')
u'ean13_barcode.png'
# New in v0.4.2
>>> from StringIO import StringIO
>>> fp = StringIO()
>>> ean.write(fp)
# or
>>> f = open('/my/new/file', 'wb')
>>> ean.write(f) # PIL (ImageWriter) produces RAW format here
# New in v0.5.0
>>> from barcode import generate
>>> name = generate('EAN13', u'5901234123457', output='barcode_svg')
>>> name
u'barcode_svg.svg'
# with file like object
>>> fp = StringIO()
>>> generate('EAN13', u'5901234123457', writer=ImageWriter(), output=fp)
>>>

现在在图形应用程序中或在浏览器中打开EAN13_u条码。[SVG PNG] 并查看创建的条形码。就这样。

命令行:

$ pybarcode{2,3} create "My Text" outfile
New barcode saved as outfile.svg.
$ pybarcode{2,3} create -t png "My Text" outfile
New barcode saved as outfile.png.

Try `pybarcode -h` for help.

变更日志

v0.8:Code 128 added. Data for charsets and bars moved to subpackage barcode.charsets. Merged in some improvements.
v0.7:Fixed some issues with fontsize and fontalignment. Added Python 3 support. It’s not well tested yet, but the tests run without errors with Python 3.3. Commandline script added.
v0.6:Changed save and write methods to take the options as a dict not as keyword arguments (fix this in your code). Added option to left align the text under the barcode. Fixed bug with EAN13 generation.
v0.5.0:Added new generate function to do all generation in one step. Moved writer from a subpackage to a module (this breaks some existing code). UPC is now rendered as real UPC, not as EAN13 with the leading “0”.
v0.4.3:Fixed bug in new write method (related to PIL) and updated docs.
v0.4.2:Added write method to support file like objects as target.
v0.4.1:Bugfix release. Removed redundancy in input validation. EAN8 was broken. It now works as expected.
v0.4:Removed **options from writers __init__ method. These options never had effect. They were always overwritten by default_options. New config option available: text_distance (the distance between barcode and text).
v0.4b2:Basic documentation included. The barcode object now has a new attribute called raw to have the rendered output without saving to disk.
v0.4b1:Support for rendering barcodes as images is implemented. PIL is required to use it.
v0.3:Compression for SVG output now works.
v0.3b1:Writer API has changed for simple adding new (own) writers. SVG output is now generated with xml.dom module instead of stringformatting (makes it more robust).
v0.2.1:API of render changed. Now render takes keyword arguments instead of a dict.
v0.2:More tests added.
v0.1:First release.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从SharedReferences获取Parcelable对象会产生巨大的内部ArrayList   FileInputStream和FileOutputStream Java   插入UUID时java十六进制数无效   Java线程的多线程问题,使用Runnable或Thread   java简化了一些消息;使用Xdiags:verbose重新编译以获得完整输出?   从txt文件读取的java无法正常工作   java如何从swiprolog转换到tuprolog   spring状态机并行实例中子状态的java异步执行   Java,将字符串数组设置为双数组   java admob横幅位置/通知栏   java ZXing结果。getRawBytes(),具体是什么?   java动态更改选项卡UIID在codenameone中无法正常工作   Java中的缓冲区Google Protobufs:如何获取消息。字段描述符的生成器?   java如何使JFrame登录表单工作?   使用扫描器的Java构造函数的继承   java可以在JDBCIO中执行多个insert查询。使用apache beam管道在单CloudSQL连接中编写函数?   java正在尝试创建regexp   java Tomcat、JPA、Eclipse名称不在此上下文中绑定   java可能与proguard有关吗?查询数据存储时出现神秘的“NullPonterException”,其中包含“缺少”类