From c9c263dc43ad90f95f24a036cee9e6b47afb596c Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 21 十二月 2024 18:44:20 +0800 Subject: [PATCH] 新建盐城德森项目 --- static/js/printerutil.js | 154 +++++++++++++++++++++++++------------------------- 1 files changed, 77 insertions(+), 77 deletions(-) diff --git a/static/js/printerutil.js b/static/js/printerutil.js index fbd180b..ab85931 100644 --- a/static/js/printerutil.js +++ b/static/js/printerutil.js @@ -1,78 +1,78 @@ -// 鎵撳嵃鏈虹焊瀹�58mm锛岄〉鐨勫搴�384锛屽瓧绗﹀搴︿负1锛屾瘡琛屾渶澶氱洓鏀�32涓瓧绗� -const PAGE_WIDTH = 384; -const MAX_CHAR_COUNT_EACH_LINE = 32; - -/** - * @param str - * @returns {boolean} str鏄惁鍏ㄦ槸涓枃 - */ -function isChinese(str) { - return /^[\u4e00-\u9fa5]$/.test(str); -} - -/** - * 杩斿洖瀛楃涓插搴�(1涓腑鏂�=2涓嫳鏂囧瓧绗�) - * @param str - * @returns {number} - */ -function getStringWidth(str) { - let width = 0; - for (let i = 0, len = str.length; i < len; i++) { - width += isChinese(str.charAt(i)) ? 2 : 1; - } - return width; -} - -/** - * 鍚屼竴琛岃緭鍑簊tr1, str2锛宻tr1灞呭乏, str2灞呭彸 - * @param {string} str1 鍐呭1 - * @param {string} str2 鍐呭2 - * @param {number} fontWidth 瀛楃瀹藉害 1/2 - * @param {string} fillWith str1 str2涔嬮棿鐨勫~鍏呭瓧绗� - * - */ -function inline(str1, str2, fillWith = ' ', fontWidth = 1) { - const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; - // 闇�瑕佸~鍏呯殑瀛楃鏁伴噺 - let fillCount = lineWidth - (getStringWidth(str1) + getStringWidth(str2)) % lineWidth; - let fillStr = new Array(fillCount).fill(fillWith.charAt(0)).join(''); - return str1 + fillStr + str2; -} - -/** - * 鐢ㄥ瓧绗﹀~鍏呬竴鏁磋 - * @param {string} fillWith 濉厖瀛楃 - * @param {number} fontWidth 瀛楃瀹藉害 1/2 - */ -function fillLine(fillWith = '-', fontWidth = 1) { - const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; - return new Array(lineWidth).fill(fillWith.charAt(0)).join(''); -} - -/** - * 鏂囧瓧鍐呭灞呬腑锛屽乏鍙崇敤瀛楃濉厖 - * @param {string} str 鏂囧瓧鍐呭 - * @param {number} fontWidth 瀛楃瀹藉害 1/2 - * @param {string} fillWith str1 str2涔嬮棿鐨勫~鍏呭瓧绗� - */ -function fillAround(str, fillWith = '-', fontWidth = 1) { - const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; - let strWidth = getStringWidth(str); - // 鍐呭宸茬粡瓒呰繃涓�琛屼簡锛屾病蹇呰濉厖 - if (strWidth >= lineWidth) { - return str; - } - // 闇�瑕佸~鍏呯殑瀛楃鏁伴噺 - let fillCount = lineWidth - strWidth; - // 宸︿晶濉厖鐨勫瓧绗︽暟閲� - let leftCount = Math.round(fillCount / 2); - // 涓や晶鐨勫~鍏呭瓧绗︼紝闇�瑕佽�冭檻宸﹁竟闇�瑕佸~鍏咃紝鍙宠竟涓嶉渶瑕佸~鍏呯殑鎯呭喌 - let fillStr = new Array(leftCount).fill(fillWith.charAt(0)).join(''); - return fillStr + str + fillStr.substr(0, fillCount - leftCount); -} - -module.exports = { - inline: inline, - fillLine: fillLine, - fillAround: fillAround, +// 鎵撳嵃鏈虹焊瀹�58mm锛岄〉鐨勫搴�384锛屽瓧绗﹀搴︿负1锛屾瘡琛屾渶澶氱洓鏀�32涓瓧绗� +const PAGE_WIDTH = 384; +const MAX_CHAR_COUNT_EACH_LINE = 32; + +/** + * @param str + * @returns {boolean} str鏄惁鍏ㄦ槸涓枃 + */ +function isChinese(str) { + return /^[\u4e00-\u9fa5]$/.test(str); +} + +/** + * 杩斿洖瀛楃涓插搴�(1涓腑鏂�=2涓嫳鏂囧瓧绗�) + * @param str + * @returns {number} + */ +function getStringWidth(str) { + let width = 0; + for (let i = 0, len = str.length; i < len; i++) { + width += isChinese(str.charAt(i)) ? 2 : 1; + } + return width; +} + +/** + * 鍚屼竴琛岃緭鍑簊tr1, str2锛宻tr1灞呭乏, str2灞呭彸 + * @param {string} str1 鍐呭1 + * @param {string} str2 鍐呭2 + * @param {number} fontWidth 瀛楃瀹藉害 1/2 + * @param {string} fillWith str1 str2涔嬮棿鐨勫~鍏呭瓧绗� + * + */ +function inline(str1, str2, fillWith = ' ', fontWidth = 1) { + const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; + // 闇�瑕佸~鍏呯殑瀛楃鏁伴噺 + let fillCount = lineWidth - (getStringWidth(str1) + getStringWidth(str2)) % lineWidth; + let fillStr = new Array(fillCount).fill(fillWith.charAt(0)).join(''); + return str1 + fillStr + str2; +} + +/** + * 鐢ㄥ瓧绗﹀~鍏呬竴鏁磋 + * @param {string} fillWith 濉厖瀛楃 + * @param {number} fontWidth 瀛楃瀹藉害 1/2 + */ +function fillLine(fillWith = '-', fontWidth = 1) { + const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; + return new Array(lineWidth).fill(fillWith.charAt(0)).join(''); +} + +/** + * 鏂囧瓧鍐呭灞呬腑锛屽乏鍙崇敤瀛楃濉厖 + * @param {string} str 鏂囧瓧鍐呭 + * @param {number} fontWidth 瀛楃瀹藉害 1/2 + * @param {string} fillWith str1 str2涔嬮棿鐨勫~鍏呭瓧绗� + */ +function fillAround(str, fillWith = '-', fontWidth = 1) { + const lineWidth = MAX_CHAR_COUNT_EACH_LINE / fontWidth; + let strWidth = getStringWidth(str); + // 鍐呭宸茬粡瓒呰繃涓�琛屼簡锛屾病蹇呰濉厖 + if (strWidth >= lineWidth) { + return str; + } + // 闇�瑕佸~鍏呯殑瀛楃鏁伴噺 + let fillCount = lineWidth - strWidth; + // 宸︿晶濉厖鐨勫瓧绗︽暟閲� + let leftCount = Math.round(fillCount / 2); + // 涓や晶鐨勫~鍏呭瓧绗︼紝闇�瑕佽�冭檻宸﹁竟闇�瑕佸~鍏咃紝鍙宠竟涓嶉渶瑕佸~鍏呯殑鎯呭喌 + let fillStr = new Array(leftCount).fill(fillWith.charAt(0)).join(''); + return fillStr + str + fillStr.substr(0, fillCount - leftCount); +} + +module.exports = { + inline: inline, + fillLine: fillLine, + fillAround: fillAround, }; \ No newline at end of file -- Gitblit v1.9.1