小弟现做一POS系统现在需要驱动钱箱TM-210PD驱动钱箱指令:
QBASIC下编程 
LPRINT CHR$(27);CHR$(112);CHR(0);CHR(50);CHR$(200)
有人知道怎么改为在C#下的代码吗?

解决方案 »

  1.   

    c#中使用PrintDocument对象来完成打印.
      

  2.   

    声明一个PRINTDOCUMTNET,
    直接PRINT给打印机瞎说的~~试试
      

  3.   

    首先声明,这是俺刚在网上找到了,手里没有210打印机,等一段时间才能测这个代码。
    你可以试试,行不行回个话哈
    我写了一个类,希望能帮到你
    #region 声明
    using System;
    using System.Runtime.InteropServices;
    using System.IO;
    #endregion
    namespace LongRuan
    {
    /// <summary>
    /// POSPrinter 的摘要说明。
    /// </summary>
    public class POSPrinter
    {
    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()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    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)
    {
    return "没有连接打印机或者打印机端口不是LPT1";
    }
    else
    {
    FileStream fs = new FileStream(iHandle, FileAccess.ReadWrite);
    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.Default); //写数据
    sw.WriteLine(str);
    //开钱箱
    //sw.WriteLine(Chr(&H1B) & Chr(70) & Chr(0) & Chr(20) & Chr(&HA0))
    sw.Close();
    fs.Close();
    return "";
    }
    }
    }
    }--------------------------------------------------------------------------------
    调用方法:
    LongRuan.POSPrinter prn = new LongRuan.POSPrinter("LPT1");
    string str =prn.PrintLine("写端口测试!");
    if(str !="")
    MessageBox.Show(str);