问题标签 [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.

0 投票
2 回答
74592 浏览

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(原版论坛主题代码)

0 投票
4 回答
11379 浏览

php - 以毫米 (php) 为单位打印(生成)code128 条形码(或任何图像)

我需要用code128 barcodesin生成标签PHP。这些将由用户使用几乎任何打印机打印。

我有一些特定的要求:

  • 窄条宽度应在 0.375mm 和 0.5mm 之间

  • 最大整体条码宽度:115mm

  • 前 8 位数字必须使用子集 B
  • 剩下的 20 位数字必须使用子集 C
  • 代码必须在高速下可读

我尝试了几个条形码库,但大多数都不允许以毫米为单位说明最小条宽。您只能以固定的整数增量缩放窄条宽度,1 太小,2 太大:)

我还尝试使用 gd lib 重新采样图像,但代码在高速下变得不可读。

我应该构建自己的代码生成器吗?如果是这样,我将如何生成以毫米为单位的条形图?

提前致谢

0 投票
1 回答
2817 浏览

android - Zxing Android 无法扫描 Code 128

我已经在我的 android 应用程序中集成了 ZXing 条码阅读器。

它可以扫描大部分代码,但我有一个无法扫描的电费单(使用 Galaxy Ace 5.0MP)。我认为问题出在相机分辨率和焦点上,因为当我在使用 Xperia SL (12.1MP) 时尝试使用相同的条形码时,我得到了结果。那么有没有办法解决这个问题呢?

我附上了条形码的示例图像。

有效的 XHTML .

0 投票
3 回答
1019 浏览

compression - 从一维条码中读取的键值对的有效压缩和表示

我目前正在为 Windows Mobile 编写一个应用程序,它需要能够从一维条码(配置设置)中获取键值对。需要扫描的条码越少越好。样本输入:

我想到了以下算法:

1.连接键值对并使用Base64对值进行编码

所以我们会得到类似的东西12=U8O2bWUgVVRGLTggU3Ryw65uZw==&9=JiBhbm90aGVyIHN0cmluZw==

2.使用霍夫曼编码压缩数据

为此,我将使用固定的 Huffman 树,并提供以下信息来帮助我压缩数据:

3. 从编码数据生成 Code 128B 条码

将 Base96 编码应用于 Huffman 算法生成的比特流,以获得可在 Code 128B 条码中使用的 ASCII 字符。根据需要将生成的字符串拆分为多个条形码。

编写这些步骤对我来说不是问题,但我想对算法的效率和设计有一些反馈。

问题

  • 我是否在某处失去了更好压缩/更短字符串的潜力?
  • 有没有更好的方法来压缩随机 UTF8 编码的数据?
  • 我应该将动态霍夫曼表嵌入到编码数据中吗?
  • 如何考虑 Code 128B 的压缩( a0需要的空间比 a 少&)?
0 投票
1 回答
919 浏览

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 条码?

0 投票
3 回答
4632 浏览

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:

  1. 01 - GTIN
  2. 12345678 - company code (dummy) - 8 digits
  3. 12345 - partcode (dummy) - 5 digits
  4. 11 or 17 - Production date/expiry date
  5. 130500 - date - 6 digits
  6. 10 or 21 - batch/serial number
  7. 1234567890 - 1 to 20 characters
  8. 30 - count of items (optional)
  9. 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:

  1. 01
  2. 12345678
  3. 65432
  4. 11
  5. 120500
  6. 21
  7. 1234567890
  8. NO MATCH
  9. NO MATCH

(01)12345678124570(17)130700(10)30567(30)50 should give the following matches:

  1. 01
  2. 12345678
  3. 12457
  4. 17
  5. 130700
  6. 10
  7. 30567
  8. 30
  9. 50

(01)12345678888880(11)140200(21)66503042(30)100 should give the following matches:

  1. 01
  2. 12345678
  3. 88888
  4. 11
  5. 140200
  6. 21
  7. 66503042
  8. 30
  9. 100

Note that the parentheses are only to show where the AI begins, the barcode itself omits these.

0 投票
1 回答
2155 浏览

barcode - EPL - 控制 128 条码长度

我正在使用 EPL 从 Zebra 打印机(更具体地说是 LP 2844)直接打印条形码。我遇到的问题是我无法控制条形码的物理长度。

例如,这2行代码会打印2个不同长度的条码,即使窄条宽度、宽条宽度和内容长度设置相同。

我知道输入内容在这里很重要,但我无法弄清楚它是如何工作的。有没有办法将条形码的长度设置为固定或至少使其可控,即:给定已知的输入内容,我知道我应该期望物理长度是多少。

0 投票
2 回答
1796 浏览

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?

0 投票
1 回答
11363 浏览

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 值中;因此,我的代码现在是:

0 投票
2 回答
906 浏览

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 条形码校验位是否正确?