帖子
帖子
用户
博客
课程
显示全部楼层
11
帖子
0
勋章
42
Y币

[插件开发] posPrinter 打印列无法对齐

[复制链接]
发表于 2019-11-16 11:31:03
posPrinter 打印列无法对齐
打印过程中有中文也有英文还有字符,如果完全靠空格补齐横向是不可能打印整齐的,这个只能用指针偏移功能了,但是里面好像没有这个功能,或者有没有其他方法可以解决。
比如:
阿司匹林2.0mg          1    支    2.00元
氯化钠注射液3.0ml      80    支    300.00元

就是每列无法做到对齐 这个如何解决
9
帖子
0
勋章
5634
Y币
已咨询模块开发者
14
帖子
1
勋章
602
Y币
用js填充要打印的内容,英文数字一个字符宽,汉字两个字符宽

/**
     * 用空格填充字符串至指定长度(用于打印)
     * @param {string} str 原始字符串
     * @param {number} length 填充后的字符串长度
     * @param {string} ch 填充字符
     * @returns {string} 填充后,用于打印的字符串
     */
    paddingRight: function (str, length, ch) {
        str = "" + str;
        str = str.toString(); //replace需字符串类型
        var byteLen = str.replace(/[^\u0000-\u00ff]/g, "aa").length,
            addLen = length > byteLen ? length - byteLen + 1 || 0 : 0;

        return (str + Array(addLen).join(ch ? ch : " "));
    },

    /**
     * 用空格填充字符串至指定长度(用于打印)
     * @param {string} str 原始字符串
     * @param {number} length 填充后的字符串长度
     * @param {string} ch 填充字符
     * @returns {string} 填充后,用于打印的字符串
     */
    paddingLeft: function (str, length, ch) {
        str = "" + str;
        str = str.toString(); //replace需字符串类型
        var byteLen = str.replace(/[^\u0000-\u00ff]/g, "aa").length,
            addLen = length > byteLen ? length - byteLen + 1 || 0 : 0;

        return (Array(addLen).join(ch ? ch : " ") + str);
    },
11
帖子
0
勋章
42
Y币
左右方圆 发表于 2019-11-16 16:18
用js填充要打印的内容,英文数字一个字符宽,汉字两个字符宽

/**

老大 还有这个问题
11
帖子
0
勋章
42
Y币
左右方圆 发表于 2019-11-16 16:18
用js填充要打印的内容,英文数字一个字符宽,汉字两个字符宽

/**

https://community.apicloud.com/bbs/thread-147711-1-1.html 这个帖子的问题
18
帖子
0
勋章
2011
Y币
能举实例说明吗 怎么使用这两个函数
左右方圆 · 2019-11-16 16:18用js填充要打印的内容,英文数字一个字符宽,汉字两个字符宽

/**
您需要登录后才可以回帖 登录

本版积分规则