首页
学习
活动
专区
圈层
工具
发布

有赞零售跨平台打印库方案

在 JS 打印库出来之前,有赞零售已经实现了小票的原生打印库,但在实践遇到了不少痛点。引用之前说的三大痛点: 每个端各自实现一套打印流程,方案不统一。...6.3 模板引擎 在实际小票打印中,一套小票模板样式是固定的,但是里面的实际内容是可变的,所以我们需要使用模板引擎来实现相关的替换工作。...ESC/POS 协议 基于 ESC/POS 封装的上层协议 目前市面上的 99% 的票据打印机都支持 ESC/POS 协议,是票据打印机的事实标准。...ESC/POS 打印命令集是 ESC 打印控制命令的简化版本,现在大多数票据打印都采用 ESC/POS 指令集。...而我们的图片大多数都是灰度或者彩色图片,因此我们需要进行二值化处理。在 ESC/POS 协议中,打印图片的指令如下: ?

2.1K61

有赞零售智能硬件体系搭建历程

1.3 体系搭建介绍 有赞零售对接的设备种类繁多,由于篇幅内容有限,接下来会着重讲解打印机、 POS 、电子秤、副屏相关技术的设计细节。...二、硬件库拆解重构 零售设备库 sdk 早期设计类似于全家桶,聚合了打印机、电子秤、POS 机等所有设备,扩展性比较差,随着新机器的适配接入,造成 sdk 频繁升级,稳定性无法保证。...ESC / POS 协议字节数据输入到打印机驱动中,这里涉及到写的场景。...2.2 硬件库实现细节 2.2.1 打印机 零售对接的打印设备非常多,包括蓝牙、usb 、http 等,原有的设计中打印机与 pos 、电子秤功能聚合在一起,功能耦合严重,不同的硬件开发人员都会改动设备库的代码...(打印模板中{{ key }}与打印内容的 value 映射匹配起来),jsCore 解析 html 样式,翻译成相应的打印协议( ESC / POS 、三方打印机自定义打印协议等) 3.1.4 JsCore

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    斑马打印机打印不出来字怎么解决

    在条码打印软件中制作标签的时候,有的时候标签内容比较多,可能不注意就在标签上或者数据源中添加了一个空对象,也没预览,就直接连接斑马打印机进行打印了。...最后发现,点击打印之后,斑马打印机没反应,咨询是怎么回来,今天我们一起来看下有关条码打印软件连接斑马打印机打印不出来字的解决方法。 1.打开条码打印软件,在软件中设置一下纸张和标签的尺寸。...按照以上方法在标签上添加文字信息。不变的信息可以”手动输入”,可变的信息可以用”数据库导入”,具体操作可以参考:中琅条码打印软件excel数据库导入的注意事项。...(检查空对象的时候,可以在数据源中一个一个的检查,也可以用排除法进行检查,先选中你要排除的文字用CTRLX剪切)。...以上就是在条码打印软件中制作标签并连接打印机进行打印的操作步骤;在软件中制作好标签之后,一定要点击软件上方工具栏中的”打印预览”,看下预览效果,预览正常的话,在连接斑马打印机(或者其他打印机)进行打印。

    1.9K10

    微信小程序蓝牙打印太慢可以这样解决

    需要手机端操作,那样就不能使用厂家驱动来使用了,之前没有接触过打印指令,看了现在商用打印机指令常用的esc/pos挺头疼的,cpcl还好一点不过也需要重新研究。...放弃蓝牙,迎接云打印基于上面原因,蓝牙打印的方法就被放弃了。然后接触到jolimarX的云打印机,支持很多种类的接口,总体来说支持html、esc、json、云模版、图片、pdf等等。...特别是云模版的接口,只需要在开发平台上注册账号,然后在云模版新建一个模版,根据自己需要设计模版。图片设计好模版后点击右上角“打印预览”。图片在预览页底部可以看到,模版 ID、JSON。...图片中 Json 便是调用“打印云模版”中 bill_content 对应的数据如:{"barCode":"20190117001","Kdate":"2019-01-17","billno":"820190117001...8000 台,CLP180 打印机 5000 台"}其中bill_content 内容多,需以 form-data 方式传参。

    1.5K30

    如何精准地用打印机在贺卡或邀请函上打字

    那么如何打印以便让所有文字的内容都对应到贺卡或邀请函的正确空位上,还是有些难度的。 本文将教你如何在毫米级别将文字精准地打印到贺卡或邀请函上。...现在,我们要么调整文档方向,要么调整打印机纸张方向。为了之后对齐文字的直观,我们当然应该选择调整打印机的纸张方向。...以后对于同款打印机,你可以不用再尝试了,直接使用这一次的调试结果: 记住这次邀请函在纸张中的位置和方向 记住这次 Word 文档中邀请函的位置 精确对齐邀请函中的占位符 现在,准备好你的尺子,把邀请函放到打印纸上...▲ 在 Word 文档中创建文本框 现在,将用来试验的邀请函放入打印机中,我们即将直接在邀请函中进行试验。...不断在刚刚已经打印过的邀请函上打印试错,直至所有文本框都得到满意的位置: ▲ 所有的文本框都到达满意的位置 打印最终邀请函 由于你所有的文本框已对齐,所以即便你再拿一个全新的邀请函放入打印机打印,也依然能得到精确对齐的打印版邀请函

    13.7K10

    MultiRow发现之旅(七)- 套打和打印

    ,通过设置这个属性下面的一些子属性,你可以定制在输出到打印机时的打印设置。...PagingMode 这个属性指出了在打印的过程中如何分页。...也就是说,纸张的样式,以及格子之类的固定格式已经存在纸张上面,只需要打印变化的内容就行了,这样可以加快打印速度,节约打印耗材,目前很多票据都是采用这种打印模式。...可以看出,只有蓝色的内容被打印了,这种模式下,你往打印机里面放入一张有固定格式的票据,比如下面的样子: ? 然后启动打印功能,一张成型的发票就被打印出来了。 ? 7....还可以在调用Print()方法时,指出要不要弹出打印机设置对话框,更改打印机的设置: ?

    2.2K80

    实战分享:Swift 蓝牙打印机数据排版

    前言 蓝牙打印机打印排版 本次使用的是 Swift 5 构建,蓝牙连接打印机打印 功能包含: 两列排版 两列左右侧标题自动换行 三列排版 四列排版 四列排版自动换行 根据打印纸的大小(50mm、80mm...) 在需要使用的 VC 中 // 变量生命 var manager:BaseManager?...self.printerBtn.isEnabled = true print("连接成功") self.tableView.reloadData() } } // 接收搜索到打印机的回调...(水平定位) let ER:UInt8 = 13 //归位键 let FF:UInt8 = 12 //走纸控制(打印并回到标准模式(在页模式下) ) 打印机支持的指令 如何知道打印机支持的指令...本项目中有一个 打印机编程手册>> 这里面记录了,打印机支持的所有格式,可以自行查看。

    1.6K10

    vim 文本编辑器

    a) 【u】撤销最近的更改 b) 【#u】撤销之前多次更改 c) 【U】撤销光标落在这行后所有此行的更改 d) 【按Ctrl + r】重做最后的...放弃所有修改,并打开源文件 注意:在默认模式的退出方法 【ZZ】保存并退出 【ZQ】不保存退出 附加: 【:!...COMMAND】读入命令的输出 【r filename】读取filename文件内容到当前文件中 【w filename】将当前文件内容下入filename文件中 4.2.4.2 地址定界(可以用于查找和替换等...【r file】在指定位置插入指定文件中的所有内容。 例如:【:/pat1/,/pat2/r ....查看是否设置了ruler,在.vimrc中,使用set命令设置的选项都可以通过这个命令查看 【:scriptnames】查看vim脚本文件的位置,比如.vimrc文件,语法文件及plugin等

    4.9K10

    MAC电脑使用

    DOCK栏:包括Finder、前往应用程序、创建所有应用程序的快捷方式(google浏览器等)、系统偏好设置、堆栈、废纸篓等。...卸载应用程序就是点进去,右键移动到废纸篓就好了 4了解了Finder开始菜单,你不得不了解任务管理器,也就是alt+command+esc组合键,它可以强制退出你关闭不了的应用程序。...5接着就是系统偏好设置的内容了,它相当于Windows当中的控制面板,打开DOCK栏下方的『系统偏好设置』,搜索框显示的内容可以了解一下,输入中文会对应打开相应项目。...DOCK栏的设置可方便之后电脑的操作。调整大小,置于屏幕上的位置,隐藏DOCK栏等操作对于以后使用习惯会有很大的帮助。 5打印机与扫描仪。打印机分有线和无线配置。...有线需要接入USB接口,无线需要在相同WIFI的情况下操作。办公区域共享打印机,操作很方便。扫描仪扫描文件很快、很方便,大家配置了带有扫描仪的打印机就知道了。 6网络。 1,有线网络不能用。

    1K00

    立象Argox OX- 100条码机如何打印标签

    立象Argox OX- 100编辑打印的工作是在条码打印软件中进行的,利用条码软件左侧的标签排版工具,在画布上对标签内容进行设计及排版,然后再连接立象Argox OX- 100条码机进行打印。...可以根据你的打印机型号,在网上搜一下对应的出厂设置及自校验方法。 2.打开条码打印软件,点击新建,在文档设置-打印机纸张及类型中,打印机选择Argox OX- 100条码机。...在纸张中,自定义设置一下纸张尺寸。然后在布局中设置一下行数列数、页面边距、在标签尺寸及间距中设置一下标签的尺寸及间距、再不设置起始位置及方向、画布及边线的情况下,点击完成。...最终效果如图所示: 标签制作好之后,可以直接连接打印机进行打印,如果出现打印偏移或者打印不全的情况,你可以检查下软件里面的纸张设置是否跟打印机首选项里面的纸张设置保持一致,如果打印机首选项里面的纸张设置没有你需求的尺寸...如果在打印机首选项中标签尺寸设置的和条码软件一致,还是打印偏移的话,可能是打印机没有正确识别纸张,建议你做一下打印机自校验(根据你的打印机型号,在网上搜一下对应的校验方法,做打印机自校验)。

    3.2K20

    【总结】vim命令使用总结,该来的还是躲不掉啊晕

    比如按下i,该模式下用户输入的任何字符都被作为文件的内容保存起来,如果想返回 Normal 模式,请按ESC键。...Ctrl + d - 在插入模式下,向左缩进,宽度由 shiftwidth 控制 Ctrl + n - 在插入模式下,在光标之前插入自动补全的下一个匹配项 Ctrl + p - 在插入模式下,在光标之前插入自动补全的上一个匹配项...Esc - 退出插入模式 编辑文本 r - 替换当前字符 R - 在 ESC 按下之前,替换多个字符 J - 将下一行合并到当前行, 并在两部分文本之间插入一个空格 gJ - 将下一行合并到当前行,...从光标位置到行末 p - 在光标后粘贴 P - 在光标前粘贴 gp - 在光标后粘贴并把光标定位于粘贴的文本之后 gP - 在光标前粘贴并把光标定位于粘贴的文本之后 dd - 剪切当前行 2dd - 剪切...(例如 :tabdo q 关闭所有标签) 寄存器 :reg[isters] - 显示寄存器内容 "xy - 复制内容到寄存器 x "xp - 粘贴寄存器 x 中的内容 "+y - 复制内容到系统剪贴板寄存器

    1.6K21

    【Linux】vi和vim编辑器——常用命令大全

    , 是 linux 中 最经典 的文本编辑器 vi 的 核心设计思想 让程序员的手指始终保持在键盘的 核心区域 , 就能完成所有的编辑操作 vi 的特点 只能是编辑 文本内容...按 ESC 可以放弃选中 , 返回到 命令模式 可视模式下, 可以和 移动命令 连用, 例如 ggVG 能够 选中所有的内容 8.4.4 撤销和恢复撤销(保命指令) 在学习编辑命令之前,...之前缓冲区中的内容会被替换 ....注意 vi 中的 文本缓冲区 和 系统的 剪切板 不是同一个 所以在其他软件中使用 Ctrl + C 复制的内容 , 不能再 vi 中通过 p 命令粘贴 可以在 编辑模式...按下 ESC 返回 命令模式 , 返回之后 vi 就会把 第 2 、 3 两步的操作重复 10 次 提示: 正常开发时, 在 进入编辑模式之前,不要按数字

    2.4K21

    打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机

    如果一台电脑同时连接多个打印机,而且每个打印机使用的纸张大小各不相同(比如:票据打印钱用的小票专用张,办公打印机用的是A4标准纸),在处理打印类的需求时,如果不用代码干预,用户必须每次打印时,都必须在弹出窗口里...页面设置”的所有功能,而且“ PageSetupDialog”类在实际使用中发现还有一个容易误导的地方) 一、打印机设置(PrintDialog) 示例代码: using System; using System.Drawing.Printing...A5的大小(注意:PageSize的设置,在界面上看不出效果,但是关闭对话框后,返回值的PageSize里会起作用) 三、RDLC报表用代码指定打印机、纸张大小、打印份数 rdlc报表的预览控制ReportViewer...public void SetPageSettings(PageSettings pageSettings);  利用这些信息,就足够控制RDLC的打印机和纸张大小了,比如要指定某台打印机打印,可以这么做...以及PrinterSettings中的关键信息,持久化存储起来(比如:用xml或DB),下次再进入该业务界面时,根据存储的配置信息还原相关的设置,这样用户只要设置一次,以后就不用每次手动切换打印机或纸张类型了

    4.3K70

    快递100接口请求格式错误解决方法(2)

    此处的“电子面单数量”不是指快递100管理后台接口调用单量,而是客户的月结账号在快递公司处的电子面单号数量,此报错的内容需要快递公司网点处理。 快递100上支持快递公司合作账号开通吗?...解决方法: 1、胶辊、打印头传感器的位置用酒精清洁一下。 2、校准纸张,长按打印机按键5秒,指示灯闪烁两次,松手,打印机进入纸张校准模式。...打开微信扫描云打印机底部二维码,进入“云打印机管家”小程序进行配网操作,在操作之前请确保手机已正常打开手机蓝牙。 如何打印设备码?...云打印机正常联网之后,长按按键3秒,LED闪烁一次,打印出一张打印机设备码。 如何校准纸张? 云打印机正常通电之后,长按按键5秒,LED闪烁两次,云打印机进行校准功能。 如何暂停打印作业?...打印机在打印中,单击按键会打印暂停。此时电源指示灯呈蓝色闪烁。只要再单击按键,打印作业就回复正常。

    2.5K00

    惠普p1106打印测试页_惠普p1566打印机说明书

    05惠普P1566打印设置与性能测试 ●惠普P1566打印设置与性能测试 ★惠普P1566主要的打印设置 在打印速度测试开始之前,我们先来了解一下惠普P1566的打印设置。...2.软件测试: 连续输出方面,我们采用了PrintBench软件测试,打印12页几乎空白的文件,在测试中该软件在输出纸张的页眉处打印4个点(CMYK四色),这种情况下打印机引擎近乎空转,因此记录得到的结果也更接近于每款产品所能达到的最快输出速度...PrintBench软件测试结果 在PrintBench软件测试结果数据中,首页输出时间约为6.86秒,打印速度能够达到22 PPM(页/分),同样与标称打印速度相接近令人满意,满足了商务用户对于输出速度的要求...虽然智慧操控在短时内降低,甚至不产生待机休眠的功耗,但是否能大幅降低月打印能耗还不好妄加断言。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.3K20

    在得力条码打印机中怎么设置双排标签纸

    据我了解,得力好像是一款常见的打印机品牌,在打印机中设置双排标签的话需要一个专业的标签设计软件,然后在标签设计软件中进行排版及添加内容。...具体设置双排标签纸的操作方法如下: 1.打开标签设计软件,点击”新建”,在文档设置-打印机及纸张类型中,选择你需要的打印机,然后根据你的纸张类型,在纸张中自定义设置一下纸张的尺寸。...标签信息添加完成之后,可以点击软件上方工具栏中的”打印预览”,看预览效果,预览没有问题的话,可以直接连接得力打印机进行打印。...以上就是在标签设计软件中设置双排的操作步骤,如果你使用的条码打印软件也是你的打印机(得力条码软件)自带,无法设置双排的话,可以考虑下载条码标签打印软件,进行试用。...然后在配合你的打印机,很容易就解决了双排设置的问题

    5.4K10

    C# 打印PDF文档的10种方法

    前言 操作PDF文档时,打印是常见的需求之一。针对不同的打印需求,可分多种情况来进行,如设置静默打印、指定打印页码范围和打印纸张大小、双面打印、黑白打印等等。...在程序中添加引用Spire.Pdf.dll,dll文件在安装路径下的bin文件夹中。 2、通过Nuget网站下载。..."); //使用默认打印机打印文档所有页面 doc.Print(); 2、使用虚拟打印机(Microsoft XPS Document Writer)打印PDF //加载PDF文档 PdfDocument...pdf.PrintSettings.SelectSplitPageLayout(); pdf.Print() 10、自定义纸张大小打印PDF 1、使用虚拟打印机自定义纸张大小打印:保持原来页面大小打印到...//打印 doc.Print(); 2、使用真实打印机设置纸盒中的纸张大小打印:将原来A4的文档打印成A3的大小。

    3.8K50

    PHP设计模式——单例模式

    目的是使患者有条理的等候,以便减轻前台人员的人工登记工作。 让我们来看看我们能提供怎样的帮助。 在进行任何代码设计之前,我们需要了解诊所的状况和能力。该诊所只有一台物理打印机。...} public function printTicket() { if ($this->isPaperOut) { // 装在更多的纸张到打印机...如果纸张用完,它将自动加载更多纸张(假设有可能)。 看来我们也需要检查墨水的状态。...} public function printTicket() { if ($this->isPaperOut) { // 装在更多的纸张到打印机...由于诊所中只有一台物理打印机,因此如果我们偶然创建了两个TicketPrinter类实例,将会发生什么情况。因为他们使用的是同一台共享打印机,所以肯定会引起很大的问题。

    55410

    Ttp-244标签机打印时怎么选择热敏纸

    这里跟大家解释下出现这种情况的原因。 打印机不同,支持的纸张类型也是不一样的,有的打印机对热敏和热转印的标签纸都是支持的,有的打印机只支持热敏或者热转印。...这里建议大家打印机支持什么类型的纸张,就买什么样的标签纸。如果你的打印机两种方式都是支持的话,在标签制作软件中制作好标签之后,需要根据你的标签纸设置打印方式。...可以在页面设置中自定义设置纸张尺寸。 在”卷”中可以设置纸张的方式及类型。如果我们的打印机支持的是热敏纸,则在纸张设置方式中设置纸张为”热敏”,反之则设置热转印。...设置好之后,在卷-类型中,这是标签纸的类型,如:有间距的标签(设置标签高度)、有标记的标签、继续、使用当前打印机设置等,都是可以根据自己的需求自定义进行设置的。...以上就是在Ttp-244标签机中设置热敏、热转印的操作步骤,如果你的标签预览正常的情况下,打印不出来,你可以检查下你的打印机和标签纸类型是否一致,如果不一致的情况下,建议你打印机什么品牌的,就买对应的标签纸即可

    2.7K40

    论vim使用之瞎扯淡

    ndd 删除n行 剪切, 复制, 粘贴 操作 说明 yy 复制当前行 nyy 复制 n 行 yw 复制当前单词 y$ 复制, 从光标位置到行末 p 在光标后粘贴 P 在光标前粘贴 dd 剪切当前行...ndd 剪切 2 行 dw 剪切当前单词 D 剪切, 从光标位置到行末 d$ 剪切, 从光标位置到行末 (同D) x 剪切当前字符 分屏和标签 操作 说明 :e file 新建缓冲区打开 filename...:bnext or :bn 切换到下个缓冲区 :bprev or :bp 切换到上个缓冲区 :bd 关闭缓冲区 :ls 列出所有打开的缓冲区 :sp file 新建缓冲区打开 filename 并水平分割窗口...由于有些按键在vim的非insert模式中几乎是永远不会用到的(例如逗号,),因此我们可以在快捷键的命令前统一加上这个键,方便好记又不会冲突。这个键就称为Leader键。...'ascenator/L9', {'name': 'newL9'} " 你的所有插件需要在下面这行之前 call vundle#end() " 必须 filetype plugin

    94930
    领券