问题标签 [code128]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
excel - 使用 Excel VBA 生成 Code 128 条码
我正在尝试通过使用 VBA 在 Excel 中生成 Code 128 条形码。我找到了一个 VBA 类,有人通过 VBForums 制作和共享(后来修改为使用 Excel VBA),但我在让它工作时遇到了问题。
如果我在启用 Excel 宏的电子表格中使用以下代码,则在尝试对任何输入使用 Code128_Str() 函数时会收到 #VALUE 错误。
我缺乏正确调试代码的必要技能。如果可以更正此脚本,我认为这对许多尝试这样做的人来说将非常有用。有问题的脚本使用免费字体生成相关的 Code 128 输出条形码。
参考资料: http ://www.barcodeman.com/info/c128.php3 (字体下载) http://www.vbforums.com/printthread.php?t=514742&pp=40&page=1(原版论坛主题代码)
php - 以毫米 (php) 为单位打印(生成)code128 条形码(或任何图像)
我需要用code128 barcodes
in生成标签PHP
。这些将由用户使用几乎任何打印机打印。
我有一些特定的要求:
窄条宽度应在 0.375mm 和 0.5mm 之间
最大整体条码宽度:115mm
- 前 8 位数字必须使用子集 B
- 剩下的 20 位数字必须使用子集 C
- 代码必须在高速下可读
我尝试了几个条形码库,但大多数都不允许以毫米为单位说明最小条宽。您只能以固定的整数增量缩放窄条宽度,1 太小,2 太大:)
我还尝试使用 gd lib 重新采样图像,但代码在高速下变得不可读。
我应该构建自己的代码生成器吗?如果是这样,我将如何生成以毫米为单位的条形图?
提前致谢
compression - 从一维条码中读取的键值对的有效压缩和表示
我目前正在为 Windows Mobile 编写一个应用程序,它需要能够从一维条码(配置设置)中获取键值对。需要扫描的条码越少越好。样本输入:
我想到了以下算法:
1.连接键值对并使用Base64对值进行编码
所以我们会得到类似的东西12=U8O2bWUgVVRGLTggU3Ryw65uZw==&9=JiBhbm90aGVyIHN0cmluZw==
2.使用霍夫曼编码压缩数据
为此,我将使用固定的 Huffman 树,并提供以下信息来帮助我压缩数据:
3. 从编码数据生成 Code 128B 条码
将 Base96 编码应用于 Huffman 算法生成的比特流,以获得可在 Code 128B 条码中使用的 ASCII 字符。根据需要将生成的字符串拆分为多个条形码。
编写这些步骤对我来说不是问题,但我想对算法的效率和设计有一些反馈。
问题
- 我是否在某处失去了更好压缩/更短字符串的潜力?
- 有没有更好的方法来压缩随机 UTF8 编码的数据?
- 我应该将动态霍夫曼表嵌入到编码数据中吗?
- 如何考虑 Code 128B 的压缩( a
0
需要的空间比 a 少&
)?
java - Zebra EM 220,使用 Android 打印 Code 128 条码
我想使用 Zebra 的 EM 220 SDK for Android 打印代码 128 条码。
我尝试使用 PrintBarcode() 方法打印它,如下所示:
但是打印的代码不能被Android扫描应用程序扫描,比如ZXing。
在网上搜索后,我了解到数据必须被格式化(即使我有点惊讶 Zebra SDK 不这样做......)并找到了有助于对数据进行编码的barcode4j 库。但是,即使使用库,也无法扫描打印的条形码。
所以,我的问题很简单:如何使用 Zebra 的 EM 220 SDK for Android 打印代码 128 条码?
c# - GS1-128 and RegEx
I'm busy with GS1-128 and want to match scanned barcodes using RegEx. I currently have the following expression:
This succesfully matches the barcode (01)12345678123450(11)130500(21)1234567890(30)42
, splitting it up into the following groups:
- 01 - GTIN
- 12345678 - company code (dummy) - 8 digits
- 12345 - partcode (dummy) - 5 digits
- 11 or 17 - Production date/expiry date
- 130500 - date - 6 digits
- 10 or 21 - batch/serial number
- 1234567890 - 1 to 20 characters
- 30 - count of items (optional)
- 42 - 1 to 8 characters (optional)
Now, I sometimes have a barcode that doesn't have the count of items AI; 30. I can't seem to figure out how to work this into my regex at all. Whenever I make group 8 & 9 optional, the content of these groups get thrown into group 7 for all barcodes that do contain AI 30.
How do I go about making AI 30 optional while preventing it from being grouped with AI 21/10?
Test cases:
(01)12345678654320(11)120500(21)1234567890
should give the following matches:
- 01
- 12345678
- 65432
- 11
- 120500
- 21
- 1234567890
- NO MATCH
- NO MATCH
(01)12345678124570(17)130700(10)30567(30)50
should give the following matches:
- 01
- 12345678
- 12457
- 17
- 130700
- 10
- 30567
- 30
- 50
(01)12345678888880(11)140200(21)66503042(30)100
should give the following matches:
- 01
- 12345678
- 88888
- 11
- 140200
- 21
- 66503042
- 30
- 100
Note that the parentheses are only to show where the AI begins, the barcode itself omits these.
barcode - EPL - 控制 128 条码长度
我正在使用 EPL 从 Zebra 打印机(更具体地说是 LP 2844)直接打印条形码。我遇到的问题是我无法控制条形码的物理长度。
例如,这2行代码会打印2个不同长度的条码,即使窄条宽度、宽条宽度和内容长度设置相同。
我知道输入内容在这里很重要,但我无法弄清楚它是如何工作的。有没有办法将条形码的长度设置为固定或至少使其可控,即:给定已知的输入内容,我知道我应该期望物理长度是多少。
barcode - code128 barcode with tilde and asterisk
I am maintaining a printing program that now requires printing both a ~ and an * in a code128 barcode in zpl.
Currently, I am using the code below that uses the ^FH to represent the tilde in hex:
The barcode prints excluding the * and ~ as 'SPECIALMAKE123456'. Is it possible to print the tilde and asterisk in a zpl code128 barcode?
c# - 这个计算 Code128 条码校验位的代码是否正确?
根据我对 Code128 条码校验位计算的理解*(与大多数其他标准条码类型完全/大不相同),我下面的代码是正确的。但是,我会很感激那些可能更了解/有一些经验观察/从附着在他们的战壕(或实验室)外套上的战壕中的泥浆的人的“健全性检查”。
- 这是我的理解:
条形码中的每个字符,从左到右,首先转换为其 ASCII 码(IOW,条形码字符“1”将被视为其 ASCII 码 49 等),然后将该值乘以其序数在字符数组中的位置。
例如,对于制造的条形码编号“123456789”,“1”相当于 49,“2”相当于 50,……“9”相当于 57。
然后,每个字符的序号位置乘以其 ASCII 值。例如,1*49 == 49、2*50==100、... 9*57==513。然后将所有这些加起来,得出(在本例中)2,445。
下一步是将该数字除以 Code128 的“幻数”103;您感兴趣的值是模数。因此,在这种情况下,2445 % 103 == 76。
倒数第二 - 最后,您将该值 (76) 转换为 ASCII 码,将另一个方向返回到其“表示”值,即“L”。
最后,将计算出的字符附加到原始条形码。确实,因此(尽管有更多的麻烦或再见),您最终得到的值为“123456789L”
如果这不是正确的值,那么我理解错误。
以下是一些条形码:
...以及它们应该如何显示计算出的校验位(并使用下面的代码):
最后但同样重要的是,这里是我用来计算 Code128 校验位的代码:
更新
我不太理解布赖恩安德森的回答。他可能是对的(可能是),但我认为就校验位计算而言,开始位和停止位将被忽略。它们不就是为了让条形码扫描仪知道从哪个点开始注意,然后从哪个点开始它可以恢复其电子打盹吗?
然后数学(假设 Brian 关于需要从 ASCII val 中减去 32 是正确的)将是:
为什么计算中包含起始字符而不包含终止字符?
由于 1005 % 103 == 78,校验位将是......“N”......还是(78-32 == 46)“-”?
如果同时包含停止字符和开始字符,那么当然这也会改变解决方案......
更新 2
我承认我并不完全是条形码的爱好者,所以我可能已经看到了这样的东西,只是没有注意到/注意,但是条形码可以有“-”和“”这样的校验位吗?看起来很奇怪;如果不仅仅是数字,我希望它们始终是字母数字。如果我的怀疑是正确的,那么当计算最终以“-”或“ ”或“~”等松鼠校验位结束时该怎么办?
更新 3
所以,如果我理解 Brian 和我正确阅读的其他来源,我将从条形码扫描仪中读取语义解码为:
...但是从逻辑上讲,它会去掉停止字符——因为它不是校验位计算的一部分——并且(不太合乎逻辑)也会去掉校验位,所以我实际得到的是:
...并对其进行按摩并计算校验位以显示条形码的人类可读表示:
并且由于如果条形码已扫描,则显然(?)已看到起始字符,因此我可以将其预先添加到要计算的 runningTotal 值中;因此,我的代码现在是:
c# - 为什么我的 ASCII char 到 int 转换失败?
根据这里的图表:
http://www.idautomation.com/barcode-faq/code-128/
这个角色:
等于值 103。
然而这段代码:
...当文本框中的值和条码的值为“ËTry another string.”时,因此 barcode[0] 为“Ë”,返回值 171 而不是 103...???
并且根据这张图表: http: //www.adams1.com/128table.html,103对应的值为‡,但是当我将barCode设置为“‡Try another string.”时,返回值为8193 ... ???越来越好奇...
注意:相关/初步帖子是此代码用于计算 Code128 条形码校验位是否正确?