Javascript 代码 128 字符串生成器 - Ascii 值 > 127 问题

标签 javascript barcode code128

我一直在尝试构建一个小型的基于 html/javascript 的代码 128 B 型文本生成器。

我让它适用于大多数条形码,但如果使用的值创建一个大于 ascii 127 的字符的校验和,我就会遇到问题。我不确定应该用什么来替换它在这种情况下的值(value)。我读过在条形码中添加“Code 3”和“FNC X”值,但不清楚采用什么格式,带大括号,FNC 应该是“FNC4”还是“FNC 4”,或者这是否与校验和。

我正在使用此网站的免费 128 字体,http://jtbarton.com/Barcodes/BarcodeStringBuilderExample.aspx 。 我尝试了各种条件,例如如果值 >127,则采用现有的 ascii 值而不是添加 32,但条形码无法读取。

我这里有一个jsfiddle,https://jsfiddle.net/jcqvag5g/ 。如果您使用 500.77005.YELLO.XXXXX.0160828 等值,则条形码文本无效。

任何见解将不胜感激。我目前还没有找到有效的解决方案。它也可能是我正在使用的特定条形码字体,因此也将不胜感激其他纯 128 字体的推荐。

这是主要的js代码。

function textTo128(str) {
    /*
     * Generate 128 Barcode text, suitable for copying and pasting.
     */
        var len         = str.length; //str.length - get length of string, used to generate the checksum.
        var type128     = 104; // 128 Type B start
        var typeClose   = 106;
        var total       = 104; 

        var i; // Counter Variable
        for(i=0;i<len;i++){
            total += ((i+1) * (str.charCodeAt(i)-32)); //Multiply char position with decimal value of character, keep running total
        }

        var modVal      = total % 103; // Use Modulus to find our checksum
        var checksum    = String.fromCharCode(modVal+32);

        if(modVal+32>126){alert(modVal+32);};
        document.getElementById('barcodeTotal').innerHTML = String.fromCharCode(type128+100) + str + checksum + String.fromCharCode(typeClose+100);
    }

谢谢, -大卫

最佳答案

如果大于 126,校验和应加 18

var checksum = String.fromCharCode(modVal+32 > 126 ? modVal+32+18 : modVal+32);

关于Javascript 代码 128 字符串生成器 - Ascii 值 > 127 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574678/

相关文章:

javascript - 如何将Javascript字符串编码为与Libre Barcode 128一起使用的code128?

javascript - 如何在服务器上设置 "no value"以兼容Backbone?

javascript - 加载缓慢的div死空间

python - Escpos Thermal ZJ-58 Python Code128 条码打印不显示任何内容

printing - 将 Zebra S4M 切换至 EPL

css - mPDF:在表格单元格内旋转条形码

vb.net - vb.net 中的 Code 128 条形码生成

javascript - JQuery 回调未执行?

javascript - 更改 Angular js中的索引值

iphone - 应用程序中的条形码识别