{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/05/04/imprimer-un-fichier-pdf-a-partir-dasp-net-directement-sur-limprimante-par-defaut-sans-boite-de-dialogue-dimpression-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2019/05/04/imprimer-un-fichier-pdf-a-partir-dasp-net-directement-sur-limprimante-par-defaut-sans-boite-de-dialogue-dimpression-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/05/04/imprimer-un-fichier-pdf-a-partir-dasp-net-directement-sur-limprimante-par-defaut-sans-boite-de-dialogue-dimpression-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Imprimer un fichier PDF à partir d&#39;ASP.NET directement sur l&#39;imprimante par défaut sans boîte de dialogue d&#39;impression\n\n &#8211; Bien choisir son serveur d 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-04T11:47:48+00:00","modified_at":"2019-05-04T11:47:48+00:00","word_count":1116,"reading_time_seconds":335,"summary":"Création / édition de contrôleurs Créez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant: Importe Neodynamic.SDK.Web Contrôleurs d&#39;espace de noms     Classe publique WebClientPrintAPIController         Hérite contrôleur         &#39;GET: WebClientPrintAPI         Fonction Index () As ActionResult             Vue de retour ()         Fonction de fin         &#39;**********************************         &#39; NOTE IMPORTANTE         &#39;Dans cet exemple, nous stockons des éléments [&hellip;]","summary_points":["Création / édition de contrôleurs\nCréez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant:\n\r\n\r\n\r\n\r\nImporte Neodynamic.SDK.Web\r\n\r\nContrôleurs d&#39;espace de noms\r\n    Classe publique WebClientPrintAPIController\r\n        Hérite contrôleur\r\n\r\n        &#39;GET: WebClientPrintAPI\r\n        Fonction Index () As ActionResult\r\n            Vue de retour ()\r\n        Fonction de fin\r\n\r\n        &#39;**********************************\r\n        &#39; NOTE IMPORTANTE\r\n        &#39;Dans cet exemple, nous stockons des éléments liés aux utilisateurs (comme\r\n        &#39;la liste des imprimantes et si elles ont le WCPP\r\n        &#39;utilitaire client installé) dans le cache de l&#39;application\r\n        &#39;partie objet d&#39;ASP.NET MAIS vous pouvez le changer en\r\n        &#39;un autre stockage différent (comme une base de données ou un serveur de fichiers)!","&#39;qui sera requis dans les scénarios de Load Balacing\r\n        &#39;**********************************\r\n\r\n\r\n        \r\n        Public Sub ProcessRequest ()\r\n            &#39;obtenir l&#39;identifiant de session\r\n            Dim sessionID As String = (Si (HttpContext.Request (&quot;sid&quot;) n&#39;est pas rien, HttpContext.Request (&quot;sid&quot;), rien))\r\n\r\n            &#39;obtenir une chaîne de requête\r\n            Dim queryString As String = HttpContext.Request.Url.Query\r\n\r\n            Essayer\r\n                &#39;Déterminer et obtenir le type de demande\r\n                Dim prType As RequestType = WebClientPrint.GetProcessRequestType (queryString)\r\n\r\n                Si prType = RequestType.GenPrintScript OrElse prType = RequestType.GenWcppDetectScript alors\r\n                    &#39;Laissez WebClientPrint générer le script demandé\r\n                    Dim script As Byte () = WebClientPrint.GenerateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, rien, HttpContext.Request.Url.Scheme), queryString)\r\n\r\n                    HttpContext.Response.ContentType = &quot;text / javascript&quot;\r\n                    HttpContext.Response.BinaryWrite (script)\r\n                    HttpContext.Response.End ()\r\n\r\n                ElseIf prType = RequestType.ClientSetWcppVersion Then\r\n                    &#39;Cette demande est un ping de l&#39;utilitaire WCPP\r\n                    &#39;donc stocke l&#39;ID de session indiquant qu&#39;il a installé le WCPP\r\n                    &#39;stocke également la version de WCPP si disponible\r\n                    Dim wcppVersion As String = HttpContext.Request (&quot;wcppVer&quot;)\r\n                    Si String.IsNullOrEmpty (wcppVersion), alors\r\n                        wcppVersion = &quot;1.0.0.0&quot;\r\n                    Fin si\r\n\r\n                    HttpContext.Application.Set (ID de session &amp; &quot;wcppInstalled&quot;, wcppVersion)\r\n\r\n                ElseIf prType = RequestType.ClientSetInstalledPrinters Then\r\n                    &#39;Utilitaire WCPP envoie les imprimantes installées côté client\r\n                    &#39;so stocke cette information avec l&#39;ID de session spécifié\r\n                    Dim printers As String = HttpContext.Request (&quot;imprimantes&quot;)\r\n                    Si String.IsNullOrEmpty (printers) = False Then\r\n                        printers = System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (imprimantes))\r\n                    Fin si\r\n\r\n\r\n                    HttpContext.Application.Set (ID de session et &quot;imprimantes&quot;, imprimantes)\r\n\r\n                ElseIf prType = RequestType.ClientGetWcppVersion Then\r\n                    &#39;renvoie la version de WCPP pour le sid spécifié, le cas échéant\r\n                    Dim sidWcppVersion As Boolean = (HttpContext.Application (sessionID &amp; &quot;wcppInstalled&quot;) n&#39;est pas rien)\r\n\r\n                    HttpContext.Response.ContentType = &quot;text / plain&quot;\r\n                    Si (sidWcppVersion) Alors\r\n                        HttpContext.Response.Write (HttpContext.Application (ID de session &amp; &quot;wcppInstalled&quot;).","ToString ())\r\n                    Fin si\r\n                    HttpContext.Response.End ()\r\n\r\n                ElseIf prType = RequestType.ClientGetInstalledPrinters Then\r\n                    &#39;renvoie les imprimantes installées pour le sid spécifié, le cas échéant\r\n                    Dim sidHasPrinters As Boolean = (HttpContext.Application (sessionID &amp; &quot;printers&quot;) n&#39;est pas rien)\r\n\r\n                    HttpContext.Response.ContentType = &quot;text / plain&quot;\r\n                    Si (sidHasPrinters) Alors\r\n                        HttpContext.Response.Write (HttpContext.Application (ID de session et &quot;imprimantes&quot;).","ToString ())\r\n                    Fin si\r\n                    HttpContext.Response.End ()\r\n\r\n                Fin si\r\n            Catch ex As Exception\r\n                HttpContext.Response.StatusCode = 500\r\n                HttpContext.Response.ContentType = &quot;text / plain&quot;\r\n                HttpContext.Response.Write (ex.Message + &quot;- StackTrace:&quot; + ex.StackTrace)\r\n                HttpContext.Response.End ()\r\n            Fin essayer\r\n\r\n\r\n        End Sub\r\n\r\n    Classe de fin\r\nEnd Namespace\r\n\nModifier le AccueilContrôleur au code suivant:\n\r\n\r\n\r\n\r\nClasse publique HomeController\r\n    Hérite de System.Web.Mvc.Controller\r\n\r\n    Fonction Index () As ActionResult\r\n        ViewData (&quot;WCPPDetectionScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Uquest.Url.SrlemeScheme), HttpContext.Session."],"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":"0fa80a468b5fc7be71a12540ea1e0fd7","plain_text":"Création / édition de contrôleurs\nCréez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant:\n\r\n\r\n\r\n\r\nImporte Neodynamic.SDK.Web\r\n\r\nContrôleurs d&#39;espace de noms\r\n    Classe publique WebClientPrintAPIController\r\n        Hérite contrôleur\r\n\r\n        &#39;GET: WebClientPrintAPI\r\n        Fonction Index () As ActionResult\r\n            Vue de retour ()\r\n        Fonction de fin\r\n\r\n        &#39;**********************************\r\n        &#39; NOTE IMPORTANTE\r\n        &#39;Dans cet exemple, nous stockons des éléments liés aux utilisateurs (comme\r\n        &#39;la liste des imprimantes et si elles ont le WCPP\r\n        &#39;utilitaire client installé) dans le cache de l&#39;application\r\n        &#39;partie objet d&#39;ASP.NET MAIS vous pouvez le changer en\r\n        &#39;un autre stockage différent (comme une base de données ou un serveur de fichiers)!\r\n        &#39;qui sera requis dans les scénarios de Load Balacing\r\n        &#39;**********************************\r\n\r\n\r\n        \r\n        Public Sub ProcessRequest ()\r\n            &#39;obtenir l&#39;identifiant de session\r\n            Dim sessionID As String = (Si (HttpContext.Request (&quot;sid&quot;) n&#39;est pas rien, HttpContext.Request (&quot;sid&quot;), rien))\r\n\r\n            &#39;obtenir une chaîne de requête\r\n            Dim queryString As String = HttpContext.Request.Url.Query\r\n\r\n            Essayer\r\n                &#39;Déterminer et obtenir le type de demande\r\n                Dim prType As RequestType = WebClientPrint.GetProcessRequestType (queryString)\r\n\r\n                Si prType = RequestType.GenPrintScript OrElse prType = RequestType.GenWcppDetectScript alors\r\n                    &#39;Laissez WebClientPrint générer le script demandé\r\n                    Dim script As Byte () = WebClientPrint.GenerateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, rien, HttpContext.Request.Url.Scheme), queryString)\r\n\r\n                    HttpContext.Response.ContentType = &quot;text / javascript&quot;\r\n                    HttpContext.Response.BinaryWrite (script)\r\n                    HttpContext.Response.End ()\r\n\r\n                ElseIf prType = RequestType.ClientSetWcppVersion Then\r\n                    &#39;Cette demande est un ping de l&#39;utilitaire WCPP\r\n                    &#39;donc stocke l&#39;ID de session indiquant qu&#39;il a installé le WCPP\r\n                    &#39;stocke également la version de WCPP si disponible\r\n                    Dim wcppVersion As String = HttpContext.Request (&quot;wcppVer&quot;)\r\n                    Si String.IsNullOrEmpty (wcppVersion), alors\r\n                        wcppVersion = &quot;1.0.0.0&quot;\r\n                    Fin si\r\n\r\n                    HttpContext.Application.Set (ID de session &amp; &quot;wcppInstalled&quot;, wcppVersion)\r\n\r\n                ElseIf prType = RequestType.ClientSetInstalledPrinters Then\r\n                    &#39;Utilitaire WCPP envoie les imprimantes installées côté client\r\n                    &#39;so stocke cette information avec l&#39;ID de session spécifié\r\n                    Dim printers As String = HttpContext.Request (&quot;imprimantes&quot;)\r\n                    Si String.IsNullOrEmpty (printers) = False Then\r\n                        printers = System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (imprimantes))\r\n                    Fin si\r\n\r\n\r\n                    HttpContext.Application.Set (ID de session et &quot;imprimantes&quot;, imprimantes)\r\n\r\n                ElseIf prType = RequestType.ClientGetWcppVersion Then\r\n                    &#39;renvoie la version de WCPP pour le sid spécifié, le cas échéant\r\n                    Dim sidWcppVersion As Boolean = (HttpContext.Application (sessionID &amp; &quot;wcppInstalled&quot;) n&#39;est pas rien)\r\n\r\n                    HttpContext.Response.ContentType = &quot;text / plain&quot;\r\n                    Si (sidWcppVersion) Alors\r\n                        HttpContext.Response.Write (HttpContext.Application (ID de session &amp; &quot;wcppInstalled&quot;). ToString ())\r\n                    Fin si\r\n                    HttpContext.Response.End ()\r\n\r\n                ElseIf prType = RequestType.ClientGetInstalledPrinters Then\r\n                    &#39;renvoie les imprimantes installées pour le sid spécifié, le cas échéant\r\n                    Dim sidHasPrinters As Boolean = (HttpContext.Application (sessionID &amp; &quot;printers&quot;) n&#39;est pas rien)\r\n\r\n                    HttpContext.Response.ContentType = &quot;text / plain&quot;\r\n                    Si (sidHasPrinters) Alors\r\n                        HttpContext.Response.Write (HttpContext.Application (ID de session et &quot;imprimantes&quot;). ToString ())\r\n                    Fin si\r\n                    HttpContext.Response.End ()\r\n\r\n                Fin si\r\n            Catch ex As Exception\r\n                HttpContext.Response.StatusCode = 500\r\n                HttpContext.Response.ContentType = &quot;text / plain&quot;\r\n                HttpContext.Response.Write (ex.Message + &quot;- StackTrace:&quot; + ex.StackTrace)\r\n                HttpContext.Response.End ()\r\n            Fin essayer\r\n\r\n\r\n        End Sub\r\n\r\n    Classe de fin\r\nEnd Namespace\r\n\nModifier le AccueilContrôleur au code suivant:\n\r\n\r\n\r\n\r\nClasse publique HomeController\r\n    Hérite de System.Web.Mvc.Controller\r\n\r\n    Fonction Index () As ActionResult\r\n        ViewData (&quot;WCPPDetectionScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Uquest.Url.SrlemeScheme), HttpContext.Session.\r\n\r\n        Vue de retour ()\r\n    Fonction de fin\r\n\r\n    Fonction PrintPDF () As ActionResult\r\n\r\n        Vue de retour ()\r\n    Fonction de fin\r\n\r\nClasse de fin\r\n\nAjouter un nouveau contrôleur et nommez-le PrintPDFController et collez le code suivant:\n\r\n\r\n\r\n\r\nImporte Neodynamic.SDK.Web\r\n\r\nContrôleurs d&#39;espace de noms\r\n    Classe publique PrintPDFController\r\n        Hérite contrôleur\r\n\r\n        Fonction Index () As ActionResult\r\n\r\n            ViewData (&quot;WCPScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Url.Scheme), Url.Action (&quot;PrintFILE&quot;, &quot;PrintPDF&quot; &quot;, Nothing, HttpContext.Request.Url.Scheme), HttpContext.Session.SessionID)\r\n\r\n            Vue de retour ()\r\n        Fonction de fin\r\n\r\n         Fichier d&#39;impression secondaire public (useDefaultPrinter As String, nomImprimante As String)\r\n\r\n            &#39;IMPORTANT: pour les clients Windows, Adobe Reader doit être installé côté client.\r\n                       \r\n            &#39;chemin complet du fichier PDF à imprimer\r\n            Dim pdfFilePath As String = &quot;c:  myDocument.pdf&quot;\r\n\r\n            &#39;créer un nom de fichier temporaire pour notre fichier PDF ...\r\n            Dim fileName As String = &quot;MyFile-&quot; + Guid.NewGuid (). ToString (&quot;N&quot;) + System.IO.Path.GetExtension (pdfFilePath)\r\n            \r\n            &#39;Créer un objet PrintFile avec le fichier PDF\r\n            Dim fichier comme nouvelle PrintFile (pdfFilePath, fileName)\r\n            &#39;Créez un ClientPrintJob et renvoyez-le au client!\r\n            Dim cpj en tant que nouveau ClientPrintJob ()\r\n            &#39;set file to print ...\r\n            cpj.PrintFile = fichier\r\n\r\n            If (useDefaultPrinter = &quot;coché&quot; OrElse printerName = &quot;null&quot;) Alors\r\n                cpj.ClientPrinter = New DefaultPrinter ()\r\n            Autre\r\n                cpj.ClientPrinter = Nouveau InstalledPrinter (System.Web.HttpUtility.UrlDecode (printerName))\r\n            Fin si\r\n\r\n            System.Web.HttpContext.Current.Response.ContentType = &quot;application / octet-stream&quot;\r\n            System.Web.HttpContext.Current.Response.BinaryWrite (cpj.GetContent ())\r\n            System.Web.HttpContext.Current.Response.End ()\r\n\r\n        End Sub\r\n    Classe de fin\r\nEnd Namespace\r\n\nCréation / édition de vues\nLa vue par défaut permet de détecter si l’utilitaire WebClientPrint Processor (WCPP) est installé sur la machine cliente. Modifier le Vues / partagées / _Layout.vbhtml déposer et ajouter la section suivante au CORPS:\nAssurez-vous que cette Voir les liens vers jQuery 1.4.1+ fichier!\n\r\n\r\n    \r\n    \r\n    \r\n    ...\r\n\r\n    @RenderSection (&quot;scripts&quot;, requis: False)\r\n\r\n...\r\n\r\n\nModifier le Vues / Accueil / Index.vbhtml Fichier et copier / coller le code suivant:\n\r\n\r\n\r\n\r\n@Code\r\n    ViewData (&quot;Title&quot;) = &quot;Page d&#39;accueil&quot;\r\nCode de fin\r\n\r\n\r\n\r\n    \r\n    \r\n    Détection de l&#39;utilitaire WCPP côté client ...\r\n    S&#39;il vous plaît attendez quelques secondes ...\r\n    \r\n\r\n\r\n    # 1 Installez le processeur WebClientPrint (WCPP)!\r\n    \r\n        WCPP est une application native (sans aucune dépendance!) qui gère tous les travaux d&#39;impression\r\n        généré par le Composant WebClientPrint for ASP.NET côté serveur. La WCPP\r\n        est responsable de l’ensemble du processus d’impression et peut être\r\n        installé sur Windows, Linux, Mac et Raspberry Pi!\r\n    \r\n    \r\n        Téléchargez et installez WCPP à partir du site Web Neodynamic\r\n    \r\n    # 2 Après avoir installé WCPP ...\r\n    \r\n        Vous pouvez aller tester la page d&#39;impression ...\r\n    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nscripts de section\r\n    \r\n\r\n\r\n\r\n@ * Script de détection WCPP généré par HomeController * @\r\n\r\n@ Html.Raw (ViewData (&quot;WCPPDetectionScript&quot;))\r\n\r\n\r\n    }\r\n\r\nSection de fin\r\n\nAjoutez une nouvelle vue avec le nom suivant et sous de tels dossiers: Views / PrintPDF / Index.vbhtml Ensuite, copiez / collez le code suivant:\n\r\nImprimer le fichier PDF\r\n\r\n\r\n\r\n\t Imprimer sur l&#39;imprimante par défaut ou...\r\n\r\n\r\n\r\n\r\n\t\r\n\t\r\n\t\r\n\tCliquez pour charger et sélectionner l&#39;une des imprimantes installées!\r\n\t\r\n\t \r\n\t\r\n\r\n\r\n\r\n\tSélectionnez une imprimante installée:\r\n\t\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nscripts de section\r\n    \r\n    @ * Enregistrez le code de script WebClientPrint généré par PrintPDFController. * @\r\n\r\n    @ Html.Raw (ViewData (&quot;WCPScript&quot;))\r\n\r\nsection @end\r\n\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Création / édition de contrôleurs\nCréez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant:","Importe Neodynamic.SDK.Web","Contrôleurs d&#39;espace de noms\n    Classe publique WebClientPrintAPIController\n        Hérite contrôleur","        &#39;GET: WebClientPrintAPI\n        Fonction Index () As ActionResult\n            Vue de retour ()\n        Fonction de fin","        &#39;**********************************\n        &#39; NOTE IMPORTANTE\n        &#39;Dans cet exemple, nous stockons des éléments liés aux utilisateurs (comme\n        &#39;la liste des imprimantes et si elles ont le WCPP\n        &#39;utilitaire client installé) dans le cache de l&#39;application\n        &#39;partie objet d&#39;ASP.NET MAIS vous pouvez le changer en\n        &#39;un autre stockage différent (comme une base de données ou un serveur de fichiers)!\n        &#39;qui sera requis dans les scénarios de Load Balacing\n        &#39;**********************************","Public Sub ProcessRequest ()\n            &#39;obtenir l&#39;identifiant de session\n            Dim sessionID As String = (Si (HttpContext.Request (&quot;sid&quot;) n&#39;est pas rien, HttpContext.Request (&quot;sid&quot;), rien))","            &#39;obtenir une chaîne de requête\n            Dim queryString As String = HttpContext.Request.Url.Query","            Essayer\n                &#39;Déterminer et obtenir le type de demande\n                Dim prType As RequestType = WebClientPrint.GetProcessRequestType (queryString)","                Si prType = RequestType.GenPrintScript OrElse prType = RequestType.GenWcppDetectScript alors\n                    &#39;Laissez WebClientPrint générer le script demandé\n                    Dim script As Byte () = WebClientPrint.GenerateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, rien, HttpContext.Request.Url.Scheme), queryString)","                    HttpContext.Response.ContentType = &quot;text / javascript&quot;\n                    HttpContext.Response.BinaryWrite (script)\n                    HttpContext.Response.End ()","                ElseIf prType = RequestType.ClientSetWcppVersion Then\n                    &#39;Cette demande est un ping de l&#39;utilitaire WCPP\n                    &#39;donc stocke l&#39;ID de session indiquant qu&#39;il a installé le WCPP\n                    &#39;stocke également la version de WCPP si disponible\n                    Dim wcppVersion As String = HttpContext.Request (&quot;wcppVer&quot;)\n                    Si String.IsNullOrEmpty (wcppVersion), alors\n                        wcppVersion = &quot;1.0.0.0&quot;\n                    Fin si","                    HttpContext.Application.Set (ID de session &amp; &quot;wcppInstalled&quot;, wcppVersion)","                ElseIf prType = RequestType.ClientSetInstalledPrinters Then\n                    &#39;Utilitaire WCPP envoie les imprimantes installées côté client\n                    &#39;so stocke cette information avec l&#39;ID de session spécifié\n                    Dim printers As String = HttpContext.Request (&quot;imprimantes&quot;)\n                    Si String.IsNullOrEmpty (printers) = False Then\n                        printers = System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (imprimantes))\n                    Fin si","                    HttpContext.Application.Set (ID de session et &quot;imprimantes&quot;, imprimantes)","                ElseIf prType = RequestType.ClientGetWcppVersion Then\n                    &#39;renvoie la version de WCPP pour le sid spécifié, le cas échéant\n                    Dim sidWcppVersion As Boolean = (HttpContext.Application (sessionID &amp; &quot;wcppInstalled&quot;) n&#39;est pas rien)","                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidWcppVersion) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session &amp; &quot;wcppInstalled&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()","                ElseIf prType = RequestType.ClientGetInstalledPrinters Then\n                    &#39;renvoie les imprimantes installées pour le sid spécifié, le cas échéant\n                    Dim sidHasPrinters As Boolean = (HttpContext.Application (sessionID &amp; &quot;printers&quot;) n&#39;est pas rien)","                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidHasPrinters) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session et &quot;imprimantes&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()","                Fin si\n            Catch ex As Exception\n                HttpContext.Response.StatusCode = 500\n                HttpContext.Response.ContentType = &quot;text / plain&quot;\n                HttpContext.Response.Write (ex.Message + &quot;- StackTrace:&quot; + ex.StackTrace)\n                HttpContext.Response.End ()\n            Fin essayer","        End Sub","    Classe de fin\nEnd Namespace","Modifier le AccueilContrôleur au code suivant:","Classe publique HomeController\n    Hérite de System.Web.Mvc.Controller","    Fonction Index () As ActionResult\n        ViewData (&quot;WCPPDetectionScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Uquest.Url.SrlemeScheme), HttpContext.Session.","        Vue de retour ()\n    Fonction de fin","    Fonction PrintPDF () As ActionResult","        Vue de retour ()\n    Fonction de fin","Classe de fin","Ajouter un nouveau contrôleur et nommez-le PrintPDFController et collez le code suivant:","Importe Neodynamic.SDK.Web","Contrôleurs d&#39;espace de noms\n    Classe publique PrintPDFController\n        Hérite contrôleur","        Fonction Index () As ActionResult","            ViewData (&quot;WCPScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Url.Scheme), Url.Action (&quot;PrintFILE&quot;, &quot;PrintPDF&quot; &quot;, Nothing, HttpContext.Request.Url.Scheme), HttpContext.Session.SessionID)","            Vue de retour ()\n        Fonction de fin","Fichier d&#39;impression secondaire public (useDefaultPrinter As String, nomImprimante As String)","            &#39;IMPORTANT: pour les clients Windows, Adobe Reader doit être installé côté client.\n                       \n            &#39;chemin complet du fichier PDF à imprimer\n            Dim pdfFilePath As String = &quot;c:  myDocument.pdf&quot;","            &#39;créer un nom de fichier temporaire pour notre fichier PDF ...\n            Dim fileName As String = &quot;MyFile-&quot; + Guid.NewGuid (). ToString (&quot;N&quot;) + System.IO.Path.GetExtension (pdfFilePath)\n            \n            &#39;Créer un objet PrintFile avec le fichier PDF\n            Dim fichier comme nouvelle PrintFile (pdfFilePath, fileName)\n            &#39;Créez un ClientPrintJob et renvoyez-le au client!\n            Dim cpj en tant que nouveau ClientPrintJob ()\n            &#39;set file to print ...\n            cpj.PrintFile = fichier","            If (useDefaultPrinter = &quot;coché&quot; OrElse printerName = &quot;null&quot;) Alors\n                cpj.ClientPrinter = New DefaultPrinter ()\n            Autre\n                cpj.ClientPrinter = Nouveau InstalledPrinter (System.Web.HttpUtility.UrlDecode (printerName))\n            Fin si","            System.Web.HttpContext.Current.Response.ContentType = &quot;application / octet-stream&quot;\n            System.Web.HttpContext.Current.Response.BinaryWrite (cpj.GetContent ())\n            System.Web.HttpContext.Current.Response.End ()","        End Sub\n    Classe de fin\nEnd Namespace","Création / édition de vues\nLa vue par défaut permet de détecter si l’utilitaire WebClientPrint Processor (WCPP) est installé sur la machine cliente. Modifier le Vues / partagées / _Layout.vbhtml déposer et ajouter la section suivante au CORPS:\nAssurez-vous que cette Voir les liens vers jQuery 1.4.1+ fichier!","...","    @RenderSection (&quot;scripts&quot;, requis: False)","...","Modifier le Vues / Accueil / Index.vbhtml Fichier et copier / coller le code suivant:","@Code\n    ViewData (&quot;Title&quot;) = &quot;Page d&#39;accueil&quot;\nCode de fin","Détection de l&#39;utilitaire WCPP côté client ...\n    S&#39;il vous plaît attendez quelques secondes ...","# 1 Installez le processeur WebClientPrint (WCPP)!\n    \n        WCPP est une application native (sans aucune dépendance!) qui gère tous les travaux d&#39;impression\n        généré par le Composant WebClientPrint for ASP.NET côté serveur. La WCPP\n        est responsable de l’ensemble du processus d’impression et peut être\n        installé sur Windows, Linux, Mac et Raspberry Pi!\n    \n    \n        Téléchargez et installez WCPP à partir du site Web Neodynamic\n    \n    # 2 Après avoir installé WCPP ...\n    \n        Vous pouvez aller tester la page d&#39;impression ...","scripts de section","@ * Script de détection WCPP généré par HomeController * @","@ Html.Raw (ViewData (&quot;WCPPDetectionScript&quot;))","    }","Section de fin","Ajoutez une nouvelle vue avec le nom suivant et sous de tels dossiers: Views / PrintPDF / Index.vbhtml Ensuite, copiez / collez le code suivant:","Imprimer le fichier PDF","Imprimer sur l&#39;imprimante par défaut ou...","Cliquez pour charger et sélectionner l&#39;une des imprimantes installées!","Sélectionnez une imprimante installée:","scripts de section\n    \n    @ * Enregistrez le code de script WebClientPrint généré par PrintPDFController. * @","    @ Html.Raw (ViewData (&quot;WCPScript&quot;))","section @end","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Création / édition de contrôleurs\nCréez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant:","html":"<p>Création / édition de contrôleurs\nCréez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant:</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Importe Neodynamic.SDK.Web","html":"<p>Importe Neodynamic.SDK.Web</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Contrôleurs d&#39;espace de noms\n    Classe publique WebClientPrintAPIController\n        Hérite contrôleur","html":"<p>Contrôleurs d&#039;espace de noms\n    Classe publique WebClientPrintAPIController\n        Hérite contrôleur</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"        &#39;GET: WebClientPrintAPI\n        Fonction Index () As ActionResult\n            Vue de retour ()\n        Fonction de fin","html":"<p>        &#039;GET: WebClientPrintAPI\n        Fonction Index () As ActionResult\n            Vue de retour ()\n        Fonction de fin</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"        &#39;**********************************\n        &#39; NOTE IMPORTANTE\n        &#39;Dans cet exemple, nous stockons des éléments liés aux utilisateurs (comme\n        &#39;la liste des imprimantes et si elles ont le WCPP\n        &#39;utilitaire client installé) dans le cache de l&#39;application\n        &#39;partie objet d&#39;ASP.NET MAIS vous pouvez le changer en\n        &#39;un autre stockage différent (comme une base de données ou un serveur de fichiers)!\n        &#39;qui sera requis dans les scénarios de Load Balacing\n        &#39;**********************************","html":"<p>        &#039;**********************************\n        &#039; NOTE IMPORTANTE\n        &#039;Dans cet exemple, nous stockons des éléments liés aux utilisateurs (comme\n        &#039;la liste des imprimantes et si elles ont le WCPP\n        &#039;utilitaire client installé) dans le cache de l&#039;application\n        &#039;partie objet d&#039;ASP.NET MAIS vous pouvez le changer en\n        &#039;un autre stockage différent (comme une base de données ou un serveur de fichiers)!\n        &#039;qui sera requis dans les scénarios de Load Balacing\n        &#039;**********************************</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Public Sub ProcessRequest ()\n            &#39;obtenir l&#39;identifiant de session\n            Dim sessionID As String = (Si (HttpContext.Request (&quot;sid&quot;) n&#39;est pas rien, HttpContext.Request (&quot;sid&quot;), rien))","html":"<p>Public Sub ProcessRequest ()\n            &#039;obtenir l&#039;identifiant de session\n            Dim sessionID As String = (Si (HttpContext.Request (&quot;sid&quot;) n&#039;est pas rien, HttpContext.Request (&quot;sid&quot;), rien))</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"            &#39;obtenir une chaîne de requête\n            Dim queryString As String = HttpContext.Request.Url.Query","html":"<p>            &#039;obtenir une chaîne de requête\n            Dim queryString As String = HttpContext.Request.Url.Query</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"            Essayer\n                &#39;Déterminer et obtenir le type de demande\n                Dim prType As RequestType = WebClientPrint.GetProcessRequestType (queryString)","html":"<p>            Essayer\n                &#039;Déterminer et obtenir le type de demande\n                Dim prType As RequestType = WebClientPrint.GetProcessRequestType (queryString)</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"                Si prType = RequestType.GenPrintScript OrElse prType = RequestType.GenWcppDetectScript alors\n                    &#39;Laissez WebClientPrint générer le script demandé\n                    Dim script As Byte () = WebClientPrint.GenerateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, rien, HttpContext.Request.Url.Scheme), queryString)","html":"<p>                Si prType = RequestType.GenPrintScript OrElse prType = RequestType.GenWcppDetectScript alors\n                    &#039;Laissez WebClientPrint générer le script demandé\n                    Dim script As Byte () = WebClientPrint.GenerateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, rien, HttpContext.Request.Url.Scheme), queryString)</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"                    HttpContext.Response.ContentType = &quot;text / javascript&quot;\n                    HttpContext.Response.BinaryWrite (script)\n                    HttpContext.Response.End ()","html":"<p>                    HttpContext.Response.ContentType = &quot;text / javascript&quot;\n                    HttpContext.Response.BinaryWrite (script)\n                    HttpContext.Response.End ()</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"                ElseIf prType = RequestType.ClientSetWcppVersion Then\n                    &#39;Cette demande est un ping de l&#39;utilitaire WCPP\n                    &#39;donc stocke l&#39;ID de session indiquant qu&#39;il a installé le WCPP\n                    &#39;stocke également la version de WCPP si disponible\n                    Dim wcppVersion As String = HttpContext.Request (&quot;wcppVer&quot;)\n                    Si String.IsNullOrEmpty (wcppVersion), alors\n                        wcppVersion = &quot;1.0.0.0&quot;\n                    Fin si","html":"<p>                ElseIf prType = RequestType.ClientSetWcppVersion Then\n                    &#039;Cette demande est un ping de l&#039;utilitaire WCPP\n                    &#039;donc stocke l&#039;ID de session indiquant qu&#039;il a installé le WCPP\n                    &#039;stocke également la version de WCPP si disponible\n                    Dim wcppVersion As String = HttpContext.Request (&quot;wcppVer&quot;)\n                    Si String.IsNullOrEmpty (wcppVersion), alors\n                        wcppVersion = &quot;1.0.0.0&quot;\n                    Fin si</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"                    HttpContext.Application.Set (ID de session &amp; &quot;wcppInstalled&quot;, wcppVersion)","html":"<p>                    HttpContext.Application.Set (ID de session &amp; &quot;wcppInstalled&quot;, wcppVersion)</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"                ElseIf prType = RequestType.ClientSetInstalledPrinters Then\n                    &#39;Utilitaire WCPP envoie les imprimantes installées côté client\n                    &#39;so stocke cette information avec l&#39;ID de session spécifié\n                    Dim printers As String = HttpContext.Request (&quot;imprimantes&quot;)\n                    Si String.IsNullOrEmpty (printers) = False Then\n                        printers = System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (imprimantes))\n                    Fin si","html":"<p>                ElseIf prType = RequestType.ClientSetInstalledPrinters Then\n                    &#039;Utilitaire WCPP envoie les imprimantes installées côté client\n                    &#039;so stocke cette information avec l&#039;ID de session spécifié\n                    Dim printers As String = HttpContext.Request (&quot;imprimantes&quot;)\n                    Si String.IsNullOrEmpty (printers) = False Then\n                        printers = System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (imprimantes))\n                    Fin si</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"                    HttpContext.Application.Set (ID de session et &quot;imprimantes&quot;, imprimantes)","html":"<p>                    HttpContext.Application.Set (ID de session et &quot;imprimantes&quot;, imprimantes)</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"                ElseIf prType = RequestType.ClientGetWcppVersion Then\n                    &#39;renvoie la version de WCPP pour le sid spécifié, le cas échéant\n                    Dim sidWcppVersion As Boolean = (HttpContext.Application (sessionID &amp; &quot;wcppInstalled&quot;) n&#39;est pas rien)","html":"<p>                ElseIf prType = RequestType.ClientGetWcppVersion Then\n                    &#039;renvoie la version de WCPP pour le sid spécifié, le cas échéant\n                    Dim sidWcppVersion As Boolean = (HttpContext.Application (sessionID &amp; &quot;wcppInstalled&quot;) n&#039;est pas rien)</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidWcppVersion) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session &amp; &quot;wcppInstalled&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()","html":"<p>                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidWcppVersion) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session &amp; &quot;wcppInstalled&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"                ElseIf prType = RequestType.ClientGetInstalledPrinters Then\n                    &#39;renvoie les imprimantes installées pour le sid spécifié, le cas échéant\n                    Dim sidHasPrinters As Boolean = (HttpContext.Application (sessionID &amp; &quot;printers&quot;) n&#39;est pas rien)","html":"<p>                ElseIf prType = RequestType.ClientGetInstalledPrinters Then\n                    &#039;renvoie les imprimantes installées pour le sid spécifié, le cas échéant\n                    Dim sidHasPrinters As Boolean = (HttpContext.Application (sessionID &amp; &quot;printers&quot;) n&#039;est pas rien)</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidHasPrinters) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session et &quot;imprimantes&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()","html":"<p>                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidHasPrinters) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session et &quot;imprimantes&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"                Fin si\n            Catch ex As Exception\n                HttpContext.Response.StatusCode = 500\n                HttpContext.Response.ContentType = &quot;text / plain&quot;\n                HttpContext.Response.Write (ex.Message + &quot;- StackTrace:&quot; + ex.StackTrace)\n                HttpContext.Response.End ()\n            Fin essayer","html":"<p>                Fin si\n            Catch ex As Exception\n                HttpContext.Response.StatusCode = 500\n                HttpContext.Response.ContentType = &quot;text / plain&quot;\n                HttpContext.Response.Write (ex.Message + &quot;- StackTrace:&quot; + ex.StackTrace)\n                HttpContext.Response.End ()\n            Fin essayer</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"        End Sub","html":"<p>        End Sub</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"    Classe de fin\nEnd Namespace","html":"<p>    Classe de fin\nEnd Namespace</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"Modifier le AccueilContrôleur au code suivant:","html":"<p>Modifier le AccueilContrôleur au code suivant:</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"Classe publique HomeController\n    Hérite de System.Web.Mvc.Controller","html":"<p>Classe publique HomeController\n    Hérite de System.Web.Mvc.Controller</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"    Fonction Index () As ActionResult\n        ViewData (&quot;WCPPDetectionScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Uquest.Url.SrlemeScheme), HttpContext.Session.","html":"<p>    Fonction Index () As ActionResult\n        ViewData (&quot;WCPPDetectionScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Uquest.Url.SrlemeScheme), HttpContext.Session.</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"        Vue de retour ()\n    Fonction de fin","html":"<p>        Vue de retour ()\n    Fonction de fin</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"    Fonction PrintPDF () As ActionResult","html":"<p>    Fonction PrintPDF () As ActionResult</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"        Vue de retour ()\n    Fonction de fin","html":"<p>        Vue de retour ()\n    Fonction de fin</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"Classe de fin","html":"<p>Classe de fin</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"Ajouter un nouveau contrôleur et nommez-le PrintPDFController et collez le code suivant:","html":"<p>Ajouter un nouveau contrôleur et nommez-le PrintPDFController et collez le code suivant:</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"Importe Neodynamic.SDK.Web","html":"<p>Importe Neodynamic.SDK.Web</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"Contrôleurs d&#39;espace de noms\n    Classe publique PrintPDFController\n        Hérite contrôleur","html":"<p>Contrôleurs d&#039;espace de noms\n    Classe publique PrintPDFController\n        Hérite contrôleur</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"        Fonction Index () As ActionResult","html":"<p>        Fonction Index () As ActionResult</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"            ViewData (&quot;WCPScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Url.Scheme), Url.Action (&quot;PrintFILE&quot;, &quot;PrintPDF&quot; &quot;, Nothing, HttpContext.Request.Url.Scheme), HttpContext.Session.SessionID)","html":"<p>            ViewData (&quot;WCPScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Url.Scheme), Url.Action (&quot;PrintFILE&quot;, &quot;PrintPDF&quot; &quot;, Nothing, HttpContext.Request.Url.Scheme), HttpContext.Session.SessionID)</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"            Vue de retour ()\n        Fonction de fin","html":"<p>            Vue de retour ()\n        Fonction de fin</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"Fichier d&#39;impression secondaire public (useDefaultPrinter As String, nomImprimante As String)","html":"<p>Fichier d&#039;impression secondaire public (useDefaultPrinter As String, nomImprimante As String)</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"            &#39;IMPORTANT: pour les clients Windows, Adobe Reader doit être installé côté client.\n                       \n            &#39;chemin complet du fichier PDF à imprimer\n            Dim pdfFilePath As String = &quot;c:  myDocument.pdf&quot;","html":"<p>            &#039;IMPORTANT: pour les clients Windows, Adobe Reader doit être installé côté client.\n                       \n            &#039;chemin complet du fichier PDF à imprimer\n            Dim pdfFilePath As String = &quot;c:  myDocument.pdf&quot;</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"            &#39;créer un nom de fichier temporaire pour notre fichier PDF ...\n            Dim fileName As String = &quot;MyFile-&quot; + Guid.NewGuid (). ToString (&quot;N&quot;) + System.IO.Path.GetExtension (pdfFilePath)\n            \n            &#39;Créer un objet PrintFile avec le fichier PDF\n            Dim fichier comme nouvelle PrintFile (pdfFilePath, fileName)\n            &#39;Créez un ClientPrintJob et renvoyez-le au client!\n            Dim cpj en tant que nouveau ClientPrintJob ()\n            &#39;set file to print ...\n            cpj.PrintFile = fichier","html":"<p>            &#039;créer un nom de fichier temporaire pour notre fichier PDF ...\n            Dim fileName As String = &quot;MyFile-&quot; + Guid.NewGuid (). ToString (&quot;N&quot;) + System.IO.Path.GetExtension (pdfFilePath)\n            \n            &#039;Créer un objet PrintFile avec le fichier PDF\n            Dim fichier comme nouvelle PrintFile (pdfFilePath, fileName)\n            &#039;Créez un ClientPrintJob et renvoyez-le au client!\n            Dim cpj en tant que nouveau ClientPrintJob ()\n            &#039;set file to print ...\n            cpj.PrintFile = fichier</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"            If (useDefaultPrinter = &quot;coché&quot; OrElse printerName = &quot;null&quot;) Alors\n                cpj.ClientPrinter = New DefaultPrinter ()\n            Autre\n                cpj.ClientPrinter = Nouveau InstalledPrinter (System.Web.HttpUtility.UrlDecode (printerName))\n            Fin si","html":"<p>            If (useDefaultPrinter = &quot;coché&quot; OrElse printerName = &quot;null&quot;) Alors\n                cpj.ClientPrinter = New DefaultPrinter ()\n            Autre\n                cpj.ClientPrinter = Nouveau InstalledPrinter (System.Web.HttpUtility.UrlDecode (printerName))\n            Fin si</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"            System.Web.HttpContext.Current.Response.ContentType = &quot;application / octet-stream&quot;\n            System.Web.HttpContext.Current.Response.BinaryWrite (cpj.GetContent ())\n            System.Web.HttpContext.Current.Response.End ()","html":"<p>            System.Web.HttpContext.Current.Response.ContentType = &quot;application / octet-stream&quot;\n            System.Web.HttpContext.Current.Response.BinaryWrite (cpj.GetContent ())\n            System.Web.HttpContext.Current.Response.End ()</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"        End Sub\n    Classe de fin\nEnd Namespace","html":"<p>        End Sub\n    Classe de fin\nEnd Namespace</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"Création / édition de vues\nLa vue par défaut permet de détecter si l’utilitaire WebClientPrint Processor (WCPP) est installé sur la machine cliente. Modifier le Vues / partagées / _Layout.vbhtml déposer et ajouter la section suivante au CORPS:\nAssurez-vous que cette Voir les liens vers jQuery 1.4.1+ fichier!","html":"<p>Création / édition de vues\nLa vue par défaut permet de détecter si l’utilitaire WebClientPrint Processor (WCPP) est installé sur la machine cliente. Modifier le Vues / partagées / _Layout.vbhtml déposer et ajouter la section suivante au CORPS:\nAssurez-vous que cette Voir les liens vers jQuery 1.4.1+ fichier!</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"...","html":"<p>...</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"    @RenderSection (&quot;scripts&quot;, requis: False)","html":"<p>    @RenderSection (&quot;scripts&quot;, requis: False)</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"...","html":"<p>...</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"Modifier le Vues / Accueil / Index.vbhtml Fichier et copier / coller le code suivant:","html":"<p>Modifier le Vues / Accueil / Index.vbhtml Fichier et copier / coller le code suivant:</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"@Code\n    ViewData (&quot;Title&quot;) = &quot;Page d&#39;accueil&quot;\nCode de fin","html":"<p>@Code\n    ViewData (&quot;Title&quot;) = &quot;Page d&#039;accueil&quot;\nCode de fin</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"Détection de l&#39;utilitaire WCPP côté client ...\n    S&#39;il vous plaît attendez quelques secondes ...","html":"<p>Détection de l&#039;utilitaire WCPP côté client ...\n    S&#039;il vous plaît attendez quelques secondes ...</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"# 1 Installez le processeur WebClientPrint (WCPP)!\n    \n        WCPP est une application native (sans aucune dépendance!) qui gère tous les travaux d&#39;impression\n        généré par le Composant WebClientPrint for ASP.NET côté serveur. La WCPP\n        est responsable de l’ensemble du processus d’impression et peut être\n        installé sur Windows, Linux, Mac et Raspberry Pi!\n    \n    \n        Téléchargez et installez WCPP à partir du site Web Neodynamic\n    \n    # 2 Après avoir installé WCPP ...\n    \n        Vous pouvez aller tester la page d&#39;impression ...","html":"<p># 1 Installez le processeur WebClientPrint (WCPP)!\n    \n        WCPP est une application native (sans aucune dépendance!) qui gère tous les travaux d&#039;impression\n        généré par le Composant WebClientPrint for ASP.NET côté serveur. La WCPP\n        est responsable de l’ensemble du processus d’impression et peut être\n        installé sur Windows, Linux, Mac et Raspberry Pi!\n    \n    \n        Téléchargez et installez WCPP à partir du site Web Neodynamic\n    \n    # 2 Après avoir installé WCPP ...\n    \n        Vous pouvez aller tester la page d&#039;impression ...</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"scripts de section","html":"<p>scripts de section</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"@ * Script de détection WCPP généré par HomeController * @","html":"<p>@ * Script de détection WCPP généré par HomeController * @</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"@ Html.Raw (ViewData (&quot;WCPPDetectionScript&quot;))","html":"<p>@ Html.Raw (ViewData (&quot;WCPPDetectionScript&quot;))</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"    }","html":"<p>    }</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"Section de fin","html":"<p>Section de fin</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"Ajoutez une nouvelle vue avec le nom suivant et sous de tels dossiers: Views / PrintPDF / Index.vbhtml Ensuite, copiez / collez le code suivant:","html":"<p>Ajoutez une nouvelle vue avec le nom suivant et sous de tels dossiers: Views / PrintPDF / Index.vbhtml Ensuite, copiez / collez le code suivant:</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"Imprimer le fichier PDF","html":"<p>Imprimer le fichier PDF</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"Imprimer sur l&#39;imprimante par défaut ou...","html":"<p>Imprimer sur l&#039;imprimante par défaut ou...</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"Cliquez pour charger et sélectionner l&#39;une des imprimantes installées!","html":"<p>Cliquez pour charger et sélectionner l&#039;une des imprimantes installées!</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"Sélectionnez une imprimante installée:","html":"<p>Sélectionnez une imprimante installée:</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"scripts de section\n    \n    @ * Enregistrez le code de script WebClientPrint généré par PrintPDFController. * @","html":"<p>scripts de section\n    \n    @ * Enregistrez le code de script WebClientPrint généré par PrintPDFController. * @</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"    @ Html.Raw (ViewData (&quot;WCPScript&quot;))","html":"<p>    @ Html.Raw (ViewData (&quot;WCPScript&quot;))</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"section @end","html":"<p>section @end</p>"},{"id":"text-62","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":"Création / édition de contrôleurs\nCréez un nouveau contrôleur et nommez-le WebClientPrintAPIController puis copiez / collez le code suivant:"},{"id":"text-2","heading":"Text","content":"Importe Neodynamic.SDK.Web"},{"id":"text-3","heading":"Text","content":"Contrôleurs d&#39;espace de noms\n    Classe publique WebClientPrintAPIController\n        Hérite contrôleur"},{"id":"text-4","heading":"Text","content":"        &#39;GET: WebClientPrintAPI\n        Fonction Index () As ActionResult\n            Vue de retour ()\n        Fonction de fin"},{"id":"text-5","heading":"Text","content":"        &#39;**********************************\n        &#39; NOTE IMPORTANTE\n        &#39;Dans cet exemple, nous stockons des éléments liés aux utilisateurs (comme\n        &#39;la liste des imprimantes et si elles ont le WCPP\n        &#39;utilitaire client installé) dans le cache de l&#39;application\n        &#39;partie objet d&#39;ASP.NET MAIS vous pouvez le changer en\n        &#39;un autre stockage différent (comme une base de données ou un serveur de fichiers)!\n        &#39;qui sera requis dans les scénarios de Load Balacing\n        &#39;**********************************"},{"id":"text-6","heading":"Text","content":"Public Sub ProcessRequest ()\n            &#39;obtenir l&#39;identifiant de session\n            Dim sessionID As String = (Si (HttpContext.Request (&quot;sid&quot;) n&#39;est pas rien, HttpContext.Request (&quot;sid&quot;), rien))"},{"id":"text-7","heading":"Text","content":"            &#39;obtenir une chaîne de requête\n            Dim queryString As String = HttpContext.Request.Url.Query"},{"id":"text-8","heading":"Text","content":"            Essayer\n                &#39;Déterminer et obtenir le type de demande\n                Dim prType As RequestType = WebClientPrint.GetProcessRequestType (queryString)"},{"id":"text-9","heading":"Text","content":"                Si prType = RequestType.GenPrintScript OrElse prType = RequestType.GenWcppDetectScript alors\n                    &#39;Laissez WebClientPrint générer le script demandé\n                    Dim script As Byte () = WebClientPrint.GenerateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, rien, HttpContext.Request.Url.Scheme), queryString)"},{"id":"text-10","heading":"Text","content":"                    HttpContext.Response.ContentType = &quot;text / javascript&quot;\n                    HttpContext.Response.BinaryWrite (script)\n                    HttpContext.Response.End ()"},{"id":"text-11","heading":"Text","content":"                ElseIf prType = RequestType.ClientSetWcppVersion Then\n                    &#39;Cette demande est un ping de l&#39;utilitaire WCPP\n                    &#39;donc stocke l&#39;ID de session indiquant qu&#39;il a installé le WCPP\n                    &#39;stocke également la version de WCPP si disponible\n                    Dim wcppVersion As String = HttpContext.Request (&quot;wcppVer&quot;)\n                    Si String.IsNullOrEmpty (wcppVersion), alors\n                        wcppVersion = &quot;1.0.0.0&quot;\n                    Fin si"},{"id":"text-12","heading":"Text","content":"                    HttpContext.Application.Set (ID de session &amp; &quot;wcppInstalled&quot;, wcppVersion)"},{"id":"text-13","heading":"Text","content":"                ElseIf prType = RequestType.ClientSetInstalledPrinters Then\n                    &#39;Utilitaire WCPP envoie les imprimantes installées côté client\n                    &#39;so stocke cette information avec l&#39;ID de session spécifié\n                    Dim printers As String = HttpContext.Request (&quot;imprimantes&quot;)\n                    Si String.IsNullOrEmpty (printers) = False Then\n                        printers = System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (imprimantes))\n                    Fin si"},{"id":"text-14","heading":"Text","content":"                    HttpContext.Application.Set (ID de session et &quot;imprimantes&quot;, imprimantes)"},{"id":"text-15","heading":"Text","content":"                ElseIf prType = RequestType.ClientGetWcppVersion Then\n                    &#39;renvoie la version de WCPP pour le sid spécifié, le cas échéant\n                    Dim sidWcppVersion As Boolean = (HttpContext.Application (sessionID &amp; &quot;wcppInstalled&quot;) n&#39;est pas rien)"},{"id":"text-16","heading":"Text","content":"                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidWcppVersion) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session &amp; &quot;wcppInstalled&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()"},{"id":"text-17","heading":"Text","content":"                ElseIf prType = RequestType.ClientGetInstalledPrinters Then\n                    &#39;renvoie les imprimantes installées pour le sid spécifié, le cas échéant\n                    Dim sidHasPrinters As Boolean = (HttpContext.Application (sessionID &amp; &quot;printers&quot;) n&#39;est pas rien)"},{"id":"text-18","heading":"Text","content":"                    HttpContext.Response.ContentType = &quot;text / plain&quot;\n                    Si (sidHasPrinters) Alors\n                        HttpContext.Response.Write (HttpContext.Application (ID de session et &quot;imprimantes&quot;). ToString ())\n                    Fin si\n                    HttpContext.Response.End ()"},{"id":"text-19","heading":"Text","content":"                Fin si\n            Catch ex As Exception\n                HttpContext.Response.StatusCode = 500\n                HttpContext.Response.ContentType = &quot;text / plain&quot;\n                HttpContext.Response.Write (ex.Message + &quot;- StackTrace:&quot; + ex.StackTrace)\n                HttpContext.Response.End ()\n            Fin essayer"},{"id":"text-20","heading":"Text","content":"        End Sub"},{"id":"text-21","heading":"Text","content":"    Classe de fin\nEnd Namespace"},{"id":"text-22","heading":"Text","content":"Modifier le AccueilContrôleur au code suivant:"},{"id":"text-23","heading":"Text","content":"Classe publique HomeController\n    Hérite de System.Web.Mvc.Controller"},{"id":"text-24","heading":"Text","content":"    Fonction Index () As ActionResult\n        ViewData (&quot;WCPPDetectionScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateWcppDetectionScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Uquest.Url.SrlemeScheme), HttpContext.Session."},{"id":"text-25","heading":"Text","content":"        Vue de retour ()\n    Fonction de fin"},{"id":"text-26","heading":"Text","content":"    Fonction PrintPDF () As ActionResult"},{"id":"text-27","heading":"Text","content":"        Vue de retour ()\n    Fonction de fin"},{"id":"text-28","heading":"Text","content":"Classe de fin"},{"id":"text-29","heading":"Text","content":"Ajouter un nouveau contrôleur et nommez-le PrintPDFController et collez le code suivant:"},{"id":"text-30","heading":"Text","content":"Importe Neodynamic.SDK.Web"},{"id":"text-31","heading":"Text","content":"Contrôleurs d&#39;espace de noms\n    Classe publique PrintPDFController\n        Hérite contrôleur"},{"id":"text-32","heading":"Text","content":"        Fonction Index () As ActionResult"},{"id":"text-33","heading":"Text","content":"            ViewData (&quot;WCPScript&quot;) = Neodynamic.SDK.Web.WebClientPrint.CreateScript (Url.Action (&quot;ProcessRequest&quot;, &quot;WebClientPrintAPI&quot;, Aucune, HttpContext.Request.Url.Scheme), Url.Action (&quot;PrintFILE&quot;, &quot;PrintPDF&quot; &quot;, Nothing, HttpContext.Request.Url.Scheme), HttpContext.Session.SessionID)"},{"id":"text-34","heading":"Text","content":"            Vue de retour ()\n        Fonction de fin"},{"id":"text-35","heading":"Text","content":"Fichier d&#39;impression secondaire public (useDefaultPrinter As String, nomImprimante As String)"},{"id":"text-36","heading":"Text","content":"            &#39;IMPORTANT: pour les clients Windows, Adobe Reader doit être installé côté client.\n                       \n            &#39;chemin complet du fichier PDF à imprimer\n            Dim pdfFilePath As String = &quot;c:  myDocument.pdf&quot;"},{"id":"text-37","heading":"Text","content":"            &#39;créer un nom de fichier temporaire pour notre fichier PDF ...\n            Dim fileName As String = &quot;MyFile-&quot; + Guid.NewGuid (). ToString (&quot;N&quot;) + System.IO.Path.GetExtension (pdfFilePath)\n            \n            &#39;Créer un objet PrintFile avec le fichier PDF\n            Dim fichier comme nouvelle PrintFile (pdfFilePath, fileName)\n            &#39;Créez un ClientPrintJob et renvoyez-le au client!\n            Dim cpj en tant que nouveau ClientPrintJob ()\n            &#39;set file to print ...\n            cpj.PrintFile = fichier"},{"id":"text-38","heading":"Text","content":"            If (useDefaultPrinter = &quot;coché&quot; OrElse printerName = &quot;null&quot;) Alors\n                cpj.ClientPrinter = New DefaultPrinter ()\n            Autre\n                cpj.ClientPrinter = Nouveau InstalledPrinter (System.Web.HttpUtility.UrlDecode (printerName))\n            Fin si"},{"id":"text-39","heading":"Text","content":"            System.Web.HttpContext.Current.Response.ContentType = &quot;application / octet-stream&quot;\n            System.Web.HttpContext.Current.Response.BinaryWrite (cpj.GetContent ())\n            System.Web.HttpContext.Current.Response.End ()"},{"id":"text-40","heading":"Text","content":"        End Sub\n    Classe de fin\nEnd Namespace"},{"id":"text-41","heading":"Text","content":"Création / édition de vues\nLa vue par défaut permet de détecter si l’utilitaire WebClientPrint Processor (WCPP) est installé sur la machine cliente. Modifier le Vues / partagées / _Layout.vbhtml déposer et ajouter la section suivante au CORPS:\nAssurez-vous que cette Voir les liens vers jQuery 1.4.1+ fichier!"},{"id":"text-42","heading":"Text","content":"..."},{"id":"text-43","heading":"Text","content":"    @RenderSection (&quot;scripts&quot;, requis: False)"},{"id":"text-44","heading":"Text","content":"..."},{"id":"text-45","heading":"Text","content":"Modifier le Vues / Accueil / Index.vbhtml Fichier et copier / coller le code suivant:"},{"id":"text-46","heading":"Text","content":"@Code\n    ViewData (&quot;Title&quot;) = &quot;Page d&#39;accueil&quot;\nCode de fin"},{"id":"text-47","heading":"Text","content":"Détection de l&#39;utilitaire WCPP côté client ...\n    S&#39;il vous plaît attendez quelques secondes ..."},{"id":"text-48","heading":"Text","content":"# 1 Installez le processeur WebClientPrint (WCPP)!\n    \n        WCPP est une application native (sans aucune dépendance!) qui gère tous les travaux d&#39;impression\n        généré par le Composant WebClientPrint for ASP.NET côté serveur. La WCPP\n        est responsable de l’ensemble du processus d’impression et peut être\n        installé sur Windows, Linux, Mac et Raspberry Pi!\n    \n    \n        Téléchargez et installez WCPP à partir du site Web Neodynamic\n    \n    # 2 Après avoir installé WCPP ...\n    \n        Vous pouvez aller tester la page d&#39;impression ..."},{"id":"text-49","heading":"Text","content":"scripts de section"},{"id":"text-50","heading":"Text","content":"@ * Script de détection WCPP généré par HomeController * @"},{"id":"text-51","heading":"Text","content":"@ Html.Raw (ViewData (&quot;WCPPDetectionScript&quot;))"},{"id":"text-52","heading":"Text","content":"    }"},{"id":"text-53","heading":"Text","content":"Section de fin"},{"id":"text-54","heading":"Text","content":"Ajoutez une nouvelle vue avec le nom suivant et sous de tels dossiers: Views / PrintPDF / Index.vbhtml Ensuite, copiez / collez le code suivant:"},{"id":"text-55","heading":"Text","content":"Imprimer le fichier PDF"},{"id":"text-56","heading":"Text","content":"Imprimer sur l&#39;imprimante par défaut ou..."},{"id":"text-57","heading":"Text","content":"Cliquez pour charger et sélectionner l&#39;une des imprimantes installées!"},{"id":"text-58","heading":"Text","content":"Sélectionnez une imprimante installée:"},{"id":"text-59","heading":"Text","content":"scripts de section\n    \n    @ * Enregistrez le code de script WebClientPrint généré par PrintPDFController. * @"},{"id":"text-60","heading":"Text","content":"    @ Html.Raw (ViewData (&quot;WCPScript&quot;))"},{"id":"text-61","heading":"Text","content":"section @end"},{"id":"text-62","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":""},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/05/04/imprimer-un-fichier-pdf-a-partir-dasp-net-directement-sur-limprimante-par-defaut-sans-boite-de-dialogue-dimpression-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/04/imprimer-un-fichier-pdf-a-partir-dasp-net-directement-sur-limprimante-par-defaut-sans-boite-de-dialogue-dimpression-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/04/imprimer-un-fichier-pdf-a-partir-dasp-net-directement-sur-limprimante-par-defaut-sans-boite-de-dialogue-dimpression-bien-choisir-son-serveur-d-impression/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}