powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Отрисовка штриховых кодов
29 сообщений из 29, показаны все 2 страниц
Отрисовка штриховых кодов
    #32222404
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть вопрос. Надо взять данные по штриховому коду из базы, например, строку кода EAN-13 и отрисовать их где-то для возможности распечатки на любом принтере в сети. Сейчас пользую специальный принтер на com1 для одной машины через dll для этого принтера. Хотелось бы сотворить графику в каком-нить контроле и стандартно кинуть его на печать. Кто-нибудь делал? Посоветуйте.

P.S. Есть шрифты ещё EAN-13 и три варианта... Но не пойму как ими пользоваться. Может с этим кто ладил?

Собственно, пока не зарегистрировался. Механик.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32222567
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть шрифты, то стандартным образом надо указать шрифт, например EAN-13 для вычисляемого поля вида "*"+<поле, содержащее штрихкод> + "*">
Астериски нужны для корректного считывания сканером, а специальный принтер добавляет их самостоятельно.

Для Interlive 2x5 надо еще контролировать четное количество символов в коде.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32222762
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, у меня шрифты не те (EAN-13.TTF, EAN-13HH.TTF, EAN-13B.TTF, EAN-13BH.TTF)... Но отрисовка в сравнении с теми, что пробивает спецпринтер совершенно иная, и, как результат - сканеры это не читают.

При внесении '*' появляется некоторый отступ и '9' в описании под шрифтом. Спецпринтер в начале, в конце и в середине пробивает двойную тонкую - как я понял для настройки.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32223381
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой принтер? (я работал с Zebra и Symbol)
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32223993
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для печати этикеток сейчас используется термопринтер GODEX EZ-2S.
Но начертание я проверяю "на любом", т.е. делаю отрисовку шрифта в DW и на обычный лазерник гоню.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32224034
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алгоритм расчета контрольного разряда можно найти здесь www.ean.ru/digit/digit.htm .
Если действительно необходимо печатать в кодировке EAN'a.

Обрамлять *-ми необходимо если печатаем в barcode39.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32224140
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне-то вобщем не формировать его надо, а просто иметь возможность отрисовать уже существующий так, чтобы можно было оперировать стандартными возможностями сетевой печати. Например послать уже сформированную графику на любое печатающее устройство, в том числе и на этот принтер этикеток.

Кое-какое, похожее, описание: http://mazafaka.ru/articlez/00000011.shtml .
Но размещать 102 линии на 24 миллиметрах довольно муторно (и управлять ими - не фонтан), хотя, конечно можно и так, в лоб... Но мне прислали шрифты - а я им ладу никак не дам. Шрифтами-то всё, думается, должно быть по-путю...

Вобщем задача общего назначения... Я бы от объекта какого неродного бы не отказался, встроил, да чего-то не отыщу.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32224183
Ermak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Мне-то вобщем не формировать его надо, а просто иметь возможность отрисовать уже существующий так, чтобы можно было оперировать стандартными возможностями сетевой печати."

Что значит отрисовать существующий?

Либо читаем что написано внизу штрих-кода и с помощью фонтов, алгоритмов расчета контрольного разряда и божей помощи формируем штрих код, либо сканируем картинку с изображением штрих-кода, либо есть что-то ещё, но я этого не усёк. Объясните?
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32224369
Механик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Берём существующий штриховой код 4601727010332 для товара ЙОГУРТ 0.5 АНАНАС (последняя цифра в нём и есть контрольная сумма, уже посчитана!). Теперь желаем напечатать этот код, чтобы его можно было прочесть сканером штрихкодов. Реализован вариант печати непосредственно на специальный принтер через управляющую dll - посылаю на вход в частности "4601727010332". Он успешно печатает штрихкод - сканер успешно считывает. Вариант один компьютер - одно рабочее место пройден.
Второй вариант - много компьютеров, один принтер. DLL в качестве параметра принимает COM или LPT компьютера рабочего места... :(

Если решать задачу с помощью шрифтов, то не нужны dll и не обязателен специальный принтер. Но как напечатать штриховой код таким, каким он должен быть для последующего считывания сканером? Прямая печать в виде "4601727010332" или "*4601727010332*" или "|4601727|010332|" затем не читается сканером и выглядит иначе, чем оригинал.

Я с помощью шрифта EAN-13 хочу иметь возможность печати штрихового кода на любой сетевой принтер. Возможно надо печатать что-то иное, не "4601727010332", а например "[6A17CH=&'&))(]"?
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #32245587
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Механик: Давно это было, так что все ниже сказанное - ИМХО и результат натужной работы дырявой памяти :)
Для вывода штрихкода на специализированый принтер число контрольной суммы добавлять как раз и не надо! Принтер сам подсчитает контрольную сумму и добавит ее в набор. А вот для печати штрихкода на лазернике контрольная сумма как раз нужна. Главное, в этом случае, это взять правильный шрифт. Я, к сожалению, не помню какой шрифт юзал я, когда писал программу печать штриховых кодов для магазина, но я точно помню что нашел я этот шрифт через Yandex.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Отрисовка штриховых кодов
    #33814394
zatup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Печатается штрихкод с помощью шрифта ean-13b.tft причем печатается на любом принтере установленном в системе (даже на Zebra, Novex и т.д).
Штрихкод формируется - 3 символа код страны дальше код предприятия и код товара, контрольный символ.
причем 1 символ определяет на какими символами печатаются следующие 6(или большими буквами или цифрами)
а последние 6 печатаются буквами a-1 b-2 c-3 и т.д.
если хочешь узнать подробнее напиши мне письмо vas_b@pisem.net
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #33814408
zatup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Контрольный разряд определяется
FOR i = 1 TO 11 STEP 2
nch = nch + integer(mid(str, i , 1))
ch = ch + integer(mid(str, i +1 , 1))

NEXT
str = right(string(1000 - nch - ch*3),1)
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #33814748
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #34141894
grach
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос практически по теме:
Надо файл отправить на устройство (принтер Zebra через USB). Файл вместе с управляющей информацией. Когда COM- или LPT-устройство вопросов не возникает - копируешь в порт этот файл.
Хотелось бы решить как нить без посторонних программ, только средствами PB.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #34141969
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гм, ну usb порт можно также открыть с помощью CreateFile(...) или что-то типа такого... Но достаточно ли этого будет для отправки данных на принтер - не уверен.
http://articles.org.ru/cfaq/index.php?qid=1124&catid=64
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Отрисовка штриховых кодов
    #35226105
Eugene S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть шрифт EAN-13B. Кто поделится ссылочкой на пример или самим примером, как преобразовать число в символы этого шрифта?
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35226305
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне помниться можно назначить COM порт принтеру и тогда задача сводиться к предыдущему решению :)
Есть также opensourse связанный с этой темой
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35226560
Eugene S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня задача - распечатать штрих-коды на обычном принтере. Штрих-кодов будет много и они будут хранится в виде чисел. Задача состоит в преобразовании этих числе в шрифт ean-13b
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35227088
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код (число) и есть шрифт - просто данным шрифтом печатается число
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35231374
eeeee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Печатайте встроенными шрифтами специального принтера иначе ничего хорошего не будет
ПРОВЕРЕНО!

Сканер очень плохо читает графику!
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35281501
Nao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Nao
Гость
eeeeeПечатайте встроенными шрифтами специального принтера...
Подскажите, пожалуйста, как это можно сделать.

Заранее спасибо
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35283412
zatup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть специальный шрифт. eang000.ttf
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35290233
dGrichine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть специальные шрифты для печати штрихкодов, но ими можно печатать правильные штрихкоды только если печатать ими специальный набор символов :
Например, чтобы отобразить правильный штрихкод
EAN13: 1218003000326 необходимо напечатать этим шрифтом такой набор символов: $!21I0AD-aaadcg!

EAN8: 00097352 необходимо напечатать этим шрифтом такой набор символов: !0009-hdfc!

ps
объект для формирования наборов символов EAN8 и EAN13, а также шрифт ttf в приложенном архиве
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35329397
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А скажите уважаемый dGrichine: А не знаете ли Вы как печатать код Interleaved 2of5. Шрифт там какой и какие надо предварительно делать преобразования.
Может где в Инете про это почитать ... ?
Спасибо.
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35330056
dGrichine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотри раздел
Printing with Interleaved 2 of 5 Fonts
по ссылке
http://www.idautomation.com/fonts/interleaved2of5/#Font_Tools

===
Гришин Дмитрий
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35331761
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 dGrichine
Ходил я по этой ссылке, нашел (кажись) алгоритм обработки сторки перед печатью.
А вот где бы взять файлик шрифта, чтобы отображать эту строку (на подобие того, что лежит в архиве (см. выше) для EAN13) только для Interleaved 2 of 5 Fonts? Файла шрифта я там не нашел :(
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35331899
Eugene S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шрифт можно взять отсюда
ссылка
но нужно будет внимательно проверить как формируется строка для этого шрфита. Алгоритм может быть не таким как у Idautomation
...
Рейтинг: 0 / 0
Отрисовка штриховых кодов
    #35332064
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, алгоритм буду проверять.
Я заметил, что для каждого шрифта - свой.
...
Все таки нет в мире совершенства :) - у этого шрифта (по ссылке) нет цифирок внизу, а клиент требуеть ... . А для шрифтов что есть циферки - нет алгоритма :(
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Отрисовка штриховых кодов
    #36809308
1222212221
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот алгоритм перевода числового штрихкода в символьный для шрифта eang000.ttf


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
//********************************************************************************
Функция ЦифрыВБуквыНижнегоРегистра(Цифра)
	БуквыНижнегоРегистра = "abcdefghij";
	Цифра = Число(Прав(Цифра, 1 ));
	Стр = Сред(БуквыНижнегоРегистра, Цифра +  1 ,  1 );
	Возврат Стр;
КонецФункции
//********************************************************************************
Функция ЦифрыВБуквыВерхнегоРегистра(Цифра)
	БуквыВерхнегоРегистра = "ABCDEFGHIJ";
	Цифра = Число(Прав(Цифра, 1 ));
	Стр = Сред(БуквыВерхнегоРегистра, Цифра +  1 ,  1 );
	Возврат Стр;
КонецФункции
//********************************************************************************
Функция СформироватьКодEAN13(код)
	ПервыйФлаг = Число(Сред(код, 1 , 1 ));
	левстр     = Сред(код, 2 , 6 );
	правстр    = Сред(код, 8 , 6 );
	правкод = "";
	Для Поз =  1  По  6 
	Цикл
		правкод = правкод + ЦифрыВБуквыНижнегоРегистра(Сред(правстр,Поз, 1 ));
	КонецЦикла;
	//  Формируем левую часть кода в зависимости от значениа ПервыйФлаг
	Если      ПервыйФлаг =  0 
	Тогда //•••  0  ••• AAAAA •••
		левкод = "#!"+Лев(левстр, 1 )+Сред(левстр, 2 , 1 )+Сред(левстр, 3 , 1 )+Сред(левстр, 4 , 1 )+Сред(левстр, 5 , 1 )+Сред(левстр, 6 , 1 );
	ИначеЕсли ПервыйФлаг =  1 
	Тогда //•••  1  ••• AABABB •••
		левкод = "$!"+Лев(левстр, 1 )+Сред(левстр, 2 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 3 , 1 ))+Сред(левстр, 4 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 5 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 6 , 1 ));
	ИначеЕсли ПервыйФлаг =  2 
	Тогда //•••  2  ••• AABBAB •••
		левкод = "%!"+Лев(левстр, 1 )+Сред(левстр, 2 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 3 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 4 , 1 ))+Сред(левстр, 5 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 6 , 1 ));
	ИначеЕсли ПервыйФлаг =  3 
	Тогда //•••  3  ••• AABBBA •••
		левкод = "&!"+Лев(левстр, 1 )+Сред(левстр, 2 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 3 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 4 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 5 , 1 ))+Сред(левстр, 6 , 1 );
	ИначеЕсли ПервыйФлаг =  4 
	Тогда //•••  4  ••• ABAABB •••
		левкод = "'!"+Лев(левстр, 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 2 , 1 ))+Сред(левстр, 3 , 1 )+Сред(левстр, 4 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 5 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 6 , 1 ));
	ИначеЕсли ПервыйФлаг =  5 
	Тогда //•••  5  ••• ABBAAB •••
		левкод = "(!"+Лев(левстр, 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 2 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 3 , 1 ))+Сред(левстр, 4 , 1 )+Сред(левстр, 5 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 6 , 1 ));
	ИначеЕсли ПервыйФлаг =  6 
	Тогда //•••  6  ••• ABBBAA •••
		левкод = ")!"+Лев(левстр, 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 2 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 3 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 4 , 1 ))+Сред(левстр, 5 , 1 )+Сред(левстр, 6 , 1 );
	ИначеЕсли ПервыйФлаг =  7 
	Тогда //•••  7  ••• ABABAB •••
		левкод = "*!"+Лев(левстр, 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 2 , 1 ))+Сред(левстр, 3 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 4 , 1 ))+Сред(левстр, 5 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 6 , 1 ));
	ИначеЕсли ПервыйФлаг =  8 
	Тогда //•••  8  ••• ABABBA •••
		левкод = "+!"+Лев(левстр, 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 2 , 1 ))+Сред(левстр, 3 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 4 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 5 , 1 ))+Сред(левстр, 6 , 1 );
	ИначеЕсли ПервыйФлаг =  9 
	Тогда //•••  9  ••• ABBABA •••
		левкод = ",!"+Лев(левстр, 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 2 , 1 ))+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 3 , 1 ))+Сред(левстр, 4 , 1 )+ЦифрыВБуквыВерхнегоРегистра(Сред(левстр, 5 , 1 ))+Сред(левстр, 6 , 1 );
	КонецЕсли;
	// Возвращаем результат
	кодстр = левкод + "-" + правкод + "!";
	Возврат кодстр;
КонецФункции
//********************************************************************************
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Отрисовка штриховых кодов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]