Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (
Help us improve Python packaging - Donate today!

A simple module for creating barcodes.

Project Description

PubCode is a library that encodes barcodes and allows easy access to the data required to render the barcode. It can optionally use PIL to render the barcode or to provide a data URL containing a single pixel high PNG barcode which can be resized by a browser to a more usefull size.

Supported barcodes

  • Code128


>>> from pubcode import Code128
>>> barcode = Code128('Hello!', charset='B')

You can access the data required to render the barcode easily and intuitively.

>>> barcode.bars
>>> barcode.modules  # doctest: +ELLIPSIS
[0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, ...]

You can generate PIL.Image objects from barcodes.

>>> barcode.image()  # doctest: +ELLIPSIS
<PIL.Image.Image image mode=1 size=121x1 at ...>
>>> barcode.image(height=10, module_width=2)  # doctest: +ELLIPSIS
<PIL.Image.Image image mode=1 size=242x10 at ...>

You can also generate data URLs.

>>> barcode.data_url()  # doctest: +ELLIPSIS

You can also control the exact way in which the barcode is encoded, which allows you to control the size of the resulting barcode.

>>> barcode = Code128('12\x00x\x01', charset='CABA')
>>> barcode.symbols
['[Start Code C]', '12', '[Code A]', '\x00', '[Shift B]', 'x', '\x01', '\x15', '[Stop]']
Release History

Release History

This version
History Node


Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting