3 bookland.py - generate EAN-13 bar codes, including ISBN and ISMN
5 Copyright (C) 1999-2007 Judah Milgram
7 This is free software and comes with NO WARRANTY. See file COPYING for
10 Version 1.1 is a major re-write. New features include:
11 - automatic recognition and handling of ISBN-10, ISBN-13, ISMN, and EAN-13.
12 - wildcard digits for any digit in product code (not limited to check digit)
13 - color may be input as cmyk or rgb. Always generates cmyk for EPS output.
15 The program is split into two files:
16 - productcode.py contains classes for the product codes themselves
17 - bookland.py has the symbol classes, generates the Postscript output, and
18 contains the actual application.
20 The program has NOT been tested. You're free to use it but make sure
21 you can verify the bar codes it produces before you go to press with them.
23 Bug reports to bookland-bugs@cgpp.com
27 bookland [-h|--help] [-V|--version] [-f|--font=<font>] [-q]
28 [-s|--height=<height scale>] [-r --reduction=<points>]
29 [-o|outfile=<filename>] [-n|--noquietzone] [-a|--autofile]
30 [--cmyk=<c,m,y,k>] [--rgb=<r,g,b>] productCode [priceCode]
32 Generates an EPS file with the bar code symbol to standard output
33 (default) or to a named file.
37 -h|--help - print the usage message and exit
41 -V|--version - print version info and exit
43 -f|--font - font to use for human-readable numbers
45 -s|--height - bar height scale factor on <0,1>
47 -r|--reduction - bar width reduction in points. Don't use this
48 unless you know what you're doing.
50 -o|outfile - write output to named file. Otherwise sends output to stdout.
51 If filename is "auto", generates file name from the product
54 -n|--noquietzone - suppress the ">" character to the right of the UPC-5
55 price code. Still sets bounding box for quiet zone.
57 -a|--autofile - synonym for "-o auto"
59 --cmyk - cmyk color, comma separated, no spaces. Example:
62 --rgb - rgb color, comman separate, no spaces. Example:
64 Note: color will be converted to cmyk and given as such in output file.
66 productCode - The product code, with all hyphenation. A single
67 asterisk may be used as a wildcard if the check digit
68 (or any other digit) is unknown. The program
69 automatically recognizes the product code and handles
70 accordingly. Examples:
72 0-9669553-0-7 - interpreted as an ISBN-10. Converts this
73 to an ISBN-13 and generates the EAN-13 bar code symbol with
74 "ISBN 978-0-9669553-0-9" above the bars.
76 0-9669553-0-* - same as above, but check digit
77 calculated automatically.
79 0-966*553-0-7 - same as above, but fifth digit
80 calculated automatically.
82 978-0-9669553-0-9 - interpreted as an ISBN-13. Generates the
83 bar code symbol with "ISBN 978-0-9669553-0-9" above the bars.
85 978-9-8668553-0-* - same as above but check digit
86 calculated automatically.
88 979-1-2345667-9-* - interpreted as an ISBN-13. Check
89 digit calculated automatically. Generates bar code
90 symbol with "ISBN 979-1-2345667-9-0" above the bars.
92 M-123456-78-* - interpreted as ISMN. Check digit
93 calculated automatically. Generates bar code symbol with
94 "ISMN M-123456-78-5" above the bars.
96 123456789012* - interpreted as an EAN-13. Check digit
97 calculated automatically. Bar code symbol generated with
98 no label above bars. The check digit is calculated as
101 priceCode - The five digit UPC-5 price code. If not given, then no
102 price code bar code symbol drawn. If given with an ISMN
103 or EAN-13, generates an error.
105 NOTE ON WILDCARD DIGITS:
107 Although the program can compute any single digit represented by an
108 asterisk, it is still preferable to enter all the digits if
109 possible. This allows the checksum to be verified, providing slightly
110 more protection against transcription errors. Remember that if you do
111 get a checksum error, it's not necessarily the check digit that's