现在做了一个web,需要把信息直接通过某个打印机打印出来请问asp.net是不是有什么通讯类可以用?
我有一个疑问是:
打印的逻辑代码是在服务器端运行的,用户端怎么确定是哪个打印机?

解决方案 »

  1.   

    你JS的网页打印吧
    <script language=javascript>
    window.print();
    </script>
      

  2.   

    兄弟理解错了,我不是要把网页打印出来,因为是条码打印机(斑马),而是需要:
    1.找到指定的打印机;
    2.通过lpt1口向此打印机传数据过去现在第二步我知道怎么弄,就是不知道怎么样让web程序找到用户端本地的打印机
      

  3.   

    在c/s模式下我是直接通过以下类跟打印机的lpt1口通讯的,但是当时也没有想到选择或者远程打印机的问题class LPTControl
        {
            [StructLayout(LayoutKind.Sequential)]
            private struct OVERLAPPED
            {
                int Internal;
                int InternalHigh;
                int Offset;
                int OffSetHigh;
                int hEvent;
            }        [DllImport("kernel32.dll")]
            private static extern int CreateFile(
            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,
            out int lpNumberOfBytesWritten,
            out OVERLAPPED lpOverlapped
            );
            [DllImport("kernel32.dll")]
            private static extern bool CloseHandle(
            int hObject
            );        private int iHandle;
            public bool Open()
            {
                iHandle = CreateFile("lpt1", 0x40000000, 0, 0, 3, 0, 0);
                if (iHandle != -1)
                {
                    return true;
                }
                else
                {
                    return false;
                }        }
            public bool Write(String Mystring)
            {
                if (iHandle != -1)
                {
                    int i;
                    OVERLAPPED x;
                    byte[] mybyte = System.Text.Encoding.Default.GetBytes(Mystring);
                    return WriteFile(iHandle, mybyte, mybyte.Length, out i, out x);
                }
                else
                {
                    throw new Exception("The LPT port doesn't open!");
                }
            }
            public bool Close()
            {
                return CloseHandle(iHandle);
            }
      

  4.   

    public string setType
    {
    get{ return type;}
    set
    {
    if (value.Length>20) 
    type=value.Substring(1,20);
    else
    type=value;}
    }
    public string setPublisher
    {
    get{ return publishOperator;}
    set
    {
    if (value.Length>20) 
    publishOperator=value.Substring(1,20);
    else
    publishOperator=value;}
    }
      

  5.   

    打印的逻辑都在服务器端,应该不行。远程 lpt1 打印?
    不是自己的电脑的话,可以说:不行。我绝对不会打开那么大的权限。
      
    --------------------------------------------------------------
    程序,犹如人生。
      

  6.   

    让我来描述一下现在的情况:
    我做了一个条码打印的web程序,仓库方面运行客户端用来生成条码并且打印出来,条码打印机在他们那边,使用什么方法可以让那个打印机打印出来条码?p.s补充一下斑马机打印原理: 打印机识别一个string变量作为命令,所以要使他工作需要通过lpt1口向他传一个字符变量到它的内存中.不过这个我已经可以搞定
      

  7.   

    一看就是一个速成的程序员。自己写一个activex来操作并口,然后通过js调用该activex就ok了