Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/47: Рейтинг темы: голосов - 47, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 21

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

15.07.2014, 09:21. Показов 9229. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru