- Generate barcode in Python using python-barcode
- Install python-barcode package
- Generate Code 39 barcode image in Python
- Generate Code 128 barcode image in Python
- Generate PZN barcode image in Python
- Generate EAN-13 barcode image in Python
- Generate EAN-8 barcode image in Python
- Generate JAN barcode image in Python
- Generate ISBN-13 barcode image in Python
- Generate ISBN-10 barcode image in Python
- Generate ISSN barcode image in Python
- Generate UPC-A barcode image in Python
- Generate barcode as SVG file in Python
- Getting started¶
- Usage¶
- Generating SVG files¶
- Generating image files¶
- Interactive generating an SVG¶
- Interactive generating a PNG¶
- Command Line usage¶
Generate barcode in Python using python-barcode
This Python tutorial to show you how to generate different type of barcode images in Python programs using the using python-barcode package. With different Python example program we learn to generate popular barcode types such as Code 39, Code 128, PZN, EAN-13, EAN-8, JAN, ISBN-13, ISBN-10, ISSN, UPC-A.
Table of contents
- Install python-barcode package
- Generate Code 39 barcode
- Generate Code 128 barcode
- Generate PZN barcode
- Generate EAN-13 barcode
- Generate EAN-8 barcode
- Generate JAN barcode
- Generate ISBN-13 barcode
- Generate ISBN-10 barcode
- Generate ISSN barcode
- Generate UPC-A barcode
- Generate barcode as SVG file
Install python-barcode package
Using the following command to install python-barcode package and its additional dependencies for barcode image generating.
pip install "python-barcode[images]"
Generate Code 39 barcode image in Python
The following Python program we generate the Code 39 barcode type image.
import barcode from barcode.writer import ImageWriter code = 'TORICODE' sample_barcode = barcode.get('code39', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode1') print('Generated Code 39 barcode image file name: ' + generated_filename)
Generated Code 39 barcode image file name: barcode1.png
Execute the program above it will generate the barcode image named barcode1.png as below.
Generate Code 128 barcode image in Python
The following program to show you how to generate Code 128 barcode in Python.
import barcode from barcode.writer import ImageWriter code = 'TORICODE' sample_barcode = barcode.get('code128', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode2') print('Generated Code 128 barcode image file name: ' + generated_filename)
Generated Code 128 barcode image file name: barcode2.png
Execute the program above it will generate the barcode image named barcode2.png as below.
Generate PZN barcode image in Python
The Python program below we generate Pharma-Zentral-Nummer (PZN) barcode in Python
import barcode from barcode.writer import ImageWriter code = '1234562' sample_barcode = barcode.get('pzn', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode3') print('Generated PZN barcode image file name: ' + generated_filename)
Generated PZN barcode image file name: barcode3.png
Execute the program above it will generate the barcode image named barcode3.png as below.
Generate EAN-13 barcode image in Python
The following program to generate EAN-13 (International Article Number) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '9780201379624' sample_barcode = barcode.get('ean13', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode4') print('Generated EAN-13 barcode image file name: ' + generated_filename)
Generated EAN-13 barcode image file name: barcode4.png
Execute the program above it will generate the barcode image named barcode4.png as below.
Generate EAN-8 barcode image in Python
The following program to generate EAN-8 (International Article Number) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '96385074' sample_barcode = barcode.get('ean8', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode5') print('Generated EAN-8 barcode image file name: ' + generated_filename)
Generated EAN-8 barcode image file name: barcode5.png
Execute the program above it will generate the barcode image named barcode5.png as below.
Generate JAN barcode image in Python
The following Python program we generate JAN (Japanese Article Numbering) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '4901234567894' sample_barcode = barcode.get('jan', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode6') print('Generated JAN barcode image file name: ' + generated_filename)
Generated JAN barcode image file name: barcode6.png
Execute the program above it will generate the barcode image named barcode6.png as below.
Generate ISBN-13 barcode image in Python
The program below to generate ISBN-13 (International Standard Book Number) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '9781234567897' sample_barcode = barcode.get('isbn13', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode7') print('Generated ISBN-13 barcode image file name: ' + generated_filename)
Generated ISBN-13 barcode image file name: barcode7.png
Execute the program above it will generate the barcode image named barcode7.png as below.
Generate ISBN-10 barcode image in Python
The program below to generate ISBN-10 (International Standard Book Number) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '1234567' sample_barcode = barcode.get('isbn10', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode8') print('Generated ISBN-10 barcode image file name: ' + generated_filename)
Generated ISBN-10 barcode image file name: barcode8.png
Execute the program above it will generate the barcode image named barcode8.png as below.
Generate ISSN barcode image in Python
The Python program below to generate ISSN (International Standard Serial Number) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '20492' sample_barcode = barcode.get('issn', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode9') print('Generated ISSN barcode image file name: ' + generated_filename)
Generated ISSN barcode image file name: barcode9.png
Execute the program above it will generate the barcode image named barcode9.png as below.
Generate UPC-A barcode image in Python
The Python program below to generate UPC-A(Universal Product Code) barcode in Python.
import barcode from barcode.writer import ImageWriter code = '725272730706' sample_barcode = barcode.get('upca', code, writer=ImageWriter()) generated_filename = sample_barcode.save('barcode10') print('Generated UPC-A barcode image file name: ' + generated_filename)
Generated UPC-A barcode image file name: barcode10.png
Execute the program above it will generate the barcode image named barcode10.png as below.
Generate barcode as SVG file in Python
We also can generate barcode as SVG file using the python-barcode package as following Python program.
import barcode code = '725272730706' sample_barcode = barcode.get('upca', code) generated_filename = sample_barcode.save('barcode11') print('Generated UPC-A barcode SVG file name: ' + generated_filename)
Generated UPC-A barcode SVG file name: barcode11.svg
Execute the program above it will generate the barcode as SVG file named barcode11.svg.
Getting started¶
If you’ll be exporting to images (eg: not just SVG), you’ll need the “images” extras:
pip install "python-barcode[images]" # Note: keep the quotes, most shells don't play nice with square brackets.
Usage¶
Let’s start off with some code samples.
Keep in mind that checksums are calculated automatically – you don’t need to do the math before passing the value for the barcode.
In some systems (Code 39) the checksum is optional. For these, you can provide the add_checksum=False keyword argument.
Generating SVG files¶
from io import BytesIO from barcode import EAN13 from barcode.writer import SVGWriter # Write to a file-like object: rv = BytesIO() EAN13("100000902922", writer=SVGWriter()).write(rv) # Or to an actual file: with open("somefile.svg", "wb") as f: EAN13(str(100000011111), writer=SVGWriter()).write(f)
Generating image files¶
Keep in mind that SVG files are vectorized, so they will scale a lot better than images. It’s recommended to use images only if your medium or target usages does not support SVG.
from io import BytesIO from barcode import EAN13 from barcode.writer import ImageWriter # Write to a file-like object: rv = BytesIO() EAN13(str(100000902922), writer=ImageWriter()).write(rv) # Or to an actual file: with open("somefile.jpeg", "wb") as f: EAN13("100000011111", writer=ImageWriter()).write(f)
Interactive generating an SVG¶
Using an interactive python interpreter to generate SVG files.
>>> import barcode >>> barcode.PROVIDED_BARCODES ['code128', 'code39', 'ean', 'ean13', 'ean14', 'ean8', 'gs1', 'gs1_128', 'gtin', 'isbn', 'isbn10', 'isbn13', 'issn', 'itf', 'jan', 'pzn', 'upc', 'upca'] >>> EAN = barcode.get_barcode_class('ean13') >>> EAN >>> my_ean = EAN('5901234123457') >>> my_ean >>> fullname = my_ean.save('ean13_barcode') >>> fullname 'ean13_barcode.svg' >>>
You can check the generated files (e.g.: ean13_barcode.svg ) by opening them with any graphical app (e.g.: Firefox).
Interactive generating a PNG¶
Using an interactive python interpreter to generate PNG files.
>>> import barcode >>> from barcode.writer import ImageWriter >>> EAN = barcode.get_barcode_class('ean13') >>> my_ean = EAN('5901234123457', writer=ImageWriter()) >>> fullname = my_ean.save('ean13_barcode') >>> fullname 'ean13_barcode.png' >>> from io import BytesIO >>> fp = BytesIO() >>> my_ean.write(fp) >>> my_ean >>> with open("path/to/file", "wb") as f: . my_ean.write(f) # Pillow (ImageWriter) produces RAW format here . >>> from barcode import generate >>> name = generate('EAN13', '5901234123457', output='barcode_svg') >>> name 'barcode_svg.svg' >>> fp = BytesIO() >>> generate('EAN13', '5901234123457', writer=ImageWriter(), output=fp) >>>
You can check the generated files (e.g.: ean13_barcode.png ) by opening them with any graphical app (e.g.: Firefox).
Command Line usage¶
This library also includes a cli app for quickly generating barcodes from the command line or from shell scripts:
$ # Save a barcode to outfile.svg: $ python-barcode create "123456789000" outfile -b ean --text "text to appear under barcode" $ # Generate a PNG (Require Pillow): $ python-barcode create -t png "My Text" outfile $ python-barcode --help usage: python-barcode [-h] [-v] . Create standard barcodes via cli. optional arguments: -h, --help show this help message and exit -v, --version show program's version number and exit Actions: create Create a barcode with the given options. list List available image and code types. Image output enabled, use --type option to give image format (png, jpeg, . ). $