Помогите С Штрихкодированием

Тема в разделе "Lotus - Программирование", создана пользователем Dios1986, 1 ноя 2012.

  1. Dios1986

    Dios1986 Active Member

    Регистрация:
    20 апр 2010
    Сообщения:
    25
    Симпатии:
    0
    помогите с штрихкодированием посредством code128

    Собственно нашел такую штуку, думал что-то крутить на этой основе http://www.idautomation.com/barcode-fonts/...8/download.html
    В примере у них есть база, которая кодирует фразу, но какие я только шрифты типа 128-го не качал и не подсовывал, при распечатке сканер не распознает ничего!!! (сканер рабочий)

    Хелп ми плиз...

    Задача следующая, из базы распечатывать документы и этикетки с штрихкодом code128.
    С штрихкодированием до этого не работал, может у кого есть какие примеры/наработки!

    П.С. в поиск не отправляйте, т.к. уже все излазил, ничего толкового не нашел.
     

    Вложения:

  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
  3. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Походу, если можно, объясните пожалуйста, зачем нужно штрихкодирование? Поясню вопрос, - некоторые конторы всерьёз занимаются "защитой документов штрихкодированием" на стыке бумажный-электронный документооборот...
     
  4. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Штрих-код, как средство защиты документа? Хм...
     
  5. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Штрих код - как средство идентификации
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    Или как средство контроля выдачи бумажной версии, в совокупности с электронным пропуском дает еще когда и кому была выдана.
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    нуяб сделал хэш от текста дока и заштрихкодлировал...
    далее снимаем скан-копию и распознаем текст, если хэш не совпал - текст дока изменили
     
  8. Dios1986

    Dios1986 Active Member

    Регистрация:
    20 апр 2010
    Сообщения:
    25
    Симпатии:
    0
    у каждого документа есть внутренний номер, этот номер нужно кодировать в штрихкод и вместе с документом выводить на печать. Когда этот документ попадает в другой отдел или возвращается обратно, то достаточно поднести штрихкод к сканеру и он наберет код в представлении поиска. Полностью кодировать документ не надо :(


    за ссылочку спасибо, но проблема пока даже не в генерации (генерацией буду заниматься позже), а в распознавании....... к примеру, беру сгенерированный код, который должен быть якобы верен (хотя я так понимаю, что наверно при коде128 это первое на что нужно обратить внимание), назначаю ему шрифт code128, распечатываю, а сканер не реагирует, буру коробку, на которой в том же code128 зашифрован номер, читает зараза......
    Попробую другими методами генерировать код, может в этом вся проблема.....
     
  9. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Любой нормальный сканер + принтер нафигачит вам немеряное количество нужных штрихкодов на левых документах.
    Думал об этом, но штука очень ненадёжная, - нет гарантии, что распознание везде сработает одинаково, даже в пределах одной проги. А есть ещё версии... Также у разных подразделений, являющихся разными юрлицами, могут быть разные проги.

    Думал о том, чтобы сканировать и по пиксельному анализу генерировать штрихкод, но это также не катит:
    - добавляющиеся подписи на документе;
    - в процессе работы с документом муха на него может накакать и проверка не пройдёт;
    - время - бумага темнеет;
    - разные устройства сканирования - дают разную палитру;
    - ...

    Добавлено:
    Возможность подмены документа (высококачественный принтер) остаётся.

    Если бы аппарат наносил штрихкод с присутствием металлической микро-крошки, тогда ещё имело бы смысл.
     
  10. Dios1986

    Dios1986 Active Member

    Регистрация:
    20 апр 2010
    Сообщения:
    25
    Симпатии:
    0
    VladSh

    нужна всего-лиш идентификация, так глубоко я даже боюсь заглядывать
     
  11. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Вот вы накрутили...
    Зачем через штрих-код пытаться решить вопросы, для решения которых его применение неоправдано?
    Как можно с его помощью отслеживать "не вносились ли поправки в текст документа"? Думаете это надежнее цифровой подписи?
    Штрих-код может нести какую-то смысловую информацию о документе (дата, номер, корреспондент, отдел, номенклатура и т.п.) и должен позволять быстро получить доступ к электронной карточке. И этого, в принципе, достаточно.
     
  12. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Anatoly
    Я об этом же.
    Просто когда-то в 2007-м был на презентации софтлайновского документооборота, где такое и услышал. Тогда же и высказал свои возражения. Вопрос задал потому, может может я чего-то недопонимаю..
     
  13. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    закодировать хэш, можно и безумные цифры писать на листах... :)
    цифровая подпись к бумаге никак не относится ;)
    важен хэш а не способ визуализации, по шрих-коду - оператор просто найдет док с оригиналом и хэшом (вернее программа) или , если поделали код - не найдет
    по сути и получится подпись (вернее - проверка по хэшу), но с нек. ручным вмешательством :)
     
  14. Anatoly

    Anatoly Well-Known Member

    Регистрация:
    30 мар 2007
    Сообщения:
    204
    Симпатии:
    0
    Смысла подделывать сам штриф-код не вижу. Внести изменения в текст на бумаге?
    Как вы визуально определите соответствие текста нанесенному штрих-коду?
    Делать хеш, распознавая скан бумажного документа, - все нюансы не учтешь.
     
  15. Dios1986

    Dios1986 Active Member

    Регистрация:
    20 апр 2010
    Сообщения:
    25
    Симпатии:
    0
    Дело оказалось именно в самом кодировании, методом воспевания и курения трубки, а после танцев с бубном было выяснено что все шрифты отлично распознаются, только программа кодирует неверно.

    Теперь вопрос к бывалым.... Что лучше, генерация кода и подставление шрифта под него или генерация явой картинки ????

    Подскажите по кодированию...
    Про стоп, старт и контрольные символы вроде понятно, но какие именно должны быть старт и стоп символы не могу въехать, да и сами символы кода???
    Везде прекрасно описано как высчитать контрольную сумму, но как представить в текстовом виде весь код нигде не могу найти, онлайн кодировщики выдаю иероглифы, откуда они берутся понять не могу..... :(
     
  16. vincent_vega

    vincent_vega Lotus team
    Lotus team

    Регистрация:
    2 апр 2005
    Сообщения:
    165
    Симпатии:
    1
    Когда-то очень давно делал штрих-код вот так:
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>public static String barcode(String instring, int ver) {
    /** Функция формирования строки символов для штрихкода Code128 С
    * In: instring - строка цифр любой длины; ver - версия лотуса
    * 256 - Notes 7.0
    * Out: строка в виде кодов для отображения штрихкода в HTML
    * Алгоритм описан на: http://idautomation.com/code128faq.html
    */
    final int constC = 105; // константа, признак того что используется тип С баркода Code128
    String outstring = ""; // строка на выходе
    String csum = ""; // символ контрольной суммы
    int i;
    int k;
    int z = 1;
    long sum = 0;

    // System.out.println("Версия Notes: " + ver);

    // определяем строку
    for (i = 0; i < instring.length(); i=i+2 ) {
    k = Integer.parseInt(instring.substring(i, i+2));
    if (k <= 90) {
    if (k == 0)
    k = 174;
    else
    k = k + 32;
    outstring = outstring + "&#" + k;
    }
    else {
    if (ver < 256) { // версия нотес меньше 7.0 используем замену символов
    switch (k) {
    case 91: {k = 1038; break;}
    case 92: {k = 1118; break;}
    case 93: {k = 1032; break;}
    case 95: {k = 1168; break;}
    case 98: {k = 1025; break;}
    default: k = k + 70;
    }
    }
    else {
    k = k + 70;
    }
    outstring = outstring + "&#" + k;
    }
    }

    // определяем контрольную сумму
    for (i = 0; i < instring.length()-1; i=i+2) {
    k = Integer.parseInt(instring.substring(i, i+2));
    // System.out.println("Порядок: " + z + " Число: " + k + " Умножение: " + k*z);
    sum = sum + k*z;
    z++;
    }
    sum = sum + constC;
    // System.out.println("Контрольная сумма: " + sum % 103);

    Long xx = null;
    xx = new Long(sum % 103);
    k = xx.intValue();
    if (k <= 90){
    if (k == 0)
    k = 174;
    else
    k = k + 32;
    csum = "&#" + k;
    }
    else {
    if (ver < 256) { // версия нотес меньше 7.0 используем замену символов
    switch (k) {
    case 91: {k = 1038; break;}
    case 92: {k = 1118; break;}
    case 93: {k = 1032; break;}
    case 95: {k = 1168; break;}
    case 98: {k = 1025; break;}
    default: k = k + 70;
    }
    }
    else {
    k = k + 70;
    }
    csum = "&#" + k;
    }

    // "}" - стартовый символ для Code128 С
    // "~" - стоповый символ для Code128 С
    outstring = "}" + outstring + csum + "~";
    return outstring;
    }[/CODE]
    Но, не советовал бы работать со шрифтами. Лучше генерировать картинки.
    Я использую ZXing (\"Zebra Crossing\") http://code.google.com/p/zxing/.
     
  17. Dios1986

    Dios1986 Active Member

    Регистрация:
    20 апр 2010
    Сообщения:
    25
    Симпатии:
    0
    Спасибо за дельный совет по теме! будем изучать и пробовать :)
     
  18. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    речь идет именно об автоматизации поиска оригинала по шрихкоду (т.е. прямому назначению), с пом. считывателя, в БД
    и сравнения распознаного скана с хэшом
     
Загрузка...
Похожие Темы - Помогите Штрихкодированием
  1. limbra
    Ответов:
    3
    Просмотров:
    46
  2. NylevoiChelovek
    Ответов:
    4
    Просмотров:
    102
  3. Ruska132
    Ответов:
    39
    Просмотров:
    328
  4. gURaBA_N
    Ответов:
    7
    Просмотров:
    148
  5. uxbmw3w
    Ответов:
    0
    Просмотров:
    65

Поделиться этой страницей