My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

Barcode Writer in Pure PostScript

Barcode Writer in Pure Postscript implements the printing of all major barcode formats entirely within PostScript, so that the process of converting the input string into the printed output is performed by the printer itself. This avoids the need to re-implement the barcode generation process whenever your language needs change.

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

0 0 moveto (978-1-86074-271) (includetext) /isbn /uk.co.terryburton.bwipp findresource exec

Features

The project supports all major barcode formats including:

EAN-13, EAN-8, UPC-A, UPC-E, ISBN, ISMN, ISSN, EAN-5 & EAN-2 (EAN/UPC add-ons), GS1 DataBar Omnidirectional, GS1 DataBar Stacked, GS1 DataBar Stacked Omnidirectional, GS1 DataBar Truncated, GS1 DataBar Limited, GS1 DataBar Expanded, GS1 DataBar Expanded Stacked, Code 128, GS1-128 (EAN-128), SSCC-18 (EAN-18, NVE), EAN-14 (DUN-14), GS1 Composite (EAN/UPC, GS1 DataBar and GS1-128), Code 39, Code 39 Extended, Code 93, Code 93 Extended, Code 32 (Italian Pharmacode), Pharmazentralnummer (PZN), Interleaved 2 of 5, ITF-14 (UPC SCS), Code 2 of 5 (Industrial, IATA, Matrix, Datalogic & COOP), Code 11 (USD-8), Codablock F, Code 16K, Code 49, Code One, BC412, Codabar (NW-7), Pharmacode (including two-track), MSI modified Plessey, Plessey UK, Telepen (including numeric), Channel Code, PosiCode, PDF417, MicroPDF417, Data Matrix, GS1 DataMatrix, QR Code (including Micro QR Code), MaxiCode, Aztec Code, USPS Intelligent Mail, USPS POSTNET, USPS PLANET, Royal Mail (RM4SCC), KIX (Dutch Postal), JapanPost, AusPost, Deutsche Post Identcode, Deutsche Post Leitcode, USPS FIM symbols, DAFT, Raw, Flattermarken, HIBC barcodes (Code 39, Code 128, Data Matrix, PDF417, MicroPDF417, QR Code, Codablock F)

If it doesn't contain the format or feature you are looking for then take a look at the outstanding features list, make a request via the issue tracker and check back soon.

The resource is modular so you need only include the definitions for the symbologies that you 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 hardware, operating system and application 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

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.

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

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

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

Download

  • Current release - tarball or zipfile or browse (view changelog)
  • Monolithic file of named resources - barcode.ps (For trivial inclusion into a PostScript document template.)
  • Seperate file per named resource - tarball or browse (For use with Adobe Distiller, GhostScript, a printer hard disk or a document manager.)

Stay up-to-date by subscribing to release announcements via Freecode (feed) or follow the code commit feed.

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:

  • Web-based generator that is useful for feature testing or generating a small number of barcodes.
  • Scribus is a desktop publishing (DTP) application for Linux and Windows users.
  • KBarcode (including KBarcode4-Light) is a WYSIWYG barcode and label printing application for Linux.
  • SAP support is provided in the form of an output device type accessible from ABAP, SAPscript or Smart Forms.
  • pst-barcode is part of the PSTricks package for the LaTeX document publishing system.
  • Ruby Ghostscript Barcode is part of the RGhost library for PDF document generation.
  • Elaphe is a Python binding that renders barcodes using the Python Imaging Library.
  • PostScript::Barcode is a Perl binding that renders barcodes using GSAPI.

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:

  • Objectif Lune provides support to this project through their generous donation of 2D barcode scanning equipment.
  • Worldlabel.com is proud to donate funds and to promote this project.

Resources

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

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

Powered by Google Project Hosting