这种要用 report 一类的,而其中有打印功能。至于打印机类型不用管。只要是 Windows 环境的打印机设备就能作为打印输出
应该不需要报表类的吧,找了几天资料应该可以实现的。调用kernel32的CreateFile接口是可以的,目前还在探索中
@尾随前行:既然是CSharp那么应该是Windows系统,那么就有打印机设备可供CSharp访问。如果从串口访问做起的话很累的
@capital2012: 嗯, 目前是按串口思路去做的,因为需求是直接设置端口就能打印,不要选择打印机啥的,小票机打印也不需要设置模板,固定格式打印了 。。。
我觉得不通的厂商可能数据格式不一样把。个人认为可以这样,看下设计模式中的策略模式,给不通的设备编写不同的代码,只要保证接口一致就好,改起来比较方便,结构也清晰。
你好呀, 你说的这个方法好像不是我想要的解决方案。
我在网上搜了下,可以使用kernel32来打开lpt1或者com3端口来进行打印,不需要知道打印机型号,但是更具体的操作我就不知道了, 比如某行字体加粗,设置字体代下,裁纸,开钱箱等等。。
这种情况完全可以走虚拟打印,在程序中只需要给定打印机名称即可,可以选择使用FastReport
。
你好, 能具体说下使用FastReport怎么实现吗 ?
我这边的场景需求是在收银机上,不用设置打印模板, 我自己固定好打印格式就好了。
现在知道的是用户用的lpt1还是com3打印,其他的都不知道
@尾随前行: 参考https://github.com/FastReports/FastReport
C# 自带有打印方法,不用去调用厂商的底层协议
c#自带的打印是需要调起打印窗口的吧? 这种的话不可行哎。
@尾随前行: 不用调起窗口,直接打印就行了,我做的打印条码就直接打印的
@jqw2009: 请问你有对应的相关博文或者代码片段能借鉴下吗 ?