关于使用Zxing的一些问题......
我编写以下代码来从图像中读取条形码:
public class BarCodeDecode
{
/**
* @param args
*/
public static void main(String[] args)
{
try
{
String tmpImgFile = "D:\\FormCode128.TIF";
Map<DecodeHintType,Object> tmpHintsMap = new EnumMap<DecodeHintType, Object>(DecodeHintType.class);
tmpHintsMap.put(DecodeHintType.TRY_HARDER, Boolean.TRUE);
tmpHintsMap.put(DecodeHintType.POSSIBLE_FORMATS, EnumSet.allOf(BarcodeFormat.class));
tmpHintsMap.put(DecodeHintType.PURE_BARCODE, Boolean.FALSE);
File tmpFile = new File(tmpImgFile);
String tmpRetString = BarCodeUtil.decode(tmpFile, tmpHintsMap);
//String tmpRetString = BarCodeUtil.decode(tmpFile, null);
System.out.println(tmpRetString);
}
catch (Exception tmpExpt)
{
System.out.println("main: " + "Excpt err! (" + tmpExpt.getMessage() + ")");
}
System.out.println("main: " + "Program end.");
}
}
public class BarCodeUtil
{
private static …Run Code Online (Sandbox Code Playgroud) 这个问题与"最佳" 条形码库推荐无关,我们在不同平台上使用各种产品,需要一种简单的方法来验证给定的条形码是否正确(根据其规格).
我们发现了条形码由不同的条形码库和互联网上的免费在线条形码生成器呈现的情况.例如,Delphi报告库的新版本将Code128中的非数字字符输出为"0",或者只是在文本区域中跳过它们.在我们进行迁移之前,我们想要检查这些更改是否是由新库中的实现中断引起的,因此我们可以将此作为错误报告给作者.
我们主要需要Code128和UCC/EAN-128与A/B/C子码.
我到目前为止检查的在线资源是:
它们也显示出不同的结果,例如支持逗号或加号等字符,至少在人类可读文本中.
我试图通过使用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(原始论坛主题与代码)
' *** Made By Michael Ciurescu (CVMichael) ***
'Modified by Paulo Cunha (pcunha) to work with char128.ttf on word or excel on 16/05/2011
'the font at in http://grandzebu.net/index.php?page=/informatique/codbar-en/code128.htm
' References:
' http://www.barcodeman.com/info/c128.php3
Private Enum eCode128Type
eCode128_CodeSetA = 1
eCode128_CodeSetB = 2
eCode128_CodeSetC = 3
End Enum
Private Type tCode
ASet As String
BSet As String
CSet As String
BarSpacePattern As String
End Type
Private CodeArr() As tCode …Run Code Online (Sandbox Code Playgroud) 所以我继承了这个代码,或者我应该说,有人开发了这个并继续前进,现在我们遇到了问题,我正在调查它...
我们正在生成c128条形码,经过认证,他们发现了一个我无法弄清楚的问题.条/间距的宽度为10.5密耳,可接受的范围为15-21密耳(1密耳= 0.001英寸).
渲染代码基于这个库:http://www.codeproject.com/KB/GDI-plus/GenCode128.aspx但已被修改一些...
生成的条形码都是字母数字,没有特殊字符.我认为条+空间的宽度取决于被编码的字符.
以下是使用的设置:
settings.Font = new Font ( FontFamily.GenericSansSerif, 12 );
settings.TopMargin = 10
settings.BottomMargin = 10
settings.LeftMargin = 10
settings.RightMargin = 10
settings.BarCodeHeight = 80
settings.DrawText = true
settings.BarCodeToTextGapHeight = 10
settings.InterCharacterGap = 2
Run Code Online (Sandbox Code Playgroud)
如果我在猜测,我认为这是因为条形的宽度是基于条形码的高度而不是条形码的高度是基于文本和条形码的长度.但是我对这个规范并不太熟悉(即使经过审查),我也是C#程序员的最佳...
在将包含EAN128/Code128条形码的报告迁移到快速报告期间,我发现快速报告不使用正确的符号系统.Code128条形码的线条非常宽,因此非常适合仓库中的长距离扫描.我报告了它,但只收到了第三方条形码库的建议.这个似乎使用了正确的符号系统,但它仍处于开发阶段(现在已有好几个月),而且还没有在Delphi 2009中使用Fast Report.
是否有其他Code128/EAN128条形码库可用于快速报告?
Code128条码示例:
![]()
更新:一个月后.与此同时,我们收到了第三方条形码开发人员的源代码 - 但它与我们在2009年10月收到的错误代码相同.因此,我们的项目仍然存在*Fast Reports错误的Code128实现*不完整和错误的第三方库*没有多少时间来实现这一点,所以我们仍然使用基于QuickReport的Delphi 7打印系统
根据我对 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”
如果这不是正确的值,那么我理解错误。
以下是一些条形码:
0) 123456789
1) 12345678
2) 1234567
3) 123456
Run Code Online (Sandbox Code Playgroud)
...以及它们应该如何与计算出的校验位一起出现(并使用下面的代码):
0) 123456789L
1) 12345678N
2) 1234567*
3) 123456E
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的是,这是我用来计算 Code128 校验位的代码:
private void buttonAppendCode128CheckDigit_Click(object sender, EventArgs e)
{
const int CODE_128_DIVISOR = 103;
string barCode = textBoxRawCode128.Text.Trim();
int runningTotal = 0;
for (int i = barCode.Length …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个带有TAB键的条形码.
好像有些生成器(到目前为止只找到一个)~用作TAB键.
但我似乎无法让它与任何其他发电机一起工作.
我还读到Code128 A支持ASCII,这意味着"HT"应该作为水平选项卡.
关于Code128解密为TAB的任何想法?
正如标题所说,我有一个 Code128 字体,我想用它来打印条形码。但是,该字符串需要在 Code128 中进行编码才能使条码字体正常工作。我的应用程序使用 Python3 语言。
网络上曾经有一个示例,如何对 Code128 字体的字符串进行编码,但我再也找不到了。
我不想要一个字符串到 .svg 转换器。我特别想将字符串转换为 Code128 编码的字符串。
任何参考、Python3 中的代码片段或文档将不胜感激。
编辑:我使用这里的字体。
我想在Code 128条形码中编码字符串"QuiÑones".是否可以在Code 128编码中包含扩展的ASCII字符?.
我对谷歌做了一些研究,建议使用FNC4,但我没有找到确切的方法.如果有人可以帮助我使用C语言的解决方案,那将是非常有帮助的.
我正在努力将POS系统集成到我的网站.所以我想生成条形码.我使用SKU作为编码甲酸盐的数据字段XXXXX-XXX-XXX-XXX.
X是从0到9的数字,所以在做研究之后我发现如果我错了,代码128是最正确的.尺寸问题,物品上的标签是2英尺×3 1/2英寸,当我生成条形码使用barbecue并调整图像大小时,扫描仪无法读取条形码.那么请你解释一下尺寸约束是什么,以及我可以用英寸得到的最小尺寸.
我真傻,我以为只要用条形码字体写一些文本,扫描仪就能读取它。看来我错了。
因此,在阅读了一些有关 code128 条形码的文档后,我了解到:
我的代码是:
public string Str = "MADS";
public string Barcode = null;
public void OnGet()
{
int start = 104;
int end = 106;
int calc = start;
Barcode = start.ToString();
for (var i = 0; i < Str.Length; i++)
{
calc += (Convert.ToChar(Str[i]) - 32) * (i + 1);
Barcode += Str[i];
}
double rem = calc % 103;
Barcode += Convert.ToChar((int)rem + 32).ToString() + end;
Console.WriteLine(Barcode);
}
Run Code Online (Sandbox Code Playgroud)
我不确定条形码字符串中应包含多少内容,以便扫描仪读取?: …
我们正在尝试使用TCPDF库为产品标签生成正确的EAN-128代码,但我们的客户说条形码扫描器不会读取生成的条形码.原始(旧)条形码和字符串:
代码字符串是:
$codeString = "(01)08437013308045(3013)2675(15)161201(10)150518"
Run Code Online (Sandbox Code Playgroud)
如果我们将字符串直接传递给TCPDF函数,如下所示:
$label->write1DBarcode($codeString, 'C128A', $x, $y, $w, $h);
Run Code Online (Sandbox Code Playgroud)
我们得到了正确的输出(扫描仪无法读取),但条形码比原始条形码更密集,条形码看起来更短,密度更低(他们说它是EAN-128):

我们在这里找到了(EAN-128与FNC1)chr(241)在$codeString应该有帮助之前添加,但是如果我们添加它,结果图像将从人类可读代码中的所有内容中删除:
由于我们没有条形码阅读器,因此我们无法自行检查错误.
我们在这里缺少什么?我们正在使用TCPDF版本6.2.12.
code128 ×12
barcode ×10
c# ×3
delphi ×2
java ×2
.net ×1
asp.net-core ×1
c ×1
delphi-2009 ×1
excel ×1
fastreport ×1
php ×1
python ×1
python-3.x ×1
qr-code ×1
tabs ×1
tcpdf ×1
vba ×1
zxing ×1