首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • c# 如何控制针式打印机走纸 [已结贴,结贴人:jackeyrain]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:01:26 楼主
    我现在需要打印榜单,采用的是epson lq300k,由于榜单大小问题,所以打印前最好让其进行一次退纸进纸过程,这样打印出来的位置就比较好,可是在程序中如何向打印机发送指令让它操作呢?
    我找了一个星期的论坛了 大概发现是采用esc指令方式,于是采用api函数,

    const int OPEN_EXISTING = 3;
            string prnPort = "LPT1";
            [DllImport("kernel32.dll", CharSet = CharSet.Auto)]
            private static extern IntPtr CreateFile(string lpFileName,
            int dwDesiredAccess,
            int dwShareMode,
            int lpSecurityAttributes,
            int dwCreationDisposition,
            int dwFlagsAndAttributes,
            int hTemplateFile);

            public POSPrinter(string prnPort)
            {
                this.prnPort = prnPort;//打印机端口 
            }
            public string PrintLine(string str)
            {

                IntPtr iHandle = CreateFile(prnPort, 0x40000000, 0, 0, OPEN_EXISTING, 0, 0);
                if (iHandle.ToInt32() == -1)
                {
                    FileStream fs = new FileStream(iHandle, FileAccess.ReadWrite);
                    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default);  //写数据 
                      sw.write("ESC @");
                    sw.Write("ESC J");
                    sw.Close();
                    fs.Close();
                    return "";
                }
    可是打印机没有任何反应,哪怕我是打印普通的问题不是esc指令,打印机也没有反应,请问问题出在哪里?是我发送的问题吗?还是我连接出了问题?
    第二个问题:esc指令中 进纸 退纸的指令是什么?
    恳求高手了,请写出较详细的代码。
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:02:151楼 得分:0
    自己顶一下,不要沉沦了……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:02:252楼 得分:0
    自己顶一下,不要沉沦了……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:04:393楼 得分:0
    错了个地方
    if (iHandle.ToInt32() == -1)
    应该是if (!iHandle.ToInt32() == -1)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:09:534楼 得分:0
    marks
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 11:19:335楼 得分:0
    不能沉沦啊……
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 12:34:216楼 得分:0
    继续UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 13:16:577楼 得分:0
    加油啊  加油啊 UP UP
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 16:05:148楼 得分:80
    指令我又不过在家里,下班后再给你看看把,你给我留的邮箱我发给你好了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 09:17:289楼 得分:0
    谢谢楼上的  我的邮箱是  jackeyrain@163.com
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 10:13:2110楼 得分:0
    发给你了,注意查收,昨晚你没留邮箱,所以没给你,这个是我今天找的,更详细的晚上发给你
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 13:49:3611楼 得分:0
    啊,谢谢收到了,是指令条目,谢谢
    那你有c# 或者其他.net语言的代码范例吗?我想实现通过电脑控制
    我用vb发送指令可以使打印机动作,可是我想在.net语言环境下实现,采用我原先的代码没有办法,你有这方面的代码吗?
    万分感谢
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 14:28:2612楼 得分:20
    C#的代码我没有哦,但是我知道控制打印机和串口发数据是一样的,只是控制打印机发的是打印机的指令,如果你会用C#写串口,你也就会控制打印机了,最主要是知道这些指令怎么用就行了,呵呵...
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 16:09:0813楼 得分:0
    可以和epson公司联系一下。他们可以免费提供一本开发手册的,里面有开发指令的。以前VB的可以直接发送指令到串口打印机器上去的。还可以控制字体的大小。C#就不知道了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 19:35:4514楼 得分:0
    指令发给你了,LZ注意查收,最后祝你好运....呵呵
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 19:42:2115楼 得分:0
    顶一下,LZ可能发一份指定给我吗?
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved