问题标签 [barcode-printing]

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 回答
2922 浏览

algorithm - 在列数固定的 PDF417 条形码中,我将如何计算某些文本所需的行数?

我需要从一些文本生成 PDF417 条形码。我有一个 API(我没有创建),它根据数据、行数和列数(以及与问题无关的其他参数)生成 PDF417 条形码。

我的 PDF417 条码使用文本编码。这意味着 1 个代码字最多可容纳 2 个字符。现在,必须固定列数,因为我在非常有限的空间中打印此条形码。

以下是我从本文档中推断出的内容(请参阅第 38 页 - 调整条码大小):

  1. 让每行的码字数,CWPerRow = 7。
  2. 某些给定文本所需的代码字数,ReqCW = strlen(text) / 2。
  3. 所需的行数 = ReqCW / CWPerRow

当我测试上述算法时,没有任何显示。当我在数据非常小且行数 = 25 时使用相同的 API 时,条形码打印得很好(由各种条形码扫描仪验证)。

那么,当列数已知时,如何计算某些给定文本所需的行数?

0 投票
1 回答
2744 浏览

windows - 将 prn 文件发送到打印机的问题:打印速度极慢

我正在通过 php 为打印机生成 prn 文件并将它们发送到打印机进行打印

仅供参考,此命令正在手动执行。

当我这样做时,打印速度比直接通过应用程序发生时要慢得多。我主要关心 Zebra 标签打印机的这个问题。

该软件发生的情况是,当我选择打印 20 个标签副本时,它会在最多 5-10 秒内打印它们

当我使用上述命令通过 prn 文件打印它时。每个标签实际上需要 1 秒。

顺便说一句,我使用 php 生成的 prn 文件和该软件 100% 相似。实际上,我在 php 中使用了一个通用模板来处理所有条码,这些条码取自我从软件本身生成的标签 prn 文件之一,只是更改了产品相关值,而没有改变设计或结构。

我查看了斑马打印机的 EPL 文档,我无法从中找出问题,可能是因为我不太了解它。

我的 PRN 文件结构

P(最后一行)旁边的否用于确定数量。我根据我的要求通过php动态更改它

0 投票
1 回答
3809 浏览

vb.net - 如何在不使用 3rd 方工具的情况下在 vb.net 中生成条形码

我正在创建我想打印条形码贴纸的winform应用程序....我在互联网上搜索,发现两种字体支持条形码:code39和code 128,许多链接包括用于条形码生成的第3方工具..任何人都可以帮助我如何在我的 vb.net 应用程序中生成条形码..

0 投票
1 回答
26222 浏览

java - 为 POS 打印机编写正确的 ESC/POS 命令

我正在尝试为 58mm POS 热敏打印机编写正确的 ESC/POS 命令。我尝试将此命令作为 ASCII 文本输入,并将其转换为 HEX,但在这两种情况下,打印机都只打印此代码,而不是收据输出。代码有问题,找不到工作代码的示例(不是命令)。

我想得到像这个样本这样的打印收据。打印机命令的可用命令在此处。有人可以告诉我正确的代码吗?

0 投票
1 回答
1950 浏览

java - 使用 jZebra 在同一张收据上打印 HTML 和 PostScript

根据此处的教程,我可以使用 jZebra 将 HTML 和 PostScript 分别打印到 Epson T88V 收据打印机。我想在同一个标​​签上使用两种打印方法 - HTML 用于文本和布局,PostScript 用于条形码渲染。不幸的是,我只能打印一个或另一个,而不是在同一个标​​签上。

这是包含在打印按钮单击事件中的js:

如果我按原样运行代码,则只打印文本。如果我注释掉文本打印行,则打印条形码。

我尝试applet.clear();在第一次打印后使用并尝试切换打印顺序但没有任何变化。有没有办法一次性打印条形码和文本?

0 投票
3 回答
1475 浏览

c# - Does a 2-char check digit for a barcode use the first or second char?

Based on my understanding of how check digits are supposed to be calculated for barcodes, namely:

So for example, with a barcode "04900000634" the combined sum is 40*; To get the check sum, the modulus (40 % 10) == 0, and then 10 - 0 == 10.

  • Odd characters == 7; X3 = 21; Even characters == 19, for a combined sum of 40.

Since a check digit is a scalar value, what if the result of the check digit calculation is 10? Does one use "0" or "1"?

Here is the code I'm using (thanks to some help from here: Why does 1 + 0 + 0 + 0 + 3 == 244?); I'm assuming that the formula pseudocoded above applies regardless of the length (8 chars, 12 chars, etc.) and type (128, EAN8, EAN12, etc.) of the barcode.

UPDATE

The calculator here: http://www.gs1us.org/resources/tools/check-digit-calculator claims that the check digit for 04900000634 is 6

How is that being arrived at?

UPDATE 2

This http://www.gs1.org/barcodes/support/check_digit_calculator revises my understanding of the last part of the equation/formula, where it says, "Subtract the sum from nearest equal or higher multiple of ten = 60- 57 = 3 (Check Digit)"

So, in the case of 04900000634, the combined sum is 40. Based on that formula, the "nearest equal or higher multiple of ten" of 40 is 40, so 40-40=0, and I would expect that to be the check sum (not 6)...so, still confused...

UPDATE 3

I'm not understanding why yet, but mike z's comment must be correct, because when I reverse the "==" and "!=" logic in the sumOddVals() and sumEvenVals() functions, my results correspond to those generated by http://www.gs1us.org/resources/tools/check-digit-calculator

UPDATE 4

Apparently, based on http://en.wikipedia.org/wiki/European_Article_Number, the powers that be behind check digit calculations don't consider the first position to be position 0, but position 1. Confusing for developers, trained to see the first item as residing at index 0, not 1!

0 投票
0 回答
275 浏览

reporting-services - SSRS 2008 R2 智能邮件条码生成

我有一个用于生成发票的 SSRS 报告。我正在尝试根据用于报告的数据集在发票底部动态生成智能邮件条形码 (IMB)。我找到了使用IMB的文档并安装了他们的字体。我已经能够在我的报告中使用字体。

在此处输入图像描述

我放置了一个随机编码的 65 个字符的字符串,我从他们的一个 PDF 文档中提取了该字符串。

我对如何使用字体有点困惑。是否可以实现一些更改文本的参数对我需要的文本进行编码?或者唯一的解决方案是在 dll 中使用外部代码库。能够将信息编码为“D、A、F和T”的正确组合。

我想知道是否有人对使用 IMB 内部报告有任何经验,并且可以为我指明正确的方向。我宁愿不必使用外部解决方案(付费应用程序等)。

提前致谢!

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 投票
1 回答
1857 浏览

php - 将条形码图像从网页打印到标签上,打印时缩小尺寸

我们创建了一个尺寸为 380 宽和 120 高的条形码图像。在网页上显示时很好。条形码扫描仪也可以扫描。

在打印至少 300 dpi 的 A4 桌面打印机上打印时,a4 条码扫描良好。但是当我尝试在标签上打印带有条码图像的整个网页时,浏览器会减少信息打印以适合标签.

标签上的条形码变得越来越小,无法扫描。有没有办法在 200 dpi 斑马标签打印机上打印。请提出任何想法。我们需要做任何打印设置吗?或增加尺寸要在 200 dpi 标签打印机上打印的条形码图像?

0 投票
1 回答
2262 浏览

winforms - 如何使用 C#.Net 扫描、生成和打印条码

我想创建一个 C#.Net 应用程序,它可以进行条码扫描、生成和打印。

我怎样才能做到这一点 ?