Barcode Writer in Pure PostScript

The Project

Barcode Writer in Pure Postscript is an award-winning open source barcode maker, as used by NASA, that facilitates the printing of all major barcode symbologies entirely within level 2 PostScript, ideal for variable data printing. The complete process of generating printed barcodes is performed entirely within the printer (or print system) so that it is no longer the responsibility of your application or a library. There is no need for any barcode fonts and the flexibility offered by direct PostScript means you can avoid re-implementing barcode generator code, or migrating to new libraries, whenever your project language needs change.

It makes including any barcode within a PostScript document as simple as inserting the following directive:

50 450 moveto (1-86074-271) (includetext) isbn barcode

Features

The project generates all of the major types of one-dimensional and two-dimensional barcodes supported by the vast majority of barcode scanners.

The current list of supported symbologies includes: EAN-13 (JAN-13), EAN-8 (JAN-8), UPC-A, UPC-E, EAN-5 & EAN-2 (EAN/UPC add-ons), ISBN-13 (including legacy ISBN-10), Code 128 (A, B & C, including EAN-128), Code 39 Extended, Code 93 Extended, Interleaved 2 of 5 (including ITF-14), GS1 DataBar (RSS-14, RSS Limited, RSS Expanded), Code 2 of 5, Code 11 (USD-8), Codabar, MSI, Plessey, PDF417, Data Matrix (ECC200), QR Code, MaxiCode, Aztec Code, OneCode, PostNet, Royal Mail (RM4SCC), KIX (Dutch Postal), AusPost (FCC types 11, 59 & 62), USPS FIM symbols.

This list is growing all the time. If it doesn't contain the format or feature you are looking for then make a request via the issue tracker and check back soon.

Automatic check digit calculation and customisable text can be enabled where appropriate, and the height and width of the generated symbol can be specified directly.

The resource is modular so you need only include the definitions for the symbologies that your will produce within your target document or labels, making the resource very lightweight.

Since this resource is written in PostScript and interpretted within the virtual machine of a printer it is compatible with virtually any operating system and hardware platform, for example Windows 95/XP on i386, Mac OS X/Linux on Power PC, Solaris on SPARC, and OpenVMS on Alpha AXP.

Sample Output

Web-based demo

For an online demonstration of the code's barcode generation capabilities take a look at this web-based front end.

Here is a sample image obtained by running the current version of the code through Ghostscript and ImageMagick.

Sample output from barcode_with_sample.ps

Use

The anticipated use of the code is to include the procedural definitions for the relevant encoder and renderer within the prologue of your own PostScript documents. You can use these to create and place your own barcodes as demonstrated in the samples within the quick guide and PostScript code. I usually use the PostScript code within a template file into which I substitute the barcode data string as a parameter using a language like Perl, Java or C++.

If you have a genuine PostScript printer then you can avoid the need to embed the code within each of your documents by installing the code within your printer's PostScript virtual machine which will give the device barcode production capabilities for all subsequent jobs until it is reset. This effectively converts a commodity laser printer into a very capable barcode printer all through the use of uploaded barcode software, no font chips required.

License

Anybody is free to use and develop this code as they see fit, under the terms of the permissive MIT/X-Consortium license, which requires that developers attribute any derivative code to this project in both the source code and documentation. As such I take no liability for its use or misuse.

Support

The support is provided via the project mailing list where you will normally find any questions or difficulties resolved quickly. Please do not email the author directly unless you are happy for your email to be reposted to the list.

Documentation

Wiki The most up to date reference source for users and developers is the project wiki.

Documentation is periodically released in PDF and PostScript format, but this is often out of date.

Download

PostScript resource - barcode.ps (view changelog)
Current release - tarball or zipfile or browse

Subversion repository - http://postscriptbarcode.googlecode.com/svn/

Front Ends

Many applications embed or plugin this PostScript resource thereby making available to their users a complete or partial implementation of the resource's features. The following is a list of known open source applications that make BWIPP barcodes available to their intended audience:

Scribus Scribus is a desktop publishing (DTP) application for Linux and Windows users.

KBarcode KBarcode is a WYSIWYG barcode and label printing application for Linux and KDE 3.

pst-barcode pst-barcode is part of the PSTricks package for the LaTeX document publishing system.

Web-based demo Web-based generator that is useful for feature testing or generating a small number of barcodes.

Donations

Use of this software is entirely free and will remain so. If you use the code and think that it is worthy of a donation, consider making a contribution to support the ongoing development of the project. Making a donation in no way constitutes a purchase payment for the software.

Supporters

The following have made significant and noteworthy contributions to the project:

Resources

Repository

There are a number of different sample scripts and front-ends that make use of the project in the script repository.

Stay up-to-date by subscribing to release announcements via Freshmeat.net.

For general discussion and help subscribe to the support and development mailing list.

Google Groups Subscribe to Mailing List
Email:
ATOM Feed Browse Archives




Looking for HTML
Renderer in Pure
PostScript?