文档章节

小票打印 自动切纸 走纸

xtvjvj
 xtvjvj
发布于 2015/05/15 00:23
字数 382
阅读 113
收藏 0

第一点: 

const uint GENERIC_READ =0x80000000;
        const uint GENERIC_WRITE = 0x40000000;      
        const int OPEN_EXISTING = 3;
        private FileStream fs=null;
        IntPtr iHandle;
        [DllImport("kernel32.dll")]
        public static extern IntPtr CreateFileA(string lpFileName, uint dwDesiredAccess, int dwShareMode, int lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, int hTemplateFile);

        [DllImport("kernel32.dll")]
        private static extern bool WriteFile(
        int hFile,
        byte[] lpBuffer,
        int nNumberOfBytesToWrite,
        ref   int lpNumberOfBytesWritten,
        ref   int i
        );

        [DllImport("kernel32.dll")]
        private static extern bool CloseHandle(IntPtr hObject);

第二点:

 protected void imageButton1_Click(object sender, ImageClickEventArgs e)
        {
           
            ShopCart mycart = CartCtroller.GetCart();          
           iHandle = CreateFileA("LPT1", GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
           if (iHandle.ToInt32() == -1)
           {
               Jscript.AjaxRunJs(this.Page, "alert('没有连接打印机或者打印机端口不是LPT1!')");
               return;
           }
           else
           {              
               fs = new FileStream(iHandle, FileAccess.ReadWrite);
              
               //for (int i = 0; i < 5; i++)
               //{
               //    fs.WriteByte(0x0A); //走纸(忘记了可能是这个)
               //}
               //StreamReader sr = new StreamReader(fs);   //读数据;   
               //StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);  //些数据;   
             
               if (mycart.Count == 0)
               {
                   Jscript.AjaxRunJs(this.Page, "alert('请先购买产品!')");
                   return;
               }   

               byte[] buf = new byte[500];
               char ESC = (char)(27);
               char GS = (char)(29);                                                                                                                  
               char LF = (char)(10);
           

     //读出数据
               StringBuilder SEND = new StringBuilder();
               //SEND.Append(LF.ToString());     
               char c1 = (char)60;
               char c2 = (char)0;
               SEND.Append(GS.ToString() + "L" + c1.ToString() + c2.ToString());
               SEND.Append(ESC + "D" + Convert.ToChar(25) + Convert.ToChar(30) + Convert.ToChar(0));
               string dt = DateTime.Now.ToString();
               string mingcheng = "产品名称:";
               string miaoshu = "产品描述:";
               string shuliang = "购买数量:";
               string zhi = "支";
               SEND.Append(LF.ToString());    
               SEND.Append("欢 迎 光 临 - 上海金福");
               SEND.Append("\r\n");
               SEND.Append("-------------------------------");
               SEND.Append(LF.ToString());
               SEND.Append("购买时间:"+dt);
               SEND.Append("\r\n");
               SEND.Append("-------------------------------");
               SEND.Append(LF.ToString());
               SEND.Append(LF.ToString());
               for (int i = 0; i < mycart.Count; i++)
               {
                   modelArrayProduct temp = (modelArrayProduct)mycart[i];                 
                   SEND.Append(mingcheng + temp.T_name);
                   SEND.Append("\r\n"); 
                   SEND.Append(miaoshu +   temp.T_miaoshu);
                   SEND.Append("\r\n");   
                   SEND.Append(shuliang + temp.T_shuliang.ToString() + zhi);
                   SEND.Append("\r\n");   
                   SEND.Append("-------------------------------");
                   SEND.Append(LF.ToString());                    
               }            

               //走纸
               SEND.Append(LF.ToString());
               SEND.Append(LF.ToString());              
               SEND.Append(LF.ToString());
               SEND.Append(LF.ToString());
               SEND.Append(GS + "V" + Convert.ToChar(1));
             
                //字符类型转换
               Encoding utf8 = Encoding.GetEncoding(65001);
               Encoding gb2312 = Encoding.GetEncoding("gb2312");//Encoding.Default ,936
               byte[] tempa = utf8.GetBytes(SEND.ToString());

               buf = Encoding.Convert(utf8, gb2312, tempa);
                                       
              fs.Write(buf, 0, buf.Length);
                          fs.Close();                        
           }
                 CloseHandle(iHandle);     

        }


本文转载自:

xtvjvj
粉丝 1
博文 12
码字总数 1905
作品 0
郑州
部门经理
私信 提问
加载中

评论(1)

春暖花又开
春暖花又开
哎 看不懂
手持便携迷你热敏打印机如何打印照片?? 口袋打印机联网教程

我想这个世界上有很多美好的时光是值得我们留住的,而照片是留住回忆和时光的最好方法,那一张张照片记录了你青春的懵懂,少女时代的青涩,为人母后的成熟优雅,可爱宝宝的成长点滴,愉快的亲...

mstching
2018/04/16
0
0
收银台小票部金额识别

1、收银台打印小票纸,通过android系统,然后android识别出小票里的金额。 2、要求识别准确率达99%; 3、要求可以处理文字,图片识别; 4、需要开发者提供demo无加密源码及文档;...

zb1489227315857
2017/07/17
25
10
S2JH系列分享:基于JasperReport+Applet的“可编辑”(套打)打印报表功能

S2JH项目首页:http://www.oschina.net/p/s2jh,集结最新主流时尚开源技术的面向企业级Web应用的基础开发框架,提供一个J2EE相关主流开源技术架构整合及一些企业应用基础通用功能和组件的设计...

EntDIY
2014/05/21
2.7K
10
AI 时代,你和纸张的关系是什么?

家里有太多纸类文件了,每次收拾完之后,不到两天又积攒了一大堆,几乎每天都有从邮局寄过来的信件:医院的账单,电费,煤气费,信用卡账单,各种宣传单,促销的优惠券等等。如果不及时整理,...

不会停的蜗牛
2018/11/01
0
0
请教一个关于java调用EPSON指令的问题

现在正在做一个用JAVA调用EPSON指令的打印功能,但不知道指令在JAVA里如何传入。 拿切纸为例: 全切纸命令 格式:  ASCII: ESC  i      十进制:  27 105    十六进制:  1B 6...

赵国鑫
2013/11/05
856
1

没有更多内容

加载失败,请刷新页面

加载更多

Rust:最小化窗口后 CPU占用率高 (winit,glutin,imgui-rust)

最近试着用 imgui-rust 绘制界面,发现窗口最小化后CPU占用会增大。 查询的资料如下: https://github.com/rust-windowing/winit/issues/783 https://github.com/ocornut/imgui/issues/1151 ...

reter
26分钟前
8
0
cloud-zuul路由网关

九、zuul路由网关 概述 1.1 能干嘛 路由、过滤 路由基本配置 路由访问映射规则 十、springCloud config分布式配置中心

榴莲黑芝麻糊
27分钟前
12
0
Circuit Breaker模式

Circuit Breaker模式会处理一些需要一定时间来重连远程服务和远端资源的错误。该模式可以提高一个应用的稳定性和弹性。 问题 在类似于云的分布式环境中,当一个应用需要执行一些访问远程资源...

mskk
39分钟前
16
0
写论文之前的准备都有哪些?干货来了!

原文链接:https://www.lwfdy.com/archives/144.html 之前跟大家谈了许多有关于初稿修改以及写作事项需要注意的问题,那么今天我们来说一说,在写之前,我们需要做哪些准备呢,为了做到下笔如...

辅导员
46分钟前
11
0
idea快捷键

Alt + Enter 引入类 Ctrl + O 查看我们继承的类或者接口中的方法,以及我们要实现的方法 Ctrl + Alt + b 查看接口实现类中方法(就是我们使用接口编程时,在调用实现类方法处直接Ctrl+鼠标左...

行者终成事
54分钟前
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部