当前位置: 首页 > 知识库问答 >
问题:

javascript - 别笑菜:固定格式的针式票据或文件打印具体是怎么实现的?

蒙化
2023-11-20

请问:
那种三联四联一组的打印纸,提前印刷出固定格式范本,留有空位,塞到针式打印机后,相应字段打印到相应位置,是怎么实现的?

假设现在有 Vue+PHP 开发的系统,从系统读出数据后,放入固定格式的打印纸,是怎么把相应字段数据打印到相应位置的?

共有3个答案

闾丘康安
2023-11-20

这类票据套打,看别人说的比较多的是Lodop。但是Lodop如果没有申请授权码的话,实现静默打印不太方便。然后模板的调节也不是很方便,之前了解过但是没有仔细用,你可以了解一下。
1)官网地址:https://www.lodop.net/index.html。
2)参考文章:https://www.lodop.net/blogs/Blog008.html
3)参考文章:https://juejin.cn/post/6844904088132403207?searchId=202308191...

还有一个hiprint
1)官网地址:http://hiprint.io/
2)参考文章:http://hiprint.io/demo/list/bill
2)vue版本:https://juejin.cn/user/1662117311414462/posts

丌官积厚
2023-11-20

说说我以前的解决方案
目标是珠宝店的质保单价格标签
其中质保单内容大概就是

“尊敬的_____,于____在_____

购买____商品xxxxxxx

最开始就是用html模拟一下这个布局,然后尝试调用print()直接打印到纸上,当然第一次打印可能错位得离谱,但是经过一点点调试还是能差不多对准位置。
不过弊端就是总不能每次打印都调试代码吧?每个门店的质保单内容和需要填充的数据位置都不一样。
所以就有了第一个解决方案

  • 写一个可通过配置内容坐标的编辑器
    其实就是门店用户可以设置每一个内容块的上下左右px来慢慢调试位置,但是工作量也是不小,用户对px没有概念
  • 升级版,可视化拖拽的编辑器
    在上一个版本的基础上,不用那么晦涩难懂的坐标控制,直接做一个可以拖拽的编辑器页面,自行通过鼠标调整位置,然后保存为模板让后端保存起来。用户可以针对不同质保单制作不同的模板,按需使用。只需要编辑一次即可。

注:不同打印纸张对打印内容的位置有影响,在window.print()打印时会让选择纸张尺寸,这里得按你的单子大小来选尺寸,不然就像一开时有的门店用A4的打印尺寸打印质保单,导致内容错位严重且难以调试

蒋高超
2023-11-20

主要看打印机的协议,我之前做过一款打印快递单子的打印机的网页端,这款打印机有自定义的协议,按照协议描述,把内容拼接到指定的 XML 字符串模板里面,通过 webSocket 发送给打印机,打印机自己会完成排版。
所以如果明确了需要适配的打印机机型的话,你可以问打印机厂商或者商家找找有没有打印机的开发文档,有文档并且明确怎么打的话再好不过了。
没有的话那恐怕只能提供大致位置的初始值了,最多也就是提供一个调参界面,让用户自己去调整。

 类似资料:
  • 问题内容: 我正在尝试找到一种易于理解的JavaScript数据结构调试方法。 我有一个相当大和复杂的数据结构存储在JS中,我需要编写一些代码来对其进行操作。为了弄清楚我在做什么和哪里出了问题,我真正需要的是能够完整地查看数据结构,并在我通过UI进行更改时对其进行更新。 除了找到一种将JavaScript数据结构转储到人类可读的字符串的好方法外,我还能处理所有这些事情。JSON可以,但是确实需要很

  • 本文向大家介绍javaScript 连接打印机,打印小票的实例,包括了javaScript 连接打印机,打印小票的实例的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇javaScript 连接打印机,打印小票的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 想问下这种样式怎么实现

  • 本文向大家介绍搜索文件用什么命令? 格式是怎么样的?相关面试题,主要包含被问及搜索文件用什么命令? 格式是怎么样的?时的应答技巧和注意事项,需要的朋友参考一下 答案: find <指定目录> <指定条件> <指定动作> whereis 加参数与文件名 locate 只加文件名 find 直接搜索磁盘,较慢。 find / -name "string*"

  • 问题内容: 我试图用Python写出xml文件。问题在于它们总是在一行中生成。我希望能够轻松地引用它们,因此,如果我真的很希望能够将文件干净地写出。 这就是我得到的: 这是我想看到的: 问题答案: 您可以使用from的功能来做到这一点: 想法是将您的字符串打印出来,使用minidom进行解析,然后使用函数再次将其转换为XML 。 资料来源:http : //pymotw.com/2/xml/etr

  • 问题内容: 我从供应商那里得到了一个文件,每行有115个固定宽度的字段。如何将文件解析为115个字段,以便可以在代码中使用它们? 我首先想到的是只是为了让常数为每场像和使用。这看起来很丑,所以我很好奇这样做的更好方法。谷歌搜索打开的两个图书馆似乎都没有更好的选择。 问题答案: 我将使用像flatworm这样的平面文件解析器,而不是重新发明轮子:它具有简洁的API,易于使用,具有不错的错误处理能力和