小编Fro*_*xor的帖子

将字符串转换为点阵打印机的十六进制控制代码

我需要将字符串发送到点阵打印机,该打印机使用 Epson FX 仿真来打印简单的条形码。我可以通过手动将控制代码键入字符串来打印它。

这是手册中的示例:https ://files.support.epson.com/pdf/general/escp2ref.pdf#page=327 在此输入图像描述

我手动将数据输入到字符串中:

var barcode = "\x1B\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01\x41\x32\x33\x40\x41\x21\x43\x44\x5B\x5D";

然后使用“qz托盘”模块发送它。

效果很好,打印机会通过正确打印所示代码来做出响应。现在我的斗争实际上是给它我自己的数据并更改最后 10 个字符串代码,我尝试了很多方法来正确编码 10 个字符的字符串,但到目前为止没有任何效果。JavaScript 有没有办法做到这一点?

编辑:

正在做:

var barcode = "\x1B\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01" + "1234567890";

这是我首先尝试的事情之一,结果导致打印机闲置并且根本不对命令做出反应。事实上,我实际上发现第一个命令 1B 不起作用,我必须使用 发送它String.fromCharCode(27)。打印条形码的完整工作命令变为:

var barcode = String.fromCharCode(27) + "\x28\x42\x10\x00\x06\x02\x00\x7D\x00\x01\x41\x32\x33\x40\x41\x21\x43\x44\x5B\x5D";

它会像手册中一样打印数据。以某种方式替换转义的十六进制数据"1234567890"只会破坏它,并且打印机什么也不做。

编辑2,解决方案:

事实证明,当我将数据发送到打印机时,我无意中跳过了负责设置条形码数据类型的控制代码,在这种情况下它将是A。没有它,打印机将闲置。工作代码:

String.fromCharCode(27) + "\x28\x42\x10\x00\x06\x02\x00\x0A\x00\x01" + "A" + "1234567890";

javascript dot-matrix qz-tray

3
推荐指数
1
解决办法
224
查看次数

在逗号后面格式化一到两位数而不向上或向下舍入

我一直在寻找,我根本找不到答案,没有一个能正常工作.

我想把像0.33333333333这样的双倍变成0,33或0.6666666666变成0,66

像0.9999999999这样的数字应该变为1.

我试过各种各样的方法

value.ToString("##.##", System.Globalization.CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

它只是返回垃圾或错误地舍入数字.有什么帮助吗?

基本上每个数字除以9,然后需要显示2个小数位而不进行任何舍入.

我找到了一个很好的函数,似乎适用于高达9.999999999的数字.除此之外,它开始丢失一个十进制数.有一个像200.33333333333的数字,它只显示200而不是200,33.对那些人有什么修复?

这里是:

string Truncate(double value, int precision)
{
    string result = value.ToString();

    int dot = result.IndexOf(',');
    if (dot < 0)
    {
        return result;
    }

    int newLength = dot + precision + 1;

    if (newLength == dot + 1)
    {
        newLength--;
    }

    if (newLength > result.Length)
    {
        newLength = result.Length;
    }

    return result.Substring(0, newLength);
}
Run Code Online (Sandbox Code Playgroud)

c# formatting decimal rounding

2
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×1

decimal ×1

dot-matrix ×1

formatting ×1

javascript ×1

qz-tray ×1

rounding ×1