librebarcode128字体似乎是ID 系列条形码字体的开源副本。所以字符代码可能匹配。
优化的 128 代码(在 Code128B 和 128C 之间切换以允许在输入字符串中使用连续数字时使用更短的条码)将不是很可读,因此将它们与包含人类可读字符的字体一起使用不会产生很好的结果,因为Code128C 编码(对于数字)将破坏连续的数字。
我在 github 上找到了这个 librebarcode 项目,其中有人使用了一个大的 javascript 数组,其中包含字体的字符映射以及计算校验和时应使用的权重。
连同示例代码和代码 128 的维基百科页面,您应该能够在 Acrobat 中获得一些工作。
这是数组:
var data = [
// the unicode chars are from:
// www.idautomation.com/barcode-fonts/code.128/user-manual.html
// http://www.jtbarton.com/Barcodes/Code128.aspx
// checksum value, pattern, canonical id/name (based on Code Set B)
// (name of the glyph in the font?), [unicode chars], textbelow_flag_or_charcodes
[ 0, ' ', ' ', '00', 'Â']
, [ 1, '!', '!', '01', '!']
, [ 2, '"', '"', '02', '"']
, [ 3, '#', '#', '03', '#']
, [ 4, '$', '$', '04', '$']
, [ 5, '%', '%', '05', '%']
, [ 6, '&', '&', '06', '&']
, [ 7, "'", "'", "07", "'"]
, [ 8, '(', '(', '08', '(']
, [ 9, ')', ')', '09', ')']
, [ 10, '*', '*', '10', '*']
, [ 11, '+', '+', '11', '+']
, [ 12, ',', ',', '12', ',']
, [ 13, '-', '-', '13', '-']
, [ 14, '.', '.', '14', '.']
, [ 15, '/', '/', '15', '/']
, [ 16, '0', '0', '16', '0']
, [ 17, '1', '1', '17', '1']
, [ 18, '2', '2', '18', '2']
, [ 19, '3', '3', '19', '3']
, [ 20, '4', '4', '20', '4']
, [ 21, '5', '5', '21', '5']
, [ 22, '6', '6', '22', '6']
, [ 23, '7', '7', '23', '7']
, [ 24, '8', '8', '24', '8']
, [ 25, '9', '9', '25', '9']
, [ 26, ':', ':', '26', ':']
, [ 27, ';', ';', '27', ';']
, [ 28, '<', '<', '28', '<']
, [ 29, '=', '=', '29', '=']
, [ 30, '>', '>', '30', '>']
, [ 31, '?', '?', '31', '?']
, [ 32, '@', '@', '32', '@']
, [ 33, 'A', 'A', '33', 'A']
, [ 34, 'B', 'B', '34', 'B']
, [ 35, 'C', 'C', '35', 'C']
, [ 36, 'D', 'D', '36', 'D']
, [ 37, 'E', 'E', '37', 'E']
, [ 38, 'F', 'F', '38', 'F']
, [ 39, 'G', 'G', '39', 'G']
, [ 40, 'H', 'H', '40', 'H']
, [ 41, 'I', 'I', '41', 'I']
, [ 42, 'J', 'J', '42', 'J']
, [ 43, 'K', 'K', '43', 'K']
, [ 44, 'L', 'L', '44', 'L']
, [ 45, 'M', 'M', '45', 'M']
, [ 46, 'N', 'N', '46', 'N']
, [ 47, 'O', 'O', '47', 'O']
, [ 48, 'P', 'P', '48', 'P']
, [ 49, 'Q', 'Q', '49', 'Q']
, [ 50, 'R', 'R', '50', 'R']
, [ 51, 'S', 'S', '51', 'S']
, [ 52, 'T', 'T', '52', 'T']
, [ 53, 'U', 'U', '53', 'U']
, [ 54, 'V', 'V', '54', 'V']
, [ 55, 'W', 'W', '55', 'W']
, [ 56, 'X', 'X', '56', 'X']
, [ 57, 'Y', 'Y', '57', 'Y']
, [ 58, 'Z', 'Z', '58', 'Z']
, [ 59, '[', '[', '59', '[']
, [ 60, '\\', '\\', '60', '\\']
, [ 61, ']', ']', '61', ']']
, [ 62, '^', '^', '62', '^']
, [ 63, '_', '_', '63', '_']
, [ 64, 'NUL', '`', '64', '`']
, [ 65, 'SOH', 'a', '65', 'a']
, [ 66, 'STX', 'b', '66', 'b']
, [ 67, 'ETX', 'c', '67', 'c']
, [ 68, 'EOT', 'd', '68', 'd']
, [ 69, 'ENQ', 'e', '69', 'e']
, [ 70, 'ACK', 'f', '70', 'f']
, [ 71, 'BEL', 'g', '71', 'g']
, [ 72, 'BS', 'h', '72', 'h']
, [ 73, 'HT', 'i', '73', 'i']
, [ 74, 'LF', 'j', '74', 'j']
, [ 75, 'VT', 'k', '75', 'k']
, [ 76, 'FF', 'l', '76', 'l']
, [ 77, 'CR', 'm', '77', 'm']
, [ 78, 'SO', 'n', '78', 'n']
, [ 79, 'SI', 'o', '79', 'o']
, [ 80, 'DLE', 'p', '80', 'p']
, [ 81, 'DC1', 'q', '81', 'q']
, [ 82, 'DC2', 'r', '82', 'r']
, [ 83, 'DC3', 's', '83', 's']
, [ 84, 'DC4', 't', '84', 't']
, [ 85, 'NAK', 'u', '85', 'u']
, [ 86, 'SYN', 'v', '86', 'v']
, [ 87, 'ETB', 'w', '87', 'w']
, [ 88, 'CAN', 'x', '88', 'x']
, [ 89, 'EM', 'y', '89', 'y']
, [ 90, 'SUB', 'z', '90', 'z']
, [ 91, 'ESC', '{', '91', '{']
, [ 92, 'FS', '|', '92', '|']
, [ 93, 'GS', '}', '93', '}']
, [ 94, 'RS', '~', '94', '~']
, [ 95, 'US', 'DEL', '95 ', 'Ã']
, [ 96, 'FNC 3', 'FNC 3', '96', 'Ä']
, [ 97, 'FNC 2', 'FNC 2', '97', 'Å']
, [ 98, 'Shift B', 'Shift A', '98', 'Æ']
, [ 99, 'Code C', 'Code C', '99', 'Ç']
, [ 100, 'Code B', 'FNC 4', 'Code B', 'È']
, [ 101, 'FNC 4', 'Code A', 'Code A', 'É']
, [ 102, 'FNC 1', 'FNC 1', 'FNC 1', 'Ê']
, [ 103, 'Start Code A', 'Start Code A', 'Start Code A', 'Ë']
, [ 104, 'Start Code B', 'Start Code B', 'Start Code B', 'Ì']
, [ 105, 'Start Code C', 'Start Code C', 'Start Code C', 'Í']
, [ 206, 'Stop', 'Stop', 'Stop', 'Î']
]
;
如果你想尝试,我自己的半工作实验在 GitHub 上。