#
# Copyright (C) 2010 Geoffrey Mosini
#
# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA.
#
"""
Generate barcodes for Code25-interleaved 2 of 5, for Inkscape.
"""
# 1 means thick, 0 means thin
ENCODE = {
'0': '00110',
'1': '10001',
'2': '01001',
'3': '11000',
'4': '00101',
'5': '10100',
'6': '01100',
'7': '00011',
'8': '10010',
'9': '01010',
}
"""Convert a text into string binary of black and white markers"""
# Start and stop code are already encoded into white (0) and black(1) bars
# Number of figures to encode must be even,
# a 0 is added to the left in case it's odd.
# Number is encoded by pairs of 2 figures
encoded = '1010'
# First in the pair is encoded in black (1), second in white (0)
for j in range(5):
if black[j] == '1':
encoded += '11'
else:
encoded += '1'
if white[j] == '1':
encoded += '00'
else:
encoded += '0'
return encoded + '1101'