Currently Fontpal does not support encoding SHIFT character. The corresponding function, Code128A filters out d since the lower case d does not belong to Code128 set A.
You can write you own routine to deal with SHIFT character. The SHIFT character is mapped to character 0xC3. And character d still mapps to d. (
http://www.morovia.com/font/code128.asp ... %20Mapping)
After that you need to calculate the checksum. The algorithm is outlined at
http://www.morovia.com/education/symbology/code128.asp. Take the example of your string ABCshiftdABC.
Value for A: 33, B: 34, C:35 SHIFT:98, d:68. Adding weight 1*103 +1*33+2*34+3*35+4*98+5*68+6*33+7*34+8*35=1757. Divide 1757 by 103 and get the remainder 6.
Reverse lookup the mapping table, value 6 character is mapped to &.
Adding start, stop and termination bar, we get
ÉABCÃdABC&ËÍ
Format the string above with a non-human readable font such as Code128M you get the right barcode. If you want to format the human readable, you can format the whole string with Code128AMA except character d with Code128BMA. If you do not like the extra text added by the checksum character &, you can format this character & with Code128M. The start/stop/termination/shift characters do not have human readable so you can format with any font, as long the height keeps the same.
[MRV CODE128AMA]ÉABCÃ[MRV CODE128BMA]d[MRV CODE128AMA]ABC&ËÍ
Edited by glitch on December 27 2004 at 10:01am