index 23c0d6a46a9633f92e82f1961378d8660844e3bd..8f1e77826dc3abe5a539365f7b2fe7be824f9ee6 100644 (file)
-#!/usr/bin/env python
-'''
-Copyright (C) 2007 Martin Owens
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-'''
+#
+# Copyright (C) 2007 Martin Owens
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+"""
+Python barcode renderer for Code39 Extended barcodes. Designed for Inkscape.
+"""
import Code39
i = 0
for char in encode:
- map[char] = i
- i = i + 1
+ map[char] = i
+ i = i + 1
# Extended encoding maps for full ASCII Code93
def getMap(array):
- result = {}
- y = 0
- for x in array:
- result[chr(x)] = encode[y]
- y = y + 1
+ result = {}
+ y = 0
+ for x in array:
+ result[chr(x)] = encode[y]
+ y = y + 1
- return result;
+ return result;
# MapA is eclectic, but B, C, D are all ASCII ranges
mapA = getMap([27,28,29,30,31,59,60,61,62,63,91,92,93,94,95,123,124,125,126,127,0,64,96,127,127,127]) # %
mapD = getMap(range(97, 122)) # +
class Object(Code39.Object):
- def encode(self, text):
- # We are only going to extend the Code39 barcodes
- result = ''
- for char in text:
- if mapA.has_key(char):
- char = '%' + mapA[char]
- elif mapB.has_key(char):
- char = '$' + mapB[char]
- elif mapC.has_key(char):
- char = '/' + mapC[char]
- elif mapD.has_key(char):
- char = '+' + mapD[char]
- result = result + char
-
- return Code39.Object.encode(self, result);
+ def encode(self, text):
+ # We are only going to extend the Code39 barcodes
+ result = ''
+ for char in text:
+ if mapA.has_key(char):
+ char = '%' + mapA[char]
+ elif mapB.has_key(char):
+ char = '$' + mapB[char]
+ elif mapC.has_key(char):
+ char = '/' + mapC[char]
+ elif mapD.has_key(char):
+ char = '+' + mapD[char]
+ result = result + char
+
+ return Code39.Object.encode(self, result);