Skip to content


Subversion checkout URL

You can clone with
Download ZIP

Quick Guide

Terry Burton edited this page · 26 revisions

Quick Guide

Using Barcode Writer in Pure PostScript requires only some basic PostScript knowledge that is easily learned by experimentation. If you do not want to get your hands messy playing with PostScript then you can use one of the project's frontends which hide many of the details.

The best way to get familiar with using the code is to download the monolithic flavour of the latest release and open the file with a text editor.

This file consists of the following sections:

  • A PostScript indicator, beginning %!PS.
  • Comments, with lines beginning %.
  • A definition for the category of named resources.
  • A small set of named resource definitions for the renderers which generate the graphical output for the symbols delimited by % --BEGIN RENDERER ...-- and % --END RENDERER ...--.
  • A large set of named resource definitions for the encoders which convert the input into a structured symbol definition delimited by % --BEGIN ENCODER ...-- and % --END ENCODER ...--.
  • A set of sample barcode invocations delimited by % --BEGIN SAMPLE-- and % --END SAMPLE--.

This is one example from the samples:

150 750 moveto (0123456789) (includecheck includetext)
/interleaved2of5 / findresource exec

The meaning of each component of the invocation is as follows:

150 750 moveto             % position of the symbol on the canvas
(0123456789)               % data field: information to encode in the barcode
(includetext height=0.75)  % options field: symbol properties
/interleaved2of5           % the type of barcode
/ findresource exec  % plot symbol on the canvas

The acceptable contents of the data field varies between symbologies as defined in the symbology reference.

The acceptable contents of the options field is for the most part common across all of the symbologies as defined in the options reference, however encoder-specific options do exist in some cases and the default values of permitted options varies across symbologies.

Using the references mentioned above you should now be able to experiment by carefully amending the sample section of the file.

You will want to view the result of your changes regularly (since bugs may be hard to track down once introduced) either by using a software PostScript interpreter alongside a viewer or by sending the file to a PostScript enabled printer. Alternatively you can use the web-based generator to see the effect of the options on the output.

  • GhostScript is an open source PostScript interpreter that is available for both Windows and Linux.
  • gsview is a viewer for PostScript files on Windows which requires that GhostScript be installed.
  • gv is a viewer for PostScript files on Linux, which requires that GhostScript be installed.
  • The Preview application on Mac OS X is able to view PostScript files.
  • Adobe Distiller is a commercial PostScript interpreter that is available for Windows and MacOS.
  • Most reasonable laser printers have native support for PostScript.
  • CUPS, the Common Unix Printing System, adds PostScript support for non-PostScript printers by filtering PostScript documents through GhostScript.

To directly print a file to an installed, PostScript-enabled printer in Windows use the following command:

PRINT [/D:device]

Alternatively for a printer attached directly to the first parallel port:


To directly print a file to a PostScript-enabled printer in Linux use the following command:

lpr -Pdevice -o raw

Once you are comfortable with amending the file you may want to simplify the file by removing definitions for barcode formats that you do not require bearing in mind the following points:

  • You need only include the named resource definitions for the symbologies of the symbols that you are actually intending to create and must include any dependencies as specified in the resource file by the % --REQUIRES ... metadata. Examining the contents of the PS files created by the web-based generator at illustrates this point. If you have downloaded the source distribution of BWIPP you can create a standalone file containing only the resources required for a particular symbology by running something like make build/standalone/ or make build/standalone_package/
  • If you intend to create an application whose purpose is to generate documents containing a variety of barcodes it is suggested that you start with the monolithic file and use the % --BEGIN/END ENCODER ...-- and % --BEGIN/END RENDERER ...-- delimiters to extract the relevant named resource definitions into your documents. This will allow you to simply update your project to the latest version of the BWIPP resource by just replacing your with the latest version. More information is available in the Developer Notes.
Something went wrong with that request. Please try again.