{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/05/03/impression-imprimer-des-codes-a-barres-dune-page-web-vers-une-imprimante-zebra-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2019/05/03/impression-imprimer-des-codes-a-barres-dune-page-web-vers-une-imprimante-zebra-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/05/03/impression-imprimer-des-codes-a-barres-dune-page-web-vers-une-imprimante-zebra-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"impression &#8211; Imprimer des codes à barres d&#39;une page Web vers une imprimante Zebra\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-05-02T23:18:18+00:00","modified_at":"2019-05-02T23:18:18+00:00","word_count":1198,"reading_time_seconds":360,"summary":"essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost. /// websocket en utilisant le système; using System.Net; using System.Net.WebSockets; using System.Text; using System.Threading; Serveur d&#39;espace de noms {     programme de classe              WebsocketServer statique public ws;         static void Main (chaîne[] args)                      ws [&hellip;]","summary_points":["essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost.","/// websocket\nen utilisant le système;\nusing System.Net;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;\n\nServeur d&#39;espace de noms\n{\n    programme de classe\n    \n        WebsocketServer statique public ws;\n        static void Main (chaîne[] args)\n        \n            ws = new Server.WebsocketServer ();\n            ws.LogMessage + = Ws_LogMessage;\n            ws.Start (&quot;http: // localhost: 2645 / service /&quot;);\n            Console.WriteLine (&quot;Appuyez sur n&#39;importe quelle touche pour quitter ...&quot;);\n            Console.ReadKey ();\n        \n\n        void statique privé Ws_LogMessage (expéditeur de l&#39;objet, WebsocketServer.LogMessageEventArgs e)\n        \n            Console.WriteLine (e.Message);\n        \n    \n\n    classe publique WebsocketServer\n    {\n        événement public OnLogMessage LogMessage;\n        délégué public void OnLogMessage (Expéditeur d&#39;objet, LogMessageEventArgs e);\n        Classe publique LogMessageEventArgs: EventArgs\n        \n            chaîne publique Message get; ensemble; \n            public LogMessageEventArgs (chaîne Message)\n            \n                this.Message = Message;\n            \n        \n\n        bool public started = false;\n        public async void Start (chaîne httpListenerPrefix)\n        \n            HttpListener httpListener = new HttpListener ();\n            httpListener.Prefixes.Add (httpListenerPrefix);\n            httpListener.Start ();\n            LogMessage (this, new LogMessageEventArgs (&quot;Listening ...&quot;));\n            commencé = vrai;\n\n            alors que (commencé)\n            \n                HttpListenerContext httpListenerContext = wait httpListener.GetContextAsync ();\n                if (httpListenerContext.Request.IsWebSocketRequest)\n                \n                    ProcessRequest (httpListenerContext);\n                \n                autre\n                \n                    httpListenerContext.Response.StatusCode = 400;\n                    httpListenerContext.Response.Close ();\n                    LogMessage (this, new LogMessageEventArgs (&quot;Closed ...&quot;));\n                \n            \n        \n\n        public void Stop ()\n        \n            commencé = faux;\n        \n        ProcessRequest (HttpListenerContext httpListenerContext)\n        {\n            WebSocketContext webSocketContext = null;\n\n            essayer\n            \n                webSocketContext = wait httpListenerContext.AcceptWebSocketAsync (subProtocol: null);\n                LogMessage (this, nouveau LogMessageEventArgs (&quot;Connecté&quot;));\n            \n            catch (Exception e)\n            \n                httpListenerContext.Response.StatusCode = 500;\n                httpListenerContext.Response.Close ();\n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0&quot;, e)));\n                revenir;\n            \n\n            WebSocket webSocket = webSocketContext.WebSocket;\n            essayer\n            {\n\n\n                while (webSocket.State == WebSocketState.Open)\n                {\n\n                    ArraySegment buffer = new ArraySegment(nouvel octet[8192])\n\n                    WebSocketReceiveResult resultat = null;\n\n                    using (var ms = new System.IO.MemoryStream ())\n                    {\n                        faire\n                        \n                            result = wait webSocket.ReceiveAsync (tampon, CancellationToken.None);\n                            ms.Write (buffer.Array, buffer.Offset, result.Count);\n                        \n                        while (!","result.EndOfMessage);\n\n                        ms.Seek (0, System.IO.SeekOrigin.Begin);\n\n                        if (result.MessageType == WebSocketMessageType.Text)\n                        {\n                            using (var reader = new System.IO.StreamReader (ms, Encoding.UTF8))\n                            \n                                var r = System.Text.Encoding.UTF8.GetString (ms.ToArray ());\n                                var t = Newtonsoft.Json.JsonConvert.DeserializeObject(r);\n                                bool valid = true;\n                                octet[] toBytes = Encoding.UTF8.GetBytes (&quot;&quot;); ;\n\n                                si (t!","= null)\n                                \n                                    if (t.printer.Trim () == string.Empty)\n                                    \n                                        var imprimantes = &quot;&quot;;\n                                        foreach (var imp dans System.Drawing.Printing.PrinterSettings.InstalledPrinters)\n                                        \n                                            imprimantes + = imp + &quot; n&quot;;\n                                        \n\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur l&#39;impression  nLas Impresoras disponibles:&quot; + imprimantes);\n                                        valide = faux;\n                                    \n                                    if (t.name.Trim () == string.Empty)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur le document&quot;);\n                                        valide = faux;\n                                    \n                                    if (t.code == null)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune donnée n&#39;est affichée à la suite de l&#39;impression&quot;);\n                                        valide = faux;\n                                    \n\n\n                                    si (valide)\n                                    \n                                        print.RawPrinter.SendStringToPrinter (t.printer, t.code, t.name);\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Correcto ...&quot;);\n                                    \n\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                                autre\n                                \n                                    toBytes = Encoding.UTF8.GetBytes (&quot;Erreur ...&quot;);\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                            \n                        }\n                    }\n                }\n            }\n            catch (Exception e)\n            \n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0  nLinea: 1&quot;, e, e.StackTrace))));\n            \n            enfin\n            \n                si (webSocket!"],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"71e6c0086b0ff1fa2a5812d5bb875090","plain_text":"essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost.\n/// websocket\nen utilisant le système;\nusing System.Net;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;\n\nServeur d&#39;espace de noms\n{\n    programme de classe\n    \n        WebsocketServer statique public ws;\n        static void Main (chaîne[] args)\n        \n            ws = new Server.WebsocketServer ();\n            ws.LogMessage + = Ws_LogMessage;\n            ws.Start (&quot;http: // localhost: 2645 / service /&quot;);\n            Console.WriteLine (&quot;Appuyez sur n&#39;importe quelle touche pour quitter ...&quot;);\n            Console.ReadKey ();\n        \n\n        void statique privé Ws_LogMessage (expéditeur de l&#39;objet, WebsocketServer.LogMessageEventArgs e)\n        \n            Console.WriteLine (e.Message);\n        \n    \n\n    classe publique WebsocketServer\n    {\n        événement public OnLogMessage LogMessage;\n        délégué public void OnLogMessage (Expéditeur d&#39;objet, LogMessageEventArgs e);\n        Classe publique LogMessageEventArgs: EventArgs\n        \n            chaîne publique Message get; ensemble; \n            public LogMessageEventArgs (chaîne Message)\n            \n                this.Message = Message;\n            \n        \n\n        bool public started = false;\n        public async void Start (chaîne httpListenerPrefix)\n        \n            HttpListener httpListener = new HttpListener ();\n            httpListener.Prefixes.Add (httpListenerPrefix);\n            httpListener.Start ();\n            LogMessage (this, new LogMessageEventArgs (&quot;Listening ...&quot;));\n            commencé = vrai;\n\n            alors que (commencé)\n            \n                HttpListenerContext httpListenerContext = wait httpListener.GetContextAsync ();\n                if (httpListenerContext.Request.IsWebSocketRequest)\n                \n                    ProcessRequest (httpListenerContext);\n                \n                autre\n                \n                    httpListenerContext.Response.StatusCode = 400;\n                    httpListenerContext.Response.Close ();\n                    LogMessage (this, new LogMessageEventArgs (&quot;Closed ...&quot;));\n                \n            \n        \n\n        public void Stop ()\n        \n            commencé = faux;\n        \n        ProcessRequest (HttpListenerContext httpListenerContext)\n        {\n            WebSocketContext webSocketContext = null;\n\n            essayer\n            \n                webSocketContext = wait httpListenerContext.AcceptWebSocketAsync (subProtocol: null);\n                LogMessage (this, nouveau LogMessageEventArgs (&quot;Connecté&quot;));\n            \n            catch (Exception e)\n            \n                httpListenerContext.Response.StatusCode = 500;\n                httpListenerContext.Response.Close ();\n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0&quot;, e)));\n                revenir;\n            \n\n            WebSocket webSocket = webSocketContext.WebSocket;\n            essayer\n            {\n\n\n                while (webSocket.State == WebSocketState.Open)\n                {\n\n                    ArraySegment buffer = new ArraySegment(nouvel octet[8192])\n\n                    WebSocketReceiveResult resultat = null;\n\n                    using (var ms = new System.IO.MemoryStream ())\n                    {\n                        faire\n                        \n                            result = wait webSocket.ReceiveAsync (tampon, CancellationToken.None);\n                            ms.Write (buffer.Array, buffer.Offset, result.Count);\n                        \n                        while (! result.EndOfMessage);\n\n                        ms.Seek (0, System.IO.SeekOrigin.Begin);\n\n                        if (result.MessageType == WebSocketMessageType.Text)\n                        {\n                            using (var reader = new System.IO.StreamReader (ms, Encoding.UTF8))\n                            \n                                var r = System.Text.Encoding.UTF8.GetString (ms.ToArray ());\n                                var t = Newtonsoft.Json.JsonConvert.DeserializeObject(r);\n                                bool valid = true;\n                                octet[] toBytes = Encoding.UTF8.GetBytes (&quot;&quot;); ;\n\n                                si (t! = null)\n                                \n                                    if (t.printer.Trim () == string.Empty)\n                                    \n                                        var imprimantes = &quot;&quot;;\n                                        foreach (var imp dans System.Drawing.Printing.PrinterSettings.InstalledPrinters)\n                                        \n                                            imprimantes + = imp + &quot; n&quot;;\n                                        \n\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur l&#39;impression  nLas Impresoras disponibles:&quot; + imprimantes);\n                                        valide = faux;\n                                    \n                                    if (t.name.Trim () == string.Empty)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur le document&quot;);\n                                        valide = faux;\n                                    \n                                    if (t.code == null)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune donnée n&#39;est affichée à la suite de l&#39;impression&quot;);\n                                        valide = faux;\n                                    \n\n\n                                    si (valide)\n                                    \n                                        print.RawPrinter.SendStringToPrinter (t.printer, t.code, t.name);\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Correcto ...&quot;);\n                                    \n\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                                autre\n                                \n                                    toBytes = Encoding.UTF8.GetBytes (&quot;Erreur ...&quot;);\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                            \n                        }\n                    }\n                }\n            }\n            catch (Exception e)\n            \n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0  nLinea: 1&quot;, e, e.StackTrace))));\n            \n            enfin\n            \n                si (webSocket! = null)\n                    webSocket.Dispose ();\n            \n        }\n    }\n\n    classe publique Datos\n    \n        nom de chaîne publique get; ensemble; \n        code de chaîne publique get; ensemble; \n        chaîne publique imprimante get; ensemble;  = &quot;&quot;;\n    \n}\n\nimpression brute:\nusing Microsoft.VisualBasic;\nen utilisant le système;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing System.IO;\n\nprint de l&#39;espace de noms\n{\n    Classe publique RawPrinter\n    {\n        // Déclarations de structure et d&#39;API:\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\n        classe publique DOCINFOA\n        \n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDocName;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pOutputFile;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDataType;\n        \n        [DllImport(\"winspool.Drv\", EntryPoint = \"OpenPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool OpenPrinter ([MarshalAs(UnmanagedType.LPStr)]\nchaîne szPrinter, réf IntPtr hPriknter, IntPtr pd);\n\n        [DllImport(\"winspool.Drv\", EntryPoint = \"ClosePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool ClosePrinter (IntPtr hPrinter);\n\n        [DllImport(\"winspool.Drv\", EntryPoint = \"StartDocPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool StartDocPrinter (IntPtr hPrinter, niveau Int32, [In(), MarshalAs(UnmanagedType.LPStruct)]\nDOCINFOA di);\n\n        [DllImport(\"winspool.Drv\", EntryPoint = \"EndDocPrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool EndDocPrinter (IntPtr hPrinter);\n\n        [DllImport(\"winspool.Drv\", EntryPoint = \"StartPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool StartPagePrinter (IntPtr hPrinter);\n\n        [DllImport(\"winspool.Drv\", EntryPoint = \"EndPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool EndPagePrinter (IntPtr hPrinter);\n\n        [DllImport(\"winspool.Drv\", EntryPoint = \"WritePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool WritePrinter (IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, ref Int32 dwWritten);\n\n        // SendBytesToPrinter ()\n        // Lorsque la fonction reçoit un nom d&#39;imprimante et un tableau non géré\n        // d&#39;octets, la fonction envoie ces octets à la file d&#39;attente d&#39;impression.\n        // Renvoie true en cas de succès, false en cas d&#39;échec.\n        public bool statique SendBytesToPrinter (chaîne szPrinterName, pbits IntPtr, dwCount Int32, chaîne DocName = &quot;&quot;)\n        \n            Int32 dwError = 0;\n            Int32 dwWritten = 0;\n            IntPtr hPrinter = new IntPtr (0);\n            DOCINFOA di = new DOCINFOA ();\n            bool bSuccess = false;\n            // Suppose l&#39;échec sauf si vous y parvenez.\n            di.pDocName = string.IsNullOrEmpty (DocName)? &quot;Mon document RAW C # .NET&quot;: DocName;\n            di.pDataType = &quot;RAW&quot;;\n\n            // Ouvre l&#39;imprimante.\n            if (OpenPrinter (szPrinterName.Normalize (), réf hPrinter, IntPtr.Zero))\n            \n                // Démarrer un document.\n                if (StartDocPrinter (hPrinter, 1, di))\n                \n                    // Démarrer une page.\n                    if (StartPagePrinter (hPrinter))\n                    \n                        // Ecrivez vos octets.\n                        bSuccess = WritePrinter (hPrinter, pBytes, dwCount, ref dwWritten);\n                        EndPagePrinter (hPrinter);\n                    \n                    EndDocPrinter (hPrinter);\n                \n                ClosePrinter (hPrinter);\n            \n            // Si vous n&#39;avez pas réussi, GetLastError peut donner plus d&#39;informations\n            // pourquoi pas.\n            if (bSuccess == false)\n            \n                dwError = Marshal.GetLastWin32Error ();\n            \n            retourner bSuccess;\n        \n\n        public bool statique SendFileToPrinter (string szPrinterName, string szFileName)\n        \n            // ouvre le fichier.\n            FileStream fs = new FileStream (szFileName, FileMode.Open);\n            // Crée un BinaryReader sur le fichier.\n            BinaryReader br = new BinaryReader (fs);\n            // Dimette un tableau d&#39;octets assez grand pour contenir le contenu du fichier.\n            Octet[] octets = nouvel octet[fs.Length];\n            bool bSuccess = false;\n            // Votre pointeur non géré.\n            IntPtr pUnmanagedBytes = new IntPtr (0);\n            int nLength = 0;\n\n            nLength = Convert.ToInt32 (fs.Length);\n            // Lit le contenu du fichier dans le tableau.\n            octets = br.ReadBytes (nLength);\n            // Alloue de la mémoire non gérée pour ces octets.\n            pUnmanagedBytes = Marshal.AllocCoTaskMem (nLength);\n            // Copiez le tableau d&#39;octets gérés dans le tableau non géré.\n            Marshal.Copy (octets, 0, pUnmanagedBytes, nLength);\n            // Envoie les octets non gérés à l&#39;imprimante.\n            bSuccess = SendBytesToPrinter (szPrinterName, pUnmanagedBytes, nLength);\n            // Libère la mémoire non gérée que vous avez allouée précédemment.\n            Marshal.FreeCoTaskMem (pUnmanagedBytes);\n            retourner bSuccess;\n        \n        public bool statique SendStringToPrinter (string szPrinterName, string szString, string DocName = &quot;&quot;)\n        \n            IntPtr pBytes = default (IntPtr);\n            Int32 dwCount = default (Int32);\n            // Combien de caractères y a-t-il dans la chaîne?\n            dwCount = szString.Length;\n            // Supposons que l&#39;imprimante attend du texte ANSI, puis convertit\n            // la chaîne en texte ANSI.\n            pBytes = Marshal.StringToCoTaskMemAnsi (szString);\n            // Envoie la chaîne ANSI convertie à l&#39;imprimante.\n            SendBytesToPrinter (szPrinterName, pBytes, dwCount, DocName);\n            Marshal.FreeCoTaskMem (pBytes);\n            retourne vrai;\n        \n    }\n}\n\npage html:\n\n\n\n\n\n\n\n\n    \n        \n\n        \n\n        Enviar\n    \n\n\n    \n    \n\n\n\n\npuis envoyez un code ZPL à partir de HTML (écrivez ceci sur du code textarea);\n^ XA\n^ FO200,50 ^ BY2 ^ B3N, N, 80, Y, N ^ FD0123456789 ^ FS\n^ PQ1 ^ XZ\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost.\n/// websocket\nen utilisant le système;\nusing System.Net;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;","Serveur d&#39;espace de noms\n{\n    programme de classe\n    \n        WebsocketServer statique public ws;\n        static void Main (chaîne[] args)\n        \n            ws = new Server.WebsocketServer ();\n            ws.LogMessage + = Ws_LogMessage;\n            ws.Start (&quot;http: // localhost: 2645 / service /&quot;);\n            Console.WriteLine (&quot;Appuyez sur n&#39;importe quelle touche pour quitter ...&quot;);\n            Console.ReadKey ();\n        ","        void statique privé Ws_LogMessage (expéditeur de l&#39;objet, WebsocketServer.LogMessageEventArgs e)\n        \n            Console.WriteLine (e.Message);\n        \n    ","    classe publique WebsocketServer\n    {\n        événement public OnLogMessage LogMessage;\n        délégué public void OnLogMessage (Expéditeur d&#39;objet, LogMessageEventArgs e);\n        Classe publique LogMessageEventArgs: EventArgs\n        \n            chaîne publique Message get; ensemble; \n            public LogMessageEventArgs (chaîne Message)\n            \n                this.Message = Message;\n            \n        ","        bool public started = false;\n        public async void Start (chaîne httpListenerPrefix)\n        \n            HttpListener httpListener = new HttpListener ();\n            httpListener.Prefixes.Add (httpListenerPrefix);\n            httpListener.Start ();\n            LogMessage (this, new LogMessageEventArgs (&quot;Listening ...&quot;));\n            commencé = vrai;","            alors que (commencé)\n            \n                HttpListenerContext httpListenerContext = wait httpListener.GetContextAsync ();\n                if (httpListenerContext.Request.IsWebSocketRequest)\n                \n                    ProcessRequest (httpListenerContext);\n                \n                autre\n                \n                    httpListenerContext.Response.StatusCode = 400;\n                    httpListenerContext.Response.Close ();\n                    LogMessage (this, new LogMessageEventArgs (&quot;Closed ...&quot;));\n                \n            \n        ","        public void Stop ()\n        \n            commencé = faux;\n        \n        ProcessRequest (HttpListenerContext httpListenerContext)\n        {\n            WebSocketContext webSocketContext = null;","            essayer\n            \n                webSocketContext = wait httpListenerContext.AcceptWebSocketAsync (subProtocol: null);\n                LogMessage (this, nouveau LogMessageEventArgs (&quot;Connecté&quot;));\n            \n            catch (Exception e)\n            \n                httpListenerContext.Response.StatusCode = 500;\n                httpListenerContext.Response.Close ();\n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0&quot;, e)));\n                revenir;\n            ","            WebSocket webSocket = webSocketContext.WebSocket;\n            essayer\n            {","                while (webSocket.State == WebSocketState.Open)\n                {","                    ArraySegment buffer = new ArraySegment(nouvel octet[8192])","                    WebSocketReceiveResult resultat = null;","                    using (var ms = new System.IO.MemoryStream ())\n                    {\n                        faire\n                        \n                            result = wait webSocket.ReceiveAsync (tampon, CancellationToken.None);\n                            ms.Write (buffer.Array, buffer.Offset, result.Count);\n                        \n                        while (! result.EndOfMessage);","                        ms.Seek (0, System.IO.SeekOrigin.Begin);","                        if (result.MessageType == WebSocketMessageType.Text)\n                        {\n                            using (var reader = new System.IO.StreamReader (ms, Encoding.UTF8))\n                            \n                                var r = System.Text.Encoding.UTF8.GetString (ms.ToArray ());\n                                var t = Newtonsoft.Json.JsonConvert.DeserializeObject(r);\n                                bool valid = true;\n                                octet[] toBytes = Encoding.UTF8.GetBytes (&quot;&quot;); ;","                                si (t! = null)\n                                \n                                    if (t.printer.Trim () == string.Empty)\n                                    \n                                        var imprimantes = &quot;&quot;;\n                                        foreach (var imp dans System.Drawing.Printing.PrinterSettings.InstalledPrinters)\n                                        \n                                            imprimantes + = imp + &quot; n&quot;;\n                                        ","                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur l&#39;impression  nLas Impresoras disponibles:&quot; + imprimantes);\n                                        valide = faux;\n                                    \n                                    if (t.name.Trim () == string.Empty)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur le document&quot;);\n                                        valide = faux;\n                                    \n                                    if (t.code == null)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune donnée n&#39;est affichée à la suite de l&#39;impression&quot;);\n                                        valide = faux;\n                                    ","                                    si (valide)\n                                    \n                                        print.RawPrinter.SendStringToPrinter (t.printer, t.code, t.name);\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Correcto ...&quot;);\n                                    ","                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                                autre\n                                \n                                    toBytes = Encoding.UTF8.GetBytes (&quot;Erreur ...&quot;);\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                            \n                        }\n                    }\n                }\n            }\n            catch (Exception e)\n            \n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0  nLinea: 1&quot;, e, e.StackTrace))));\n            \n            enfin\n            \n                si (webSocket! = null)\n                    webSocket.Dispose ();\n            \n        }\n    }","    classe publique Datos\n    \n        nom de chaîne publique get; ensemble; \n        code de chaîne publique get; ensemble; \n        chaîne publique imprimante get; ensemble;  = &quot;&quot;;\n    \n}","impression brute:\nusing Microsoft.VisualBasic;\nen utilisant le système;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing System.IO;","print de l&#39;espace de noms\n{\n    Classe publique RawPrinter\n    {\n        // Déclarations de structure et d&#39;API:\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\n        classe publique DOCINFOA\n        \n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDocName;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pOutputFile;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDataType;\n        \n        [DllImport(\"winspool.Drv\", EntryPoint = \"OpenPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool OpenPrinter ([MarshalAs(UnmanagedType.LPStr)]\nchaîne szPrinter, réf IntPtr hPriknter, IntPtr pd);","[DllImport(\"winspool.Drv\", EntryPoint = \"ClosePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool ClosePrinter (IntPtr hPrinter);","[DllImport(\"winspool.Drv\", EntryPoint = \"StartDocPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool StartDocPrinter (IntPtr hPrinter, niveau Int32, [In(), MarshalAs(UnmanagedType.LPStruct)]\nDOCINFOA di);","[DllImport(\"winspool.Drv\", EntryPoint = \"EndDocPrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool EndDocPrinter (IntPtr hPrinter);","[DllImport(\"winspool.Drv\", EntryPoint = \"StartPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool StartPagePrinter (IntPtr hPrinter);","[DllImport(\"winspool.Drv\", EntryPoint = \"EndPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool EndPagePrinter (IntPtr hPrinter);","[DllImport(\"winspool.Drv\", EntryPoint = \"WritePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool WritePrinter (IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, ref Int32 dwWritten);","        // SendBytesToPrinter ()\n        // Lorsque la fonction reçoit un nom d&#39;imprimante et un tableau non géré\n        // d&#39;octets, la fonction envoie ces octets à la file d&#39;attente d&#39;impression.\n        // Renvoie true en cas de succès, false en cas d&#39;échec.\n        public bool statique SendBytesToPrinter (chaîne szPrinterName, pbits IntPtr, dwCount Int32, chaîne DocName = &quot;&quot;)\n        \n            Int32 dwError = 0;\n            Int32 dwWritten = 0;\n            IntPtr hPrinter = new IntPtr (0);\n            DOCINFOA di = new DOCINFOA ();\n            bool bSuccess = false;\n            // Suppose l&#39;échec sauf si vous y parvenez.\n            di.pDocName = string.IsNullOrEmpty (DocName)? &quot;Mon document RAW C # .NET&quot;: DocName;\n            di.pDataType = &quot;RAW&quot;;","            // Ouvre l&#39;imprimante.\n            if (OpenPrinter (szPrinterName.Normalize (), réf hPrinter, IntPtr.Zero))\n            \n                // Démarrer un document.\n                if (StartDocPrinter (hPrinter, 1, di))\n                \n                    // Démarrer une page.\n                    if (StartPagePrinter (hPrinter))\n                    \n                        // Ecrivez vos octets.\n                        bSuccess = WritePrinter (hPrinter, pBytes, dwCount, ref dwWritten);\n                        EndPagePrinter (hPrinter);\n                    \n                    EndDocPrinter (hPrinter);\n                \n                ClosePrinter (hPrinter);\n            \n            // Si vous n&#39;avez pas réussi, GetLastError peut donner plus d&#39;informations\n            // pourquoi pas.\n            if (bSuccess == false)\n            \n                dwError = Marshal.GetLastWin32Error ();\n            \n            retourner bSuccess;\n        ","        public bool statique SendFileToPrinter (string szPrinterName, string szFileName)\n        \n            // ouvre le fichier.\n            FileStream fs = new FileStream (szFileName, FileMode.Open);\n            // Crée un BinaryReader sur le fichier.\n            BinaryReader br = new BinaryReader (fs);\n            // Dimette un tableau d&#39;octets assez grand pour contenir le contenu du fichier.\n            Octet[] octets = nouvel octet[fs.Length];\n            bool bSuccess = false;\n            // Votre pointeur non géré.\n            IntPtr pUnmanagedBytes = new IntPtr (0);\n            int nLength = 0;","            nLength = Convert.ToInt32 (fs.Length);\n            // Lit le contenu du fichier dans le tableau.\n            octets = br.ReadBytes (nLength);\n            // Alloue de la mémoire non gérée pour ces octets.\n            pUnmanagedBytes = Marshal.AllocCoTaskMem (nLength);\n            // Copiez le tableau d&#39;octets gérés dans le tableau non géré.\n            Marshal.Copy (octets, 0, pUnmanagedBytes, nLength);\n            // Envoie les octets non gérés à l&#39;imprimante.\n            bSuccess = SendBytesToPrinter (szPrinterName, pUnmanagedBytes, nLength);\n            // Libère la mémoire non gérée que vous avez allouée précédemment.\n            Marshal.FreeCoTaskMem (pUnmanagedBytes);\n            retourner bSuccess;\n        \n        public bool statique SendStringToPrinter (string szPrinterName, string szString, string DocName = &quot;&quot;)\n        \n            IntPtr pBytes = default (IntPtr);\n            Int32 dwCount = default (Int32);\n            // Combien de caractères y a-t-il dans la chaîne?\n            dwCount = szString.Length;\n            // Supposons que l&#39;imprimante attend du texte ANSI, puis convertit\n            // la chaîne en texte ANSI.\n            pBytes = Marshal.StringToCoTaskMemAnsi (szString);\n            // Envoie la chaîne ANSI convertie à l&#39;imprimante.\n            SendBytesToPrinter (szPrinterName, pBytes, dwCount, DocName);\n            Marshal.FreeCoTaskMem (pBytes);\n            retourne vrai;\n        \n    }\n}","page html:","Enviar","puis envoyez un code ZPL à partir de HTML (écrivez ceci sur du code textarea);\n^ XA\n^ FO200,50 ^ BY2 ^ B3N, N, 80, Y, N ^ FD0123456789 ^ FS\n^ PQ1 ^ XZ","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost.\n/// websocket\nen utilisant le système;\nusing System.Net;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;","html":"<p>essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost.\n/// websocket\nen utilisant le système;\nusing System.Net;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Serveur d&#39;espace de noms\n{\n    programme de classe\n    \n        WebsocketServer statique public ws;\n        static void Main (chaîne[] args)\n        \n            ws = new Server.WebsocketServer ();\n            ws.LogMessage + = Ws_LogMessage;\n            ws.Start (&quot;http: // localhost: 2645 / service /&quot;);\n            Console.WriteLine (&quot;Appuyez sur n&#39;importe quelle touche pour quitter ...&quot;);\n            Console.ReadKey ();\n        ","html":"<p>Serveur d&#039;espace de noms\n{\n    programme de classe\n    \n        WebsocketServer statique public ws;\n        static void Main (chaîne[] args)\n        \n            ws = new Server.WebsocketServer ();\n            ws.LogMessage + = Ws_LogMessage;\n            ws.Start (&quot;http: // localhost: 2645 / service /&quot;);\n            Console.WriteLine (&quot;Appuyez sur n&#039;importe quelle touche pour quitter ...&quot;);\n            Console.ReadKey ();\n        </p>"},{"id":"text-3","type":"text","heading":"","plain_text":"        void statique privé Ws_LogMessage (expéditeur de l&#39;objet, WebsocketServer.LogMessageEventArgs e)\n        \n            Console.WriteLine (e.Message);\n        \n    ","html":"<p>        void statique privé Ws_LogMessage (expéditeur de l&#039;objet, WebsocketServer.LogMessageEventArgs e)\n        \n            Console.WriteLine (e.Message);\n        \n    </p>"},{"id":"text-4","type":"text","heading":"","plain_text":"    classe publique WebsocketServer\n    {\n        événement public OnLogMessage LogMessage;\n        délégué public void OnLogMessage (Expéditeur d&#39;objet, LogMessageEventArgs e);\n        Classe publique LogMessageEventArgs: EventArgs\n        \n            chaîne publique Message get; ensemble; \n            public LogMessageEventArgs (chaîne Message)\n            \n                this.Message = Message;\n            \n        ","html":"<p>    classe publique WebsocketServer\n    {\n        événement public OnLogMessage LogMessage;\n        délégué public void OnLogMessage (Expéditeur d&#039;objet, LogMessageEventArgs e);\n        Classe publique LogMessageEventArgs: EventArgs\n        \n            chaîne publique Message get; ensemble; \n            public LogMessageEventArgs (chaîne Message)\n            \n                this.Message = Message;\n            \n        </p>"},{"id":"text-5","type":"text","heading":"","plain_text":"        bool public started = false;\n        public async void Start (chaîne httpListenerPrefix)\n        \n            HttpListener httpListener = new HttpListener ();\n            httpListener.Prefixes.Add (httpListenerPrefix);\n            httpListener.Start ();\n            LogMessage (this, new LogMessageEventArgs (&quot;Listening ...&quot;));\n            commencé = vrai;","html":"<p>        bool public started = false;\n        public async void Start (chaîne httpListenerPrefix)\n        \n            HttpListener httpListener = new HttpListener ();\n            httpListener.Prefixes.Add (httpListenerPrefix);\n            httpListener.Start ();\n            LogMessage (this, new LogMessageEventArgs (&quot;Listening ...&quot;));\n            commencé = vrai;</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"            alors que (commencé)\n            \n                HttpListenerContext httpListenerContext = wait httpListener.GetContextAsync ();\n                if (httpListenerContext.Request.IsWebSocketRequest)\n                \n                    ProcessRequest (httpListenerContext);\n                \n                autre\n                \n                    httpListenerContext.Response.StatusCode = 400;\n                    httpListenerContext.Response.Close ();\n                    LogMessage (this, new LogMessageEventArgs (&quot;Closed ...&quot;));\n                \n            \n        ","html":"<p>            alors que (commencé)\n            \n                HttpListenerContext httpListenerContext = wait httpListener.GetContextAsync ();\n                if (httpListenerContext.Request.IsWebSocketRequest)\n                \n                    ProcessRequest (httpListenerContext);\n                \n                autre\n                \n                    httpListenerContext.Response.StatusCode = 400;\n                    httpListenerContext.Response.Close ();\n                    LogMessage (this, new LogMessageEventArgs (&quot;Closed ...&quot;));\n                \n            \n        </p>"},{"id":"text-7","type":"text","heading":"","plain_text":"        public void Stop ()\n        \n            commencé = faux;\n        \n        ProcessRequest (HttpListenerContext httpListenerContext)\n        {\n            WebSocketContext webSocketContext = null;","html":"<p>        public void Stop ()\n        \n            commencé = faux;\n        \n        ProcessRequest (HttpListenerContext httpListenerContext)\n        {\n            WebSocketContext webSocketContext = null;</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"            essayer\n            \n                webSocketContext = wait httpListenerContext.AcceptWebSocketAsync (subProtocol: null);\n                LogMessage (this, nouveau LogMessageEventArgs (&quot;Connecté&quot;));\n            \n            catch (Exception e)\n            \n                httpListenerContext.Response.StatusCode = 500;\n                httpListenerContext.Response.Close ();\n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0&quot;, e)));\n                revenir;\n            ","html":"<p>            essayer\n            \n                webSocketContext = wait httpListenerContext.AcceptWebSocketAsync (subProtocol: null);\n                LogMessage (this, nouveau LogMessageEventArgs (&quot;Connecté&quot;));\n            \n            catch (Exception e)\n            \n                httpListenerContext.Response.StatusCode = 500;\n                httpListenerContext.Response.Close ();\n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0&quot;, e)));\n                revenir;\n            </p>"},{"id":"text-9","type":"text","heading":"","plain_text":"            WebSocket webSocket = webSocketContext.WebSocket;\n            essayer\n            {","html":"<p>            WebSocket webSocket = webSocketContext.WebSocket;\n            essayer\n            {</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"                while (webSocket.State == WebSocketState.Open)\n                {","html":"<p>                while (webSocket.State == WebSocketState.Open)\n                {</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"                    ArraySegment buffer = new ArraySegment(nouvel octet[8192])","html":"<p>                    ArraySegment buffer = new ArraySegment(nouvel octet[8192])</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"                    WebSocketReceiveResult resultat = null;","html":"<p>                    WebSocketReceiveResult resultat = null;</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"                    using (var ms = new System.IO.MemoryStream ())\n                    {\n                        faire\n                        \n                            result = wait webSocket.ReceiveAsync (tampon, CancellationToken.None);\n                            ms.Write (buffer.Array, buffer.Offset, result.Count);\n                        \n                        while (! result.EndOfMessage);","html":"<p>                    using (var ms = new System.IO.MemoryStream ())\n                    {\n                        faire\n                        \n                            result = wait webSocket.ReceiveAsync (tampon, CancellationToken.None);\n                            ms.Write (buffer.Array, buffer.Offset, result.Count);\n                        \n                        while (! result.EndOfMessage);</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"                        ms.Seek (0, System.IO.SeekOrigin.Begin);","html":"<p>                        ms.Seek (0, System.IO.SeekOrigin.Begin);</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"                        if (result.MessageType == WebSocketMessageType.Text)\n                        {\n                            using (var reader = new System.IO.StreamReader (ms, Encoding.UTF8))\n                            \n                                var r = System.Text.Encoding.UTF8.GetString (ms.ToArray ());\n                                var t = Newtonsoft.Json.JsonConvert.DeserializeObject(r);\n                                bool valid = true;\n                                octet[] toBytes = Encoding.UTF8.GetBytes (&quot;&quot;); ;","html":"<p>                        if (result.MessageType == WebSocketMessageType.Text)\n                        {\n                            using (var reader = new System.IO.StreamReader (ms, Encoding.UTF8))\n                            \n                                var r = System.Text.Encoding.UTF8.GetString (ms.ToArray ());\n                                var t = Newtonsoft.Json.JsonConvert.DeserializeObject(r);\n                                bool valid = true;\n                                octet[] toBytes = Encoding.UTF8.GetBytes (&quot;&quot;); ;</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"                                si (t! = null)\n                                \n                                    if (t.printer.Trim () == string.Empty)\n                                    \n                                        var imprimantes = &quot;&quot;;\n                                        foreach (var imp dans System.Drawing.Printing.PrinterSettings.InstalledPrinters)\n                                        \n                                            imprimantes + = imp + &quot; n&quot;;\n                                        ","html":"<p>                                si (t! = null)\n                                \n                                    if (t.printer.Trim () == string.Empty)\n                                    \n                                        var imprimantes = &quot;&quot;;\n                                        foreach (var imp dans System.Drawing.Printing.PrinterSettings.InstalledPrinters)\n                                        \n                                            imprimantes + = imp + &quot; n&quot;;\n                                        </p>"},{"id":"text-17","type":"text","heading":"","plain_text":"                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur l&#39;impression  nLas Impresoras disponibles:&quot; + imprimantes);\n                                        valide = faux;\n                                    \n                                    if (t.name.Trim () == string.Empty)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur le document&quot;);\n                                        valide = faux;\n                                    \n                                    if (t.code == null)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune donnée n&#39;est affichée à la suite de l&#39;impression&quot;);\n                                        valide = faux;\n                                    ","html":"<p>                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur l&#039;impression  nLas Impresoras disponibles:&quot; + imprimantes);\n                                        valide = faux;\n                                    \n                                    if (t.name.Trim () == string.Empty)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur le document&quot;);\n                                        valide = faux;\n                                    \n                                    if (t.code == null)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune donnée n&#039;est affichée à la suite de l&#039;impression&quot;);\n                                        valide = faux;\n                                    </p>"},{"id":"text-18","type":"text","heading":"","plain_text":"                                    si (valide)\n                                    \n                                        print.RawPrinter.SendStringToPrinter (t.printer, t.code, t.name);\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Correcto ...&quot;);\n                                    ","html":"<p>                                    si (valide)\n                                    \n                                        print.RawPrinter.SendStringToPrinter (t.printer, t.code, t.name);\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Correcto ...&quot;);\n                                    </p>"},{"id":"text-19","type":"text","heading":"","plain_text":"                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                                autre\n                                \n                                    toBytes = Encoding.UTF8.GetBytes (&quot;Erreur ...&quot;);\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                            \n                        }\n                    }\n                }\n            }\n            catch (Exception e)\n            \n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0  nLinea: 1&quot;, e, e.StackTrace))));\n            \n            enfin\n            \n                si (webSocket! = null)\n                    webSocket.Dispose ();\n            \n        }\n    }","html":"<p>                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                                autre\n                                \n                                    toBytes = Encoding.UTF8.GetBytes (&quot;Erreur ...&quot;);\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                            \n                        }\n                    }\n                }\n            }\n            catch (Exception e)\n            \n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0  nLinea: 1&quot;, e, e.StackTrace))));\n            \n            enfin\n            \n                si (webSocket! = null)\n                    webSocket.Dispose ();\n            \n        }\n    }</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"    classe publique Datos\n    \n        nom de chaîne publique get; ensemble; \n        code de chaîne publique get; ensemble; \n        chaîne publique imprimante get; ensemble;  = &quot;&quot;;\n    \n}","html":"<p>    classe publique Datos\n    \n        nom de chaîne publique get; ensemble; \n        code de chaîne publique get; ensemble; \n        chaîne publique imprimante get; ensemble;  = &quot;&quot;;\n    \n}</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"impression brute:\nusing Microsoft.VisualBasic;\nen utilisant le système;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing System.IO;","html":"<p>impression brute:\nusing Microsoft.VisualBasic;\nen utilisant le système;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing System.IO;</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"print de l&#39;espace de noms\n{\n    Classe publique RawPrinter\n    {\n        // Déclarations de structure et d&#39;API:\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\n        classe publique DOCINFOA\n        \n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDocName;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pOutputFile;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDataType;\n        \n        [DllImport(\"winspool.Drv\", EntryPoint = \"OpenPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool OpenPrinter ([MarshalAs(UnmanagedType.LPStr)]\nchaîne szPrinter, réf IntPtr hPriknter, IntPtr pd);","html":"<p>print de l&#039;espace de noms\n{\n    Classe publique RawPrinter\n    {\n        // Déclarations de structure et d&#039;API:\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\n        classe publique DOCINFOA\n        \n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDocName;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pOutputFile;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDataType;\n        \n        [DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;OpenPrinterA&quot;, SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool OpenPrinter ([MarshalAs(UnmanagedType.LPStr)]\nchaîne szPrinter, réf IntPtr hPriknter, IntPtr pd);</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"[DllImport(\"winspool.Drv\", EntryPoint = \"ClosePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool ClosePrinter (IntPtr hPrinter);","html":"<p>[DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;ClosePrinter&quot;, SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool ClosePrinter (IntPtr hPrinter);</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"[DllImport(\"winspool.Drv\", EntryPoint = \"StartDocPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool StartDocPrinter (IntPtr hPrinter, niveau Int32, [In(), MarshalAs(UnmanagedType.LPStruct)]\nDOCINFOA di);","html":"<p>[DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;StartDocPrinterA&quot;, SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool StartDocPrinter (IntPtr hPrinter, niveau Int32, [In(), MarshalAs(UnmanagedType.LPStruct)]\nDOCINFOA di);</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"[DllImport(\"winspool.Drv\", EntryPoint = \"EndDocPrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool EndDocPrinter (IntPtr hPrinter);","html":"<p>[DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;EndDocPrinter&quot;, SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool EndDocPrinter (IntPtr hPrinter);</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"[DllImport(\"winspool.Drv\", EntryPoint = \"StartPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool StartPagePrinter (IntPtr hPrinter);","html":"<p>[DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;StartPagePrinter&quot;, SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool StartPagePrinter (IntPtr hPrinter);</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"[DllImport(\"winspool.Drv\", EntryPoint = \"EndPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool EndPagePrinter (IntPtr hPrinter);","html":"<p>[DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;EndPagePrinter&quot;, SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool EndPagePrinter (IntPtr hPrinter);</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"[DllImport(\"winspool.Drv\", EntryPoint = \"WritePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool WritePrinter (IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, ref Int32 dwWritten);","html":"<p>[DllImport(&quot;winspool.Drv&quot;, EntryPoint = &quot;WritePrinter&quot;, SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool WritePrinter (IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, ref Int32 dwWritten);</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"        // SendBytesToPrinter ()\n        // Lorsque la fonction reçoit un nom d&#39;imprimante et un tableau non géré\n        // d&#39;octets, la fonction envoie ces octets à la file d&#39;attente d&#39;impression.\n        // Renvoie true en cas de succès, false en cas d&#39;échec.\n        public bool statique SendBytesToPrinter (chaîne szPrinterName, pbits IntPtr, dwCount Int32, chaîne DocName = &quot;&quot;)\n        \n            Int32 dwError = 0;\n            Int32 dwWritten = 0;\n            IntPtr hPrinter = new IntPtr (0);\n            DOCINFOA di = new DOCINFOA ();\n            bool bSuccess = false;\n            // Suppose l&#39;échec sauf si vous y parvenez.\n            di.pDocName = string.IsNullOrEmpty (DocName)? &quot;Mon document RAW C # .NET&quot;: DocName;\n            di.pDataType = &quot;RAW&quot;;","html":"<p>        // SendBytesToPrinter ()\n        // Lorsque la fonction reçoit un nom d&#039;imprimante et un tableau non géré\n        // d&#039;octets, la fonction envoie ces octets à la file d&#039;attente d&#039;impression.\n        // Renvoie true en cas de succès, false en cas d&#039;échec.\n        public bool statique SendBytesToPrinter (chaîne szPrinterName, pbits IntPtr, dwCount Int32, chaîne DocName = &quot;&quot;)\n        \n            Int32 dwError = 0;\n            Int32 dwWritten = 0;\n            IntPtr hPrinter = new IntPtr (0);\n            DOCINFOA di = new DOCINFOA ();\n            bool bSuccess = false;\n            // Suppose l&#039;échec sauf si vous y parvenez.\n            di.pDocName = string.IsNullOrEmpty (DocName)? &quot;Mon document RAW C # .NET&quot;: DocName;\n            di.pDataType = &quot;RAW&quot;;</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"            // Ouvre l&#39;imprimante.\n            if (OpenPrinter (szPrinterName.Normalize (), réf hPrinter, IntPtr.Zero))\n            \n                // Démarrer un document.\n                if (StartDocPrinter (hPrinter, 1, di))\n                \n                    // Démarrer une page.\n                    if (StartPagePrinter (hPrinter))\n                    \n                        // Ecrivez vos octets.\n                        bSuccess = WritePrinter (hPrinter, pBytes, dwCount, ref dwWritten);\n                        EndPagePrinter (hPrinter);\n                    \n                    EndDocPrinter (hPrinter);\n                \n                ClosePrinter (hPrinter);\n            \n            // Si vous n&#39;avez pas réussi, GetLastError peut donner plus d&#39;informations\n            // pourquoi pas.\n            if (bSuccess == false)\n            \n                dwError = Marshal.GetLastWin32Error ();\n            \n            retourner bSuccess;\n        ","html":"<p>            // Ouvre l&#039;imprimante.\n            if (OpenPrinter (szPrinterName.Normalize (), réf hPrinter, IntPtr.Zero))\n            \n                // Démarrer un document.\n                if (StartDocPrinter (hPrinter, 1, di))\n                \n                    // Démarrer une page.\n                    if (StartPagePrinter (hPrinter))\n                    \n                        // Ecrivez vos octets.\n                        bSuccess = WritePrinter (hPrinter, pBytes, dwCount, ref dwWritten);\n                        EndPagePrinter (hPrinter);\n                    \n                    EndDocPrinter (hPrinter);\n                \n                ClosePrinter (hPrinter);\n            \n            // Si vous n&#039;avez pas réussi, GetLastError peut donner plus d&#039;informations\n            // pourquoi pas.\n            if (bSuccess == false)\n            \n                dwError = Marshal.GetLastWin32Error ();\n            \n            retourner bSuccess;\n        </p>"},{"id":"text-31","type":"text","heading":"","plain_text":"        public bool statique SendFileToPrinter (string szPrinterName, string szFileName)\n        \n            // ouvre le fichier.\n            FileStream fs = new FileStream (szFileName, FileMode.Open);\n            // Crée un BinaryReader sur le fichier.\n            BinaryReader br = new BinaryReader (fs);\n            // Dimette un tableau d&#39;octets assez grand pour contenir le contenu du fichier.\n            Octet[] octets = nouvel octet[fs.Length];\n            bool bSuccess = false;\n            // Votre pointeur non géré.\n            IntPtr pUnmanagedBytes = new IntPtr (0);\n            int nLength = 0;","html":"<p>        public bool statique SendFileToPrinter (string szPrinterName, string szFileName)\n        \n            // ouvre le fichier.\n            FileStream fs = new FileStream (szFileName, FileMode.Open);\n            // Crée un BinaryReader sur le fichier.\n            BinaryReader br = new BinaryReader (fs);\n            // Dimette un tableau d&#039;octets assez grand pour contenir le contenu du fichier.\n            Octet[] octets = nouvel octet[fs.Length];\n            bool bSuccess = false;\n            // Votre pointeur non géré.\n            IntPtr pUnmanagedBytes = new IntPtr (0);\n            int nLength = 0;</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"            nLength = Convert.ToInt32 (fs.Length);\n            // Lit le contenu du fichier dans le tableau.\n            octets = br.ReadBytes (nLength);\n            // Alloue de la mémoire non gérée pour ces octets.\n            pUnmanagedBytes = Marshal.AllocCoTaskMem (nLength);\n            // Copiez le tableau d&#39;octets gérés dans le tableau non géré.\n            Marshal.Copy (octets, 0, pUnmanagedBytes, nLength);\n            // Envoie les octets non gérés à l&#39;imprimante.\n            bSuccess = SendBytesToPrinter (szPrinterName, pUnmanagedBytes, nLength);\n            // Libère la mémoire non gérée que vous avez allouée précédemment.\n            Marshal.FreeCoTaskMem (pUnmanagedBytes);\n            retourner bSuccess;\n        \n        public bool statique SendStringToPrinter (string szPrinterName, string szString, string DocName = &quot;&quot;)\n        \n            IntPtr pBytes = default (IntPtr);\n            Int32 dwCount = default (Int32);\n            // Combien de caractères y a-t-il dans la chaîne?\n            dwCount = szString.Length;\n            // Supposons que l&#39;imprimante attend du texte ANSI, puis convertit\n            // la chaîne en texte ANSI.\n            pBytes = Marshal.StringToCoTaskMemAnsi (szString);\n            // Envoie la chaîne ANSI convertie à l&#39;imprimante.\n            SendBytesToPrinter (szPrinterName, pBytes, dwCount, DocName);\n            Marshal.FreeCoTaskMem (pBytes);\n            retourne vrai;\n        \n    }\n}","html":"<p>            nLength = Convert.ToInt32 (fs.Length);\n            // Lit le contenu du fichier dans le tableau.\n            octets = br.ReadBytes (nLength);\n            // Alloue de la mémoire non gérée pour ces octets.\n            pUnmanagedBytes = Marshal.AllocCoTaskMem (nLength);\n            // Copiez le tableau d&#039;octets gérés dans le tableau non géré.\n            Marshal.Copy (octets, 0, pUnmanagedBytes, nLength);\n            // Envoie les octets non gérés à l&#039;imprimante.\n            bSuccess = SendBytesToPrinter (szPrinterName, pUnmanagedBytes, nLength);\n            // Libère la mémoire non gérée que vous avez allouée précédemment.\n            Marshal.FreeCoTaskMem (pUnmanagedBytes);\n            retourner bSuccess;\n        \n        public bool statique SendStringToPrinter (string szPrinterName, string szString, string DocName = &quot;&quot;)\n        \n            IntPtr pBytes = default (IntPtr);\n            Int32 dwCount = default (Int32);\n            // Combien de caractères y a-t-il dans la chaîne?\n            dwCount = szString.Length;\n            // Supposons que l&#039;imprimante attend du texte ANSI, puis convertit\n            // la chaîne en texte ANSI.\n            pBytes = Marshal.StringToCoTaskMemAnsi (szString);\n            // Envoie la chaîne ANSI convertie à l&#039;imprimante.\n            SendBytesToPrinter (szPrinterName, pBytes, dwCount, DocName);\n            Marshal.FreeCoTaskMem (pBytes);\n            retourne vrai;\n        \n    }\n}</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"page html:","html":"<p>page html:</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"Enviar","html":"<p>Enviar</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"puis envoyez un code ZPL à partir de HTML (écrivez ceci sur du code textarea);\n^ XA\n^ FO200,50 ^ BY2 ^ B3N, N, 80, Y, N ^ FD0123456789 ^ FS\n^ PQ1 ^ XZ","html":"<p>puis envoyez un code ZPL à partir de HTML (écrivez ceci sur du code textarea);\n^ XA\n^ FO200,50 ^ BY2 ^ B3N, N, 80, Y, N ^ FD0123456789 ^ FS\n^ PQ1 ^ XZ</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"essayez de créer un WebSocket qui contrôle l’impression côté client et envoie les données avec ajax de la page à localhost.\n/// websocket\nen utilisant le système;\nusing System.Net;\nusing System.Net.WebSockets;\nusing System.Text;\nusing System.Threading;"},{"id":"text-2","heading":"Text","content":"Serveur d&#39;espace de noms\n{\n    programme de classe\n    \n        WebsocketServer statique public ws;\n        static void Main (chaîne[] args)\n        \n            ws = new Server.WebsocketServer ();\n            ws.LogMessage + = Ws_LogMessage;\n            ws.Start (&quot;http: // localhost: 2645 / service /&quot;);\n            Console.WriteLine (&quot;Appuyez sur n&#39;importe quelle touche pour quitter ...&quot;);\n            Console.ReadKey ();\n        "},{"id":"text-3","heading":"Text","content":"        void statique privé Ws_LogMessage (expéditeur de l&#39;objet, WebsocketServer.LogMessageEventArgs e)\n        \n            Console.WriteLine (e.Message);\n        \n    "},{"id":"text-4","heading":"Text","content":"    classe publique WebsocketServer\n    {\n        événement public OnLogMessage LogMessage;\n        délégué public void OnLogMessage (Expéditeur d&#39;objet, LogMessageEventArgs e);\n        Classe publique LogMessageEventArgs: EventArgs\n        \n            chaîne publique Message get; ensemble; \n            public LogMessageEventArgs (chaîne Message)\n            \n                this.Message = Message;\n            \n        "},{"id":"text-5","heading":"Text","content":"        bool public started = false;\n        public async void Start (chaîne httpListenerPrefix)\n        \n            HttpListener httpListener = new HttpListener ();\n            httpListener.Prefixes.Add (httpListenerPrefix);\n            httpListener.Start ();\n            LogMessage (this, new LogMessageEventArgs (&quot;Listening ...&quot;));\n            commencé = vrai;"},{"id":"text-6","heading":"Text","content":"            alors que (commencé)\n            \n                HttpListenerContext httpListenerContext = wait httpListener.GetContextAsync ();\n                if (httpListenerContext.Request.IsWebSocketRequest)\n                \n                    ProcessRequest (httpListenerContext);\n                \n                autre\n                \n                    httpListenerContext.Response.StatusCode = 400;\n                    httpListenerContext.Response.Close ();\n                    LogMessage (this, new LogMessageEventArgs (&quot;Closed ...&quot;));\n                \n            \n        "},{"id":"text-7","heading":"Text","content":"        public void Stop ()\n        \n            commencé = faux;\n        \n        ProcessRequest (HttpListenerContext httpListenerContext)\n        {\n            WebSocketContext webSocketContext = null;"},{"id":"text-8","heading":"Text","content":"            essayer\n            \n                webSocketContext = wait httpListenerContext.AcceptWebSocketAsync (subProtocol: null);\n                LogMessage (this, nouveau LogMessageEventArgs (&quot;Connecté&quot;));\n            \n            catch (Exception e)\n            \n                httpListenerContext.Response.StatusCode = 500;\n                httpListenerContext.Response.Close ();\n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0&quot;, e)));\n                revenir;\n            "},{"id":"text-9","heading":"Text","content":"            WebSocket webSocket = webSocketContext.WebSocket;\n            essayer\n            {"},{"id":"text-10","heading":"Text","content":"                while (webSocket.State == WebSocketState.Open)\n                {"},{"id":"text-11","heading":"Text","content":"                    ArraySegment buffer = new ArraySegment(nouvel octet[8192])"},{"id":"text-12","heading":"Text","content":"                    WebSocketReceiveResult resultat = null;"},{"id":"text-13","heading":"Text","content":"                    using (var ms = new System.IO.MemoryStream ())\n                    {\n                        faire\n                        \n                            result = wait webSocket.ReceiveAsync (tampon, CancellationToken.None);\n                            ms.Write (buffer.Array, buffer.Offset, result.Count);\n                        \n                        while (! result.EndOfMessage);"},{"id":"text-14","heading":"Text","content":"                        ms.Seek (0, System.IO.SeekOrigin.Begin);"},{"id":"text-15","heading":"Text","content":"                        if (result.MessageType == WebSocketMessageType.Text)\n                        {\n                            using (var reader = new System.IO.StreamReader (ms, Encoding.UTF8))\n                            \n                                var r = System.Text.Encoding.UTF8.GetString (ms.ToArray ());\n                                var t = Newtonsoft.Json.JsonConvert.DeserializeObject(r);\n                                bool valid = true;\n                                octet[] toBytes = Encoding.UTF8.GetBytes (&quot;&quot;); ;"},{"id":"text-16","heading":"Text","content":"                                si (t! = null)\n                                \n                                    if (t.printer.Trim () == string.Empty)\n                                    \n                                        var imprimantes = &quot;&quot;;\n                                        foreach (var imp dans System.Drawing.Printing.PrinterSettings.InstalledPrinters)\n                                        \n                                            imprimantes + = imp + &quot; n&quot;;\n                                        "},{"id":"text-17","heading":"Text","content":"                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur l&#39;impression  nLas Impresoras disponibles:&quot; + imprimantes);\n                                        valide = faux;\n                                    \n                                    if (t.name.Trim () == string.Empty)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune indication sur le document&quot;);\n                                        valide = faux;\n                                    \n                                    if (t.code == null)\n                                    \n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Aucune donnée n&#39;est affichée à la suite de l&#39;impression&quot;);\n                                        valide = faux;\n                                    "},{"id":"text-18","heading":"Text","content":"                                    si (valide)\n                                    \n                                        print.RawPrinter.SendStringToPrinter (t.printer, t.code, t.name);\n                                        toBytes = Encoding.UTF8.GetBytes (&quot;Correcto ...&quot;);\n                                    "},{"id":"text-19","heading":"Text","content":"                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                                autre\n                                \n                                    toBytes = Encoding.UTF8.GetBytes (&quot;Erreur ...&quot;);\n                                    attendez webSocket.SendAsync (nouvel ArraySegment(toBytes, 0, int.Parse (toBytes.Length.ToString ())), WebSocketMessageType.Binary, result.EndOfMessage, CancellationToken.None);\n                                \n                            \n                        }\n                    }\n                }\n            }\n            catch (Exception e)\n            \n                LogMessage (this, new LogMessageEventArgs (String.Format (&quot;Exception: 0  nLinea: 1&quot;, e, e.StackTrace))));\n            \n            enfin\n            \n                si (webSocket! = null)\n                    webSocket.Dispose ();\n            \n        }\n    }"},{"id":"text-20","heading":"Text","content":"    classe publique Datos\n    \n        nom de chaîne publique get; ensemble; \n        code de chaîne publique get; ensemble; \n        chaîne publique imprimante get; ensemble;  = &quot;&quot;;\n    \n}"},{"id":"text-21","heading":"Text","content":"impression brute:\nusing Microsoft.VisualBasic;\nen utilisant le système;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.Data;\nusing System.Diagnostics;\nusing System.Runtime.InteropServices;\nusing System.IO;"},{"id":"text-22","heading":"Text","content":"print de l&#39;espace de noms\n{\n    Classe publique RawPrinter\n    {\n        // Déclarations de structure et d&#39;API:\n        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]\n        classe publique DOCINFOA\n        \n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDocName;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pOutputFile;\n            [MarshalAs(UnmanagedType.LPStr)]\n            chaîne publique pDataType;\n        \n        [DllImport(\"winspool.Drv\", EntryPoint = \"OpenPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool OpenPrinter ([MarshalAs(UnmanagedType.LPStr)]\nchaîne szPrinter, réf IntPtr hPriknter, IntPtr pd);"},{"id":"text-23","heading":"Text","content":"[DllImport(\"winspool.Drv\", EntryPoint = \"ClosePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool ClosePrinter (IntPtr hPrinter);"},{"id":"text-24","heading":"Text","content":"[DllImport(\"winspool.Drv\", EntryPoint = \"StartDocPrinterA\", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool StartDocPrinter (IntPtr hPrinter, niveau Int32, [In(), MarshalAs(UnmanagedType.LPStruct)]\nDOCINFOA di);"},{"id":"text-25","heading":"Text","content":"[DllImport(\"winspool.Drv\", EntryPoint = \"EndDocPrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public extern externe bool EndDocPrinter (IntPtr hPrinter);"},{"id":"text-26","heading":"Text","content":"[DllImport(\"winspool.Drv\", EntryPoint = \"StartPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool StartPagePrinter (IntPtr hPrinter);"},{"id":"text-27","heading":"Text","content":"[DllImport(\"winspool.Drv\", EntryPoint = \"EndPagePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique extern bool EndPagePrinter (IntPtr hPrinter);"},{"id":"text-28","heading":"Text","content":"[DllImport(\"winspool.Drv\", EntryPoint = \"WritePrinter\", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]\n        public statique externe bool WritePrinter (IntPtr hPrinter, IntPtr pBytes, Int32 dwCount, ref Int32 dwWritten);"},{"id":"text-29","heading":"Text","content":"        // SendBytesToPrinter ()\n        // Lorsque la fonction reçoit un nom d&#39;imprimante et un tableau non géré\n        // d&#39;octets, la fonction envoie ces octets à la file d&#39;attente d&#39;impression.\n        // Renvoie true en cas de succès, false en cas d&#39;échec.\n        public bool statique SendBytesToPrinter (chaîne szPrinterName, pbits IntPtr, dwCount Int32, chaîne DocName = &quot;&quot;)\n        \n            Int32 dwError = 0;\n            Int32 dwWritten = 0;\n            IntPtr hPrinter = new IntPtr (0);\n            DOCINFOA di = new DOCINFOA ();\n            bool bSuccess = false;\n            // Suppose l&#39;échec sauf si vous y parvenez.\n            di.pDocName = string.IsNullOrEmpty (DocName)? &quot;Mon document RAW C # .NET&quot;: DocName;\n            di.pDataType = &quot;RAW&quot;;"},{"id":"text-30","heading":"Text","content":"            // Ouvre l&#39;imprimante.\n            if (OpenPrinter (szPrinterName.Normalize (), réf hPrinter, IntPtr.Zero))\n            \n                // Démarrer un document.\n                if (StartDocPrinter (hPrinter, 1, di))\n                \n                    // Démarrer une page.\n                    if (StartPagePrinter (hPrinter))\n                    \n                        // Ecrivez vos octets.\n                        bSuccess = WritePrinter (hPrinter, pBytes, dwCount, ref dwWritten);\n                        EndPagePrinter (hPrinter);\n                    \n                    EndDocPrinter (hPrinter);\n                \n                ClosePrinter (hPrinter);\n            \n            // Si vous n&#39;avez pas réussi, GetLastError peut donner plus d&#39;informations\n            // pourquoi pas.\n            if (bSuccess == false)\n            \n                dwError = Marshal.GetLastWin32Error ();\n            \n            retourner bSuccess;\n        "},{"id":"text-31","heading":"Text","content":"        public bool statique SendFileToPrinter (string szPrinterName, string szFileName)\n        \n            // ouvre le fichier.\n            FileStream fs = new FileStream (szFileName, FileMode.Open);\n            // Crée un BinaryReader sur le fichier.\n            BinaryReader br = new BinaryReader (fs);\n            // Dimette un tableau d&#39;octets assez grand pour contenir le contenu du fichier.\n            Octet[] octets = nouvel octet[fs.Length];\n            bool bSuccess = false;\n            // Votre pointeur non géré.\n            IntPtr pUnmanagedBytes = new IntPtr (0);\n            int nLength = 0;"},{"id":"text-32","heading":"Text","content":"            nLength = Convert.ToInt32 (fs.Length);\n            // Lit le contenu du fichier dans le tableau.\n            octets = br.ReadBytes (nLength);\n            // Alloue de la mémoire non gérée pour ces octets.\n            pUnmanagedBytes = Marshal.AllocCoTaskMem (nLength);\n            // Copiez le tableau d&#39;octets gérés dans le tableau non géré.\n            Marshal.Copy (octets, 0, pUnmanagedBytes, nLength);\n            // Envoie les octets non gérés à l&#39;imprimante.\n            bSuccess = SendBytesToPrinter (szPrinterName, pUnmanagedBytes, nLength);\n            // Libère la mémoire non gérée que vous avez allouée précédemment.\n            Marshal.FreeCoTaskMem (pUnmanagedBytes);\n            retourner bSuccess;\n        \n        public bool statique SendStringToPrinter (string szPrinterName, string szString, string DocName = &quot;&quot;)\n        \n            IntPtr pBytes = default (IntPtr);\n            Int32 dwCount = default (Int32);\n            // Combien de caractères y a-t-il dans la chaîne?\n            dwCount = szString.Length;\n            // Supposons que l&#39;imprimante attend du texte ANSI, puis convertit\n            // la chaîne en texte ANSI.\n            pBytes = Marshal.StringToCoTaskMemAnsi (szString);\n            // Envoie la chaîne ANSI convertie à l&#39;imprimante.\n            SendBytesToPrinter (szPrinterName, pBytes, dwCount, DocName);\n            Marshal.FreeCoTaskMem (pBytes);\n            retourne vrai;\n        \n    }\n}"},{"id":"text-33","heading":"Text","content":"page html:"},{"id":"text-34","heading":"Text","content":"Enviar"},{"id":"text-35","heading":"Text","content":"puis envoyez un code ZPL à partir de HTML (écrivez ceci sur du code textarea);\n^ XA\n^ FO200,50 ^ BY2 ^ B3N, N, 80, Y, N ^ FD0123456789 ^ FS\n^ PQ1 ^ XZ"},{"id":"text-36","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/04/apple-touch-icon@2.png"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/05/03/impression-imprimer-des-codes-a-barres-dune-page-web-vers-une-imprimante-zebra-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/03/impression-imprimer-des-codes-a-barres-dune-page-web-vers-une-imprimante-zebra-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/03/impression-imprimer-des-codes-a-barres-dune-page-web-vers-une-imprimante-zebra-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}