0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 21

Генерация Штрих Кода В Лотусе

15.07.2014, 09:21. Показов 9275. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Мне нужно реализовать генерацию штрих-кода, его последующее считывание через сканер и так далее и тому прочее. Пока я хочу спросить у тех кто может знает или уже подобное делал, как сгенерировать штрих код, линейный в формате EAN-13 в лотусе? Возможно ли это?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.07.2014, 09:21
Ответы с готовыми решениями:

Всё по отладке Java-кода в Лотусе
Граждане, как вы отлаживаете ваши Java агенты в Лотусе? И под веб, и под Нотес. (1) Когда запускаю агент в веб то вот такой код в...

Письма в Лотусе
Подскажите пожалуйста..... Как можно сделать так чтобы отправленное письмо в $Inbox в колонке Who не оттображалось имя пользователя...

Jvm в лотусе 6.5.1
В лотусовом клиенте этой версии используется Java 1.3.1. Надо было прицепить библиотечку явовскую, но она работает минимум под 1.4. В...

11
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
15.07.2014, 09:39
DamirAstana
Возможно, есть реализация. Нужен шрифт на машине, где будут считывать штрих-коды.
Выложить?
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 21
15.07.2014, 09:55
Цитата Сообщение от savl
DamirAstana
Возможно, есть реализация. Нужен шрифт на машине, где будут считывать штрих-коды.
Выложить?
Да, было бы круто. Получается нужно будет еще шрифт устанавливать на рабочей станции пользователя который будет генерировать штрих код или еще и тем кто будет считывать при помощи сканера?
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
15.07.2014, 10:07
Ну тем кто считывает думаю не обязательно, если они будут считывать с бумаги, если с экрана - да.
Тем кто будет генерить тоже, если им не интересно как это выглядит.

Ниже код создания ШК, реализация на LS. можно и на java переписать при необходимости.
Не помню где его нашел.
За основу берется UNID документа, сначала думал таким образом ШК почти всегда уникален, но он формируется только из цифр(анализирую по кодам ASCII (48-57)), это важно. Так что теоретически может быть 2 одинаковых ШК.
Созданный ШК большинство сканеров доллжно читать без дополнительной настройки.
У нас это так и не используется, заказчик отказался.
Прикрепил шрифт, который использую сам, вот его я искал очень долго.


<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">

LotusScript
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
    Dim macro As Variant
Dim res As String
Dim k As String
Dim ac As Integer
Dim bc As String
 
macro = Evaluate({@DocumentUniqueID},meDoc)
res = macro(0)
For i=1 To Len(res)
k = Mid$(res,i,1)
ac = Asc(k)
If ac >=48 Then
If ac <= 57 Then
bc = bc & k
End If
End If
Next
 
Dim sumA As Integer
Dim sumB As Integer
Dim CC As Integer
SumA = 0
SumB = 0
Stop
bc = Left(bc,12)
For i =1 To Len(bc)
If (i Mod 2 = 0 ) Then
SumA = SumA + Cint(Mid$(bc,i,1))  Четное
Else
SumB = SumB + Cint(Mid$(bc,i,1)) Нечетное
End If
Next
 
SumA = SumA*3 + SumB
SumB = (SumA\10 + 1)*10
 
bc = bc & (SumB - SumA)
 
Dim barcodeDone As String
 
barcodeDone = GetComb(Cint(Left(bc,1)),"")
barcodeDone = barcodeDone & "!"
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,2,1)),"A")
 
If Cint(Left(bc,1)) < 4 Then
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,3,1)),"A")
Else
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,3,1)),"B")
End If
 
If Cint(Left(bc,1)) = 0 Or Cint(Left(bc,1)) = 4 Or Cint(Left(bc,1)) =7 Or Cint(Left(bc,1)) = 8 Then
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,4,1)),"A")
Else
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,4,1)),"B")
End If
 
If Cint(Left(bc,1)) = 0 Or Cint(Left(bc,1)) = 1 Or Cint(Left(bc,1)) = 4 Or Cint(Left(bc,1)) =5 Or Cint(Left(bc,1)) = 9 Then
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,5,1)),"A")
Else
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,5,1)),"B")
End If
 
If Cint(Left(bc,1)) = 0 Or Cint(Left(bc,1)) = 2 Or Cint(Left(bc,1)) = 5 Or Cint(Left(bc,1)) =6 Or Cint(Left(bc,1)) = 7 Then
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,6,1)),"A")
Else
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,6,1)),"B")
End If
 
If Cint(Left(bc,1)) = 0 Or Cint(Left(bc,1)) = 3 Or Cint(Left(bc,1)) = 6 Or Cint(Left(bc,1)) =8 Or Cint(Left(bc,1)) = 9 Then
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,7,1)),"A")
Else
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,7,1)),"B")
End If
 
barcodeDone = barcodeDone & "-"
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,8,1)),"C")
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,9,1)),"C")
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,10,1)),"C")
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,11,1)),"C")
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,12,1)),"C")
barcodeDone = barcodeDone & GetComb(Cint(Mid$(bc,13,1)),"C")
barcodeDone = barcodeDone & "!"
 
Call meDoc.replaceItemValue("BarCode",bc)
Call meDoc.replaceItemValue("BarCodeImageText",barcodeDone)
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Function GetComb</div></div><div class="sp-body"><div class="sp-content">

LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function GetComb(Num As Integer, Typ As Variant) As String
 
Select Case Typ
Case "A":
GetComb="" & num
Case "B":
GetComb ="" & Chr((num+65))
Case "C":
GetComb ="" & Chr((num+97))
Case Else:
GetComb ="" & Chr((num+35))
End Select
 
End Function
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 21
15.07.2014, 10:46
Цитата Сообщение от savl
Ну тем кто считывает думаю не обязательно, если они будут считывать с бумаги, если с экрана - да.
Тем кто будет генерить тоже, если им не интересно как это выглядит.
Спасибо огромное! Буду теперь разбираться. Пытаться.
0
0 / 0 / 0
Регистрация: 04.12.2004
Сообщений: 3,329
15.07.2014, 11:48
С помощью zxing.
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
15.07.2014, 12:09
Делел на Java. Результат - картинка png
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
15.07.2014, 22:54
savl ну не в винде все проще ;) http:///index.php?showtopi...st&p=248016
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
20.07.2014, 09:56
Barcode4J
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 21
20.07.2014, 10:37
Цитата Сообщение от garrick
Спасибо, как раз этим и воспользовался.
0
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 21
19.08.2014, 08:44
Цитата Сообщение от garrick
Здравствуйте. Возникла такая проблема. Barcode4J выгружает очень большую картинку. Да и нужно еще конфигурировать файл XML и выгружать перед тем как воспользоваться библиотекой, нет ли решения чтобы без xml файла? И как сделать чтобы картинка была маленькой по размеру? Кстати использовал еще бибиотеку с сайта onbarcode.com, так там через 10 выгрузок появляется надпись Trial(

мой конфиг xml

Code
1
2
3
4
5
6
<?xml version="1.0" encoding="UTF-8"?>
<barcode>
<code128>
<module-width>0.4mm</module-width>
</code128>
</barcode>
код на java

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
System.out.println(System.getProperty("java.io.tmpdir"));
try {
Configuration cfg = builder.buildFromFile(new File("barcode.xml"));
BarcodeGenerator gen = BarcodeUtil.getInstance().createBarcodeGenerator( cfg );
 
OutputStream out = new java.io.FileOutputStream(new File("C://bcode1.png"));
BytmapCanvasProvyder provyder = new BytmapCanvasProvyder(
out, "image/x-png", 300, BufferedImage.TYPE_BYTE_GRAY, true, 0);
gen.generateBarcode(provyder, "001-20082014095311-12345");
provyder.finysh();
 
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
и такая вот картинка

Добавлено: Кстати, пытался использовать xml тот, который они советуют для code128, но его не принимает конфигуратор для ШК(

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
<barcode>
<code128>
<height>{length:15mm}</height>
<module-width>{length:0.21mm}</module-width>
<codesets>{string:ABC}</codesets>
<quiet-zone enabled="{boolean:true}">{length:10mw}</quiet-zone>
<human-readable>
<placement>{human-readable-placement:bottom}</placement>
<font-name>{font-name:Helvetica}</font-name>
<font-size>{length:8pt}</font-size>
</human-readable>
</code128>
</barcode>
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 812
19.08.2014, 09:24
У меня работает так:

Code
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
        private String getBarcodeFilename(String value) throws IOException, BarcodeException,
ConfigurationException {
BarcodeUtil util = BarcodeUtil.getInstance();
BarcodeGenerator gen = util.createBarcodeGenerator(getBarcodeConfiguration());
File f = File.createTempFile("~bar", ".jpg");
String filename = f.getAbsolutePath();
OutputStream out = new FileOutputStream(filename);
int resolution = 300;
BytmapCanvasProvyder canvas = new BytmapCanvasProvyder(out, "image/jpeg", resolution,
BufferedImage.TYPE_BYTE_BINARY, false, 0);
gen.generateBarcode(canvas, value);
canvas.finysh();
f.deleteOnExit();
return filename;
}
 
private Configuration getBarcodeConfiguration() {
DefaultConfiguration cfg = new DefaultConfiguration("barcode");
// Bar code type
DefaultConfiguration child = new DefaultConfiguration("code128");
cfg.addChild(child);
// Human readable text position
DefaultConfiguration attr = new DefaultConfiguration("human-readable");
DefaultConfiguration subAttr = new DefaultConfiguration("placement");
subAttr.setValue("bottom");
attr.addChild(subAttr);
child.addChild(attr);
return cfg;
}
Как видите, никаких XML файлов. По поводу размера картинки никогда не парился, она у меня при вставке в документ сжимается/растягивается до необходимой ширины/высоты. Сам файл - временный, по завершению формирования документа удаляется. Ручные сканеры мои документы читают без проблем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.08.2014, 09:24
Помогаю со студенческими работами здесь

[?] web на лотусе...
сабж.... а то в лотус_клиенте моя база выглядит красиво, а в вебе -- ужасно как нить можно разукрасить? :D ведь можно же делать...

Web в лотусе
У меня задача переноса документооборота в Лотусе на WEB. Я новичок в Лотусе. Как переделать существующие базы, чтобы они работали и в WEB....

Транзакции в Лотусе
Добрый день! Подскажите кто как решает вопрос по реализации транзакционной записи в БД. В большей степени интересует работа через C API,...

String в Лотусе
Такой вопрос: Есть строка размером 32 775 899 байт как ее передать в качестве параметра внешней С-функции?

Отчет в лотусе
Нужно сделать отчет в лотусе. То есть Есть много документов в базе. Они создаются каждый месяц. Раз в месяц. То есть даты идут по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru