Шрифт libre barcode128 выглядит как копия исходного кода семейства шрифтов штрих-кода с открытым исходным кодом.Таким образом, коды символов могут совпадать.
Оптимизированные 128 кодов (которые переключаются между Code128B и 128C для обеспечения более коротких штрих-кодов, если во входной строке используются последовательные цифры) не будут очень удобочитаемыми, поэтому их использование сшрифт, который содержит читаемые человеком символы, не даст больших результатов, потому что кодировка Code128C (для чисел) будет искажать последовательные числа.
Я нашел этот проект librebarcode на github , где кто-то использовал большой массив 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 , если вы хотите попробовать.