Barcode Plugin Development

The barcode plugin does not currently provide all of the functionality that is available in the underlying library, Barcode Writer in Pure PostScript (BWIPP).

This page is intended to provide a collaboration point to coordinate improvements to the barcode plugin. Please extend, debate and discuss as appropriate.

Simple tasks

 * Switch from the monolithic flavour of BWIPP to the monolithic-package flavour which is functionally equivalent, more suited to distribution and DSC-conforming. Has been tested by replacing the existing barcode.ps and works as expected. Description of the available flavours here.
 * Hexify the data and options string input from Scribus to BWIPP to prevent PostScript injection by means of unescaped ")" or otherwise. See this discussion here.
 * Add an advanced checkbox that allows the user to directly provide the options string to the library for advanced users who follow the BWIPP reference.

Moderate tasks

 * Add support for the remaining barcode symbologies supported by BWIPP: ISMN, ISSN, GS1 DataBar barcodes, SSCC-18, EAN-14, GS1 Composite barcodes (EAN/UPC, GS1 DataBar and GS1-128), Data Matrix, GS1 DataMatrix, Aztec Code, PDF417, MicroPDF417, MaxiCode, Codablock F, Code 16K, Code 49, Code One, USPS PLANET, USPS Intelligent Mail, USPS FIM, Royal Mail, Royal TNT Post, Japan Post, Australia Post, Deutsche Post Identcode, Deutsche Post Leitcode, Pharmacode, Two-track Pharmacode, Code 32, Pharmazentralnummer, Code 39 Full ASCII, Code 93, Code 93 Full ASCII, Code 11, Codabar, Telepen, Channel Code, PosiCode, BC412, HIBC barcodes.
 * To make the presentation of the list of barcode formats manageable we should sort the list of barcodes in the same/similar way as the web-based generator here.

Harder tasks

 * Support new barcode formats automatically by scanning the barcode.ps metadata.
 * Extract descriptions, example data and example options from the barcode.ps metadata.

Collaborative tasks
The following require close coordination between Scribus and BWIPP.


 * Extend the barcode.ps metadata to describe the options that are available for each encoder so that any frontends such as the Scribus plugin can be light on compiled in data and enhanced by simply replacing the barcode.ps file.
 * Allow the location of the barcode.ps file to be configured by the user so that non-admins users can provide a local version and distributions that deprecate bundled libraries can provide a separately packaged version.