<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      happyhippy

      這個世界的問題在于聰明人充滿疑惑,而傻子們堅信不疑。--羅素

      打印連續紙張的時候,經常會遇到需要自動進退紙的功能,譬如下列場景:
      1. 打印完一個小標;(自動進紙)
      2. 用戶撕斷打印出來的小標;
      3. (自動退紙,紙張歸位) 接著打印下一個小標;

       

      下列代碼在愛普生LQ 730k打印機上測試通過:

         1: //使用示例
         2: new PrintDirect("PrinterName").PrintESC(1);//打印后進紙
         3: new PrintDirect("PrinterName").PrintESC(0);//打印前退紙

       

      源代碼:

         1:  
         2:     [StructLayout(LayoutKind.Sequential)]
         3:     public struct DOCINFO
         4:     {
         5:         [MarshalAs(UnmanagedType.LPWStr)]
         6:         public string pDocName;
         7:         [MarshalAs(UnmanagedType.LPWStr)]
         8:         public string pOutputFile;
         9:         [MarshalAs(UnmanagedType.LPWStr)]
        10:         public string pDataType;
        11:     }
        12:  
        13:     public class PrintDirect
        14:     {
        15:         private string PrintPort { get; set; }
        16:         public PrintDirect(string port)
        17:         {
        18:             this.PrintPort = port;
        19:         }
        20:  
        21:         [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
        22:         public static extern long OpenPrinter(string pPrinterName, ref IntPtr phPrinter, int pDefault);
        23:  
        24:         [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
        25:         public static extern long StartDocPrinter(IntPtr hPrinter, int Level, ref DOCINFO pDocInfo);
        26:  
        27:         [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
        28:         public static extern long StartPagePrinter(IntPtr hPrinter);
        29:  
        30:         [DllImport("winspool.drv", CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
        31:         public static extern long WritePrinter(IntPtr hPrinter, string data, int buf, ref int pcWritten);
        32:  
        33:         [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
        34:         public static extern long EndPagePrinter(IntPtr hPrinter);
        35:  
        36:         [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
        37:         public static extern long EndDocPrinter(IntPtr hPrinter);
        38:  
        39:         [DllImport("winspool.drv", CharSet = CharSet.Unicode, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
        40:         public static extern long ClosePrinter(IntPtr hPrinter);
        41:  
        42:         public void PrintESC(int type)
        43:         {
        44:             System.IntPtr lhPrinter = new System.IntPtr();
        45:             DOCINFO di = new DOCINFO();
        46:             int pcWritten = 0;
        47:             di.pDocName = "進退紙Document";
        48:             di.pDataType = "RAW";
        49:  
        50:             try
        51:             {
        52:                 PrintDirect.OpenPrinter(this.PrintPort, ref lhPrinter, 0);
        53:                 if (lhPrinter == IntPtr.Zero)
        54:                 {
        55:                     MessageBox.Show(string.Format("沒有連接打印機或者打印機端口不是{0}!", this.PrintPort),
        56:                         "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
        57:                     return;
        58:                 }
        59:                 PrintDirect.StartDocPrinter(lhPrinter, 1, ref di);
        60:                 PrintDirect.StartPagePrinter(lhPrinter);
        61:                 string send = string.Empty;
        62:                 for (int j = 0; j < 3; j++)
        63:                 {
        64:                     switch (type)
        65:                     {
        66:                         case 0:
        67:                             send = "" + (char)(27) + (char)(64) + (char)(27) + 'j' + (char)(180);//退紙
        68:                             break;
        69:                         case 1:
        70:                             send = "" + (char)(27) + (char)(64) + (char)(27) + 'J' + (char)(180);//進紙
        71:                             break;
        72:                         case 2:
        73:                             send = "" + (char)(27) + (char)(64) + (char)(12);   //換行(未測試)
        74:                             break;
        75:                         default:
        76:                             send = "" + (char)(27) + (char)(64) + (char)(12);   //換行(未測試)
        77:                             break;
        78:                     }
        79:                     byte[] buf = new byte[80];
        80:                     for (int i = 0; i < send.Length; i++)
        81:                     {
        82:                         buf[i] = (byte)send[i];
        83:                     }
        84:                     PrintDirect.WritePrinter(lhPrinter, send, send.Length, ref pcWritten);
        85:                 }
        86:             }
        87:             catch (Exception e)
        88:             {
        89:                 MessageBox.Show(e.Message);
        90:             }
        91:             finally
        92:             {
        93:                 if (lhPrinter != IntPtr.Zero)
        94:                 {
        95:                     PrintDirect.EndPagePrinter(lhPrinter);
        96:                     PrintDirect.EndDocPrinter(lhPrinter);
        97:                     PrintDirect.ClosePrinter(lhPrinter);
        98:                 }
        99:             }
       100:         }
       101:     }

       

      posted on 2011-06-26 00:00  Silent Void  閱讀(4061)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 亚洲一区在线成人av| 国内精品伊人久久久久影院对白| 日韩av在线一区二区三区| 中文字幕人妻色偷偷久久| 丰满高跟丝袜老熟女久久| 色综合天天综合天天综| 大又大又粗又硬又爽少妇毛片 | a男人的天堂久久a毛片| 色综合久久中文综合网| 精品国产久一区二区三区| 男女猛烈激情xx00免费视频| 久久久亚洲欧洲日产国码606| 免费AV片在线观看网址| 偷窥盗摄国产在线视频| 做暖暖视频在线看片免费| 敖汉旗| 又湿又紧又大又爽A视频男| 插插无码视频大全不卡网站| 久久精品国产午夜福利伦理| 国产在线观看网址不卡一区| 国产一区二区不卡在线| 日韩免费无码人妻波多野| 国产成人精品一区二区无| 依依成人精品视频在线观看| 成年女人片免费视频播放A| 亚洲av熟女国产一二三| 国产精品午夜福利在线观看| 日韩a∨精品日韩在线观看| 粗壮挺进人妻水蜜桃成熟| 小污女小欲女导航| 亚洲男女羞羞无遮挡久久丫| 亚洲国产精品久久电影欧美 | 2021国产精品视频网站| 亚洲卡1卡2卡新区网站| 亚洲av成人精品日韩一区| 亚洲中文字幕av天堂| 国产美女在线观看大长腿| 深夜av免费在线观看| 亚洲成在人线在线播放无码| 国产精品熟妇视频国产偷人| 神马视频|