public static bool Print(int orderId, string orderTime)
{
bool b = true; string cut = ((char)29).ToString() + ((char)86).ToString() + ((char)1).ToString() + ((char)49).ToString();//发送切纸指令
//byte[] byte_cut = System.Text.Encoding.Default.GetBytes(cut);
//string font = ((char)1D).ToString() + ((char)21).ToString() + ((char)01).ToString()+ ((char)10).ToString() ;//文字大小 byte[] fonts = new byte[] { 27, 82, 0 };//1D 21 选择字体
byte[] temp = new byte[] { 29, 33, 17 };//1D 21 选择字体大小,0x01放大一倍 byte[] bty_tmp = new byte[] { 29, 86, 1, 49 };//切纸
byte[] Internal = System.Text.Encoding.Default.GetBytes(((char)27).ToString() + ((char)64).ToString());//初始化打印机 System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
System.Net.Sockets.NetworkStream stream = null;
Int32 port = 9100;
//string ipPrint = ConfigurationManager.ConnectionStrings["printIP"].ConnectionString;//获取打印机名称
string ipPrint = "192.168.0.77";
//string ipPrint =Common.Comm.readXml("/xml/setting.xml", "printIP");//读取xml的IP
try
{
//client.Connect("192.168.1.77", port);
client.Connect(ipPrint, port);
stream = client.GetStream();
//是否支持写入
if (!stream.CanWrite)
{
b = false;
}
Byte[] data; //按菜品类型和时间、单号、点菜员、订单点菜备注 分组查询
string sql_query = "select tname,typeid,dname,uname,d.addtime,d.remark,count(fname)fnum"+
" from "+
" p_orderDetailInfo d,p_orderinfo o, p_deskinfo desk, p_foodinfo f, p_foodType t,users u"+
" where d.orderid=o.id and d.foodid=f.id and o.deskid=desk.id and f.typeid=t.id and u.id=d.userid"+
" and o.id=" + orderId + " and d.addtime='" + orderTime + "' " +
" group by tname,typeid,d.remark,dname,uname,d.addtime "; string sql_detail = ""; DataTable dt = DbSqlHelper.ExecuteDataSet(CommandType.Text, sql_query).Tables[0];
DataTable dt_detail = null; if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
//当前该订单的菜品信息
sql_detail = "select fname,count(fname) fnum,f.id ,userid,d.remark from "+
"p_orderDetailInfo d,p_foodinfo f "+
"where d.foodid=f.id and TypeID=" + dt.Rows[i]["typeid"] + " and d.addtime='" + orderTime + "' and orderid=" + orderId + " group by fname,f.id ,userid,d.remark"; dt_detail = DbSqlHelper.ExecuteDataSet(CommandType.Text, sql_detail).Tables[0];
stream.Write(Internal, 0, Internal.Length);
stream.Write(fonts, 0, fonts.Length);//设置字体
stream.Write(temp, 0, temp.Length);//设置字体大小--关键 string outPut = "-" + dt.Rows[i]["tname"] + "-\n" + dt.Rows[i]["dname"] + "\t点菜员 - " + dt.Rows[i]["uname"] + "\n--------------------\n"; for (int j = 0; j < dt_detail.Rows.Count; j++)
{
outPut += "\n\n"+dt_detail.Rows[j]["fname"] + "\t" + dt_detail.Rows[j]["fnum"];
if (dt_detail.Rows[j]["remark"].ToString() != "")
{
outPut += " * " + dt_detail.Rows[j]["remark"] + "\n\n";//菜品【口味】备注
}
UpdateStatus(orderId.ToString(), dt_detail.Rows[j]["id"].ToString(), orderTime);//修改该打印状态
} outPut += "\n\n" + DateTime.Now + "\n\n\n\n\n\n";
data = data = System.Text.Encoding.Default.GetBytes(outPut);
stream.Write(data, 0, data.Length);//输出文字
outPut = ""; // 一个分类打印完成后清空。切纸 //stream.Write(Internal, 0, Internal.Length);
// data = System.Text.Encoding.Default.GetBytes(cut);
//stream.Write(data, 0, data.Length); stream.Write(bty_tmp, 0, bty_tmp.Length);
//bty_tmp = new byte[] { 29, 86, 1, 49 }; } //data = System.Text.Encoding.Default.GetBytes(cut);
//stream.Write(bty_tmp, 0, bty_tmp.Length);
//stream.Write(bty_tmp, 0, bty_tmp.Length);
}
//-----------------
}
catch
{
//打印机缺纸或者纸匣打开时,不会出现异常,不用特殊代码判断,数据不会丢失.
b = false; }
finally
{
stream.Close();
stream.Dispose();
client.Close();
}
return b;
}

  

2年前的餐饮项目,在一些饭店已经运行了1年多了。

适用于热敏刀片打印机,

运用在超市、饭店 等各种需要小票打印的场合。

打印完后,会自动切纸。

这里有一个排版的问题,对齐不是很严格。

http://www.cnblogs.com/chenqilong/archive/2013/04/18/3028358.html

c#调用刀片小票打印机的更多相关文章

  1. 小票打印机指令集封装(支持EPSON指令)

    最近写了一些关于小票打印机的程序,不难,但是记录下来,作为足迹吧. 现在市场上的小票机基本都支持EPSON指令.指令集文档 对指令集进行了自己的封装,方便以后调用: package aheiziUti ...

  2. C#并口热敏小票打印机打印位图包括芯片的写入

    下面是打印所需要调用的代码: class LptControl { private string LptStr = "lpt1"; public LptControl(string ...

  3. C# Lpt 并口热敏小票打印机打印位图

    class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { L ...

  4. 转:C#并口热敏小票打印机打印位图

    最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: class LptControl { private s ...

  5. C# 热敏打印机 小票打印机 打印图片

    最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了. 这是DEMO的窗体: 下面是打印所需要调用的代码: 因为我们这里主要是打印条形码和二维码,所以以条形码和二维 ...

  6. C#并口热敏小票打印机打印位图

    原文:C#并口热敏小票打印机打印位图 最近一直在研究并口小票打印机打印图片问题,这也是第一次和硬件打交道,不过还好,最终成功了.   这是DEMO的窗体:   下面是打印所需要调用的代码: class ...

  7. 让 Odoo POS 支持廉价小票打印机

    为了测试 Odoo 在实际业务中的实施,我们开了一家(马上要开第二家分店)猪肉店.由于预算有限,在实施 Odoo PoS 的时候采购了一台价格为 85 元的爱宝热敏打印机,结果连上 Odoo Posb ...

  8. C#调用小票打印机

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...

  9. C#Winfrom系统打印机调用/设置默认打印机

    实现如下效果: 实现方式如下: using System;using System.Drawing.Printing;using System.Runtime.InteropServices;usin ...

随机推荐

  1. Django安装配置

    django2.0基础 一.安装与项目的创建 1.安装 pip install django 2.查看版本 python -m django --version 3.创建项目 django-admin ...

  2. Chrome插件之ModHeader

    一.ModHeader是什么 ModHeader顾名思义就是让我们可以自定义HTTP请求头或者是重写响应头,包括新增请求头/响应头或者覆盖Chrome浏览器设置的请求头的默认值,同时还可以根据URL ...

  3. WPF UI 开源专贴

    1.ReactiveUI https://github.com/reactiveui/ReactiveUI http://www.reactiveui.net A MVVM framework tha ...

  4. centos7 部署 docker、shipyard

    =============================================== 2019/4/9_第3次修改                       ccb_warlock 更新说 ...

  5. 盒子模型与flex模型

    一.盒子模型 注意:两个相邻元素的margin值是重叠在一起的,取当中最大的那个值. 水平方向auto, margin:0 auto;会居中    但是margin-left:auto;,元素会到最右 ...

  6. 测试开发之Django——No2.Django的安装以及项目创建

    开发平台:Mac Python版本:3.7 Django版本:2.0.5 一.Django的安装 1.pip安装 输入命令pip install Django==2.0.5 说明:不指定版本,则安装的 ...

  7. mysql 用init-connect+binlog实现用户操作追踪做access的ip的log记录

    在MYSQL中,每个连接都会先执行init-connect,进行连接的初始化.我们可以在这里获取用户的登录名称和thread的ID值.然后配合binlog,就可以追踪到每个操作语句的操作时间,操作人等 ...

  8. java Foreach与迭代器

    foreach语法主要用于数组,但是它也可以用于Collection对象,下面是一个示例 package object; //: holding/ForEachCollections.java // ...

  9. fullcalendar插件日程管理

    日程管理-fullcalendar插件用法   前言 本文分享fullcalendar用法,最后面提供代码下载 说到日程管理,基于JQuery的插件FullCalendar当之无愧,完整的API稳定和 ...

  10. H5的简介

    1.H5的诞生 2.介绍 HTML5 将成为 HTML.XHTML 以及 HTML DOM 的新标准. HTML5 是 W3C 与 WHATWG 合作的结果. WHATWG 致力于 web 表单和应用 ...