文本和日常工具·二维码和条形码工具包
Code 128 代码集 A、B 和 C:为什么数字会使条形码更短
· 工作原理
编码 打印 开发人员工作流程
解释三个 Code 128 代码集、代码集 C 如何为每个符号打包两个数字,以及为什么纯数字标签比混合标签明显窄。
不适合标签的条形码 - 字符选择(而不仅仅是字体大小)如何控制 Code 128 符号的宽度
Code 128 宽度由发出的符号序列控制,而不是通过缩小标题字体来控制。 ToolAcre 的测试表明,一串数字的编码比类似大小的字母的编码更紧凑,因为自动编码器可以使用成对的数字。
标签设计者可以直接测量结果,因为 `generateCode128` 使用二进制模式返回 `moduleCount`。当一个字符串允许配对数字而另一个字符串需要单个字符或集合更改时,两个字符长度相等的字符串可以具有不同的模块计数。导出的宽度还包括固定的安静区域,因此挤压标题或更改其字体不会减少条形本身。
一张表中的代码集 A、B 和 C — 控制字符和大写字母、大小写字母和数字对
这三个代码集涵盖 Code 128 指令集的不同部分:A 对于大写字母和控件很有用,B 涵盖可打印的大小写混合文本,C 表示十进制数字对。 ToolAcre 不会要求用户手动选择一组。
ToolAcre 有意隐藏手动设置选择,因为自动编码器具有完整的输入并且可以一致地选择转换。这避免了用户强制将字母设置为 C 或错误地将面向控制的普通文本设置为 UI。边界同样重要:自动选择会优化有效的 ASCII 字符串,但它不会音译带重音的字母或将 Code 128 扩展到代码点 0 到 127 之外。
为什么代码集 C 将数字游程的宽度减半 - 每两位数字一个符号,以及奇数数字计数会发生什么
集 C 将每一对完整的数字转换为一个数据符号,因此长偶数长度的数字运行需要更少的符号。对于奇数计数,编码器必须为不匹配的数字保留或延迟集合 C,从而使准确的结果取决于自动分段。
奇数运行演示了“每个符号两位数字”快捷方式的限制。在 `12345` 中,最后的数字不能形成 set-C 对,因此编码器必须通过另一种策略和任何转换开销来解决它。使用 `A` 作为运行前缀会添加另一个非配对字符。生成这两个值,而不是根据六个显示的字符估计宽度,因为分段决策是在发出的模块中表示的,而不是在标题中表示的。
切换中间条形码 — 移位和代码更改字符如何让一个条形码混合设置,但需要额外的符号
当保存的符号超过切换开销时,混合标识符可以在集合之间切换。 CODE128_AUTO 编码器做出该决定;应用程序检查输出,而不是承诺每个隔离的数字对都会触发特定的转换。
开关符号消耗空间,这意味着字母内的短数字岛可能不值得输入集合 C。 CODE128_AUTO 根据整个字符串决定,而不是根据每两个数字触发开关的规则。这也解释了为什么在序列中插入标点符号可以将其加宽多个数据符号:它可以分割有用的运行并导致围绕中断的转换。
计数模块 — 每个符号 11 个模块,13 个用于停止图案,加上安静区域,用于预测打印宽度
普通 Code 128 符号占用十一个模块,而停止图案较长,渲染器在两侧添加了十个窄条静区。与计算可见输入字符相比,对发出的模块进行计数可以更可靠地预测宽度。
渲染器将每个二进制模块转换为固定倍数的像素,并在两侧添加十个窄模块静区。它的停止顺序是十三个模块,而普通符号以十一个模块组开始。这些实现事实让布局使用返回的模块计数来计算候选像素宽度;他们不保证物理打印将在特定设备上扫描。
工作示例 — 相同的十二字符序列仅作为数字,然后带有字母前缀,比较符号计数和宽度
将 123456789012 与生成器中的 A12345678901 进行比较。全数字输入为编码器提供了一系列连续的对,而前缀则强制混合序列; ToolAcre 的测试使用相同的原理来验证数字数据是否更窄。
使用受控对,例如 `123456789012` 和 `A12345678901`,保留相同的导出设置并比较两个 SVG viewBox 宽度。第二个值可能需要不同的起始集和混合编码,即使两者都包含十二个字符。与替换较小的模块尺寸相比,这是一个更好的设计证明,较小的模块尺寸保留了计数,但使打印机和读取器更难解析每个条。
这不包括打印机分辨率、色带质量和零售条形码的 GS1 规则
该比较没有提及色带质量、打印机点或 GS1 标签规则。它还不会将 ToolAcre 转变为零售条形码服务:对于您控制的标识符,配置和实现的符号系统是普通的 Code 128 。
ToolAcre 生成精确的几何形状后,会发生打印机点、油墨扩散和色带转移。 GS1 规则先于它发生,通过定义要编码的数据和控件来实现。这两个问题都不能通过自动代码集选择来解决。技术上紧凑的 SVG 仍然可能是错误的符号系统、分辨率不足的打印或接收数据库从未注册的标识符。
要点 — 尽可能设计带有数字的标签,然后在 QR 和条形码工具包中生成条形码以检查其宽度
当紧凑性很重要时,设计带有有用数字的内部标识符,但要让必须键入它们的人能够理解它们。在布局标签之前生成最终图案,因为其真正的模块数是重要的宽度。
紧凑性应始终服从稳定的操作。较短的数字键可以节省模块,但当必须手动输入损坏的标签时,不透明的序列可能会增加转录错误。选择工作人员和软件可以使用的方案,在修复标签模板之前生成代表性的极端值,并保留安静区域,而不是为附近的文本回收空白区域。