SDB: Impression de Windows à Linux – Serveur d’impression
Ce guide explique comment imprimer via CUPS sous openSUSE depuis un ordinateur Windows sur lequel son propre pilote est installé.
Sommaire
Différences d'impression entre Windows et Linux
Lors de l’impression via réseau avec Windows, le système client doit généralement exécuter un pilote pour l’imprimante qui convertit les données d’origine (texte brut, documents Microsoft Office ou autres formats propriétaires) au format spécifique à l’imprimante, puis envoie le fichier. les données converties via le réseau vers un partage d'imprimante sur un serveur d'impression Windows via le protocole SMB. Le serveur d'impression envoie ensuite les données spécifiques à l'imprimante à l'imprimante. Habituellement, le serveur d'impression Windows n'effectue que le spooling (mise en mémoire tampon des données en clair et transfert vers le périphérique d'impression). Le filtrage (conversion au format spécifique à l’imprimante) est effectué sur le système client. Les pilotes d’imprimante doivent donc être installés sur les systèmes client. Lorsque des imprimantes sont ajoutées ou remplacées, les utilisateurs doivent installer les pilotes correspondants sur leur ordinateur portable ou leur poste de travail avant de pouvoir imprimer. Ou bien, un automatisme installe automatiquement les pilotes à partir d’un serveur d’impression Windows sur les systèmes clients – à condition que les utilisateurs des systèmes clients le soient également lorsqu’un automatisme installe un logiciel sur leur ordinateur portable ou leur station de travail, ce qui signifie que les utilisateurs doivent faire confiance à ce logiciel "étranger" (" de détourner les ordinateurs portables d’invités innocents quand ils aiment imprimer dans notre environnement ").
Avec l'impression UNIX / Linux, les systèmes clients envoient les données d'origine (texte brut, PostScript, PDF ou JPEG) au serveur d'impression CUPS, en particulier vers une file d'attente d'impression via le protocole IPP. Le serveur CUPS exécute ensuite un pilote pour l’imprimante qui convertit les données au format spécifique à l’imprimante et envoie les données converties au périphérique d’impression (voir Impression de concepts). Le serveur CUPS effectue à la fois le spooling et le filtrage. Cela signifie que les systèmes clients n'ont pas besoin de connaître les différences entre les modèles d'imprimante et n'ont pas besoin de pilotes spécifiques à l'imprimante. Le serveur CUPS gère les détails spécifiques du matériel de l’imprimante. L'avantage est que les utilisateurs finaux peuvent connecter des ordinateurs portables et des ordinateurs de bureau à un réseau sur lequel un serveur CUPS est en cours d'exécution, exécuter leur propre cupsd sur l'ordinateur portable ou le bureau et imprimer immédiatement. Pour plus de détails, reportez-vous à la section "Conception intrinsèque de CUPS pour l’impression sur le réseau" de SDB: CUPS in a Nutshell.
Pourquoi les clients Windows ont-ils un pilote d'imprimante installé
Le système de filtrage sur un serveur CUPS accepte les formats de texte brut, PostScript, PDF, JPEG, PNG et quelques autres graphiques. Normalement, le système de filtrage sur un serveur d'impression CUPS ne peut pas convertir les documents Microsoft Office ou d'autres formats propriétaires en données spécifiques à l'imprimante, car aucun programme de filtrage approprié n'est disponible.
Lorsque le filtrage a lieu normalement sur un serveur CUPS, un processus de pré-filtrage en PostScript (ou l’un des autres formats acceptés, tels que PDF) doit être effectué sur les systèmes clients Windows avant de pouvoir imprimer via un serveur CUPS.
Généralement, lorsque les clients Windows impriment sur un serveur CUPS, cela se fait de la même manière que lorsqu'ils imprimaient sur un partage d'imprimante sur un serveur d'impression Windows. Cela signifie que les clients Windows exécutent le pilote spécifique de l'imprimante également lors de l'impression sur un serveur CUPS. L’avantage est que les programmes d’application des clients Windows disposent de toutes les options du pilote spécifique à l’imprimante, disponibles pour l’utilisateur (les programmes d’application Linux utilisent des fichiers PPD à cet effet, voir Impression de concepts).
Utiliser Samba et CUPS
Chaque file d'impression du serveur CUPS doit avoir un partage d'imprimante SMB correspondant pour que les systèmes clients Windows puissent envoyer leurs données d'impression comme d'habitude à un partage d'imprimante via le protocole SMB. Ces partages d'imprimante SMB sont fournis par Samba.
De cette manière, Samba récupère les données d'impression des clients Windows via le protocole SMB, puis les transmet à la file d'attente d'impression CUPS. Le système d'impression CUPS les transmet ensuite à l'imprimante.
Ces transferts successifs de Windows via Samba et CUPS vers l’imprimante peuvent entraîner un certain retard jusqu’à ce que l’imprimante commence à imprimer, par rapport à une impression de Windows à une imprimante directement accessible par le système Windows.
Appliquer une impression "brute"
Lorsque les clients Windows exécutent le pilote spécifique à l’imprimante, ils envoient des données spécifiques à l’imprimante.
Il n’existe pas de méthode automatique fiable permettant de déterminer si les données envoyées à CUPS sont des données spécifiques à l’imprimante (à envoyer directement à l’imprimante) ou des données devant être filtrées pour obtenir des données spécifiques à l’imprimante. Par exemple, lorsqu'il s'agit d'une imprimante PostScript, ses données spécifiques à l'imprimante sont PostScript mais, par défaut, les données PostScript sont filtrées par CUPS.
Par conséquent, lorsque les systèmes clients Windows envoient des données spécifiques à l’imprimante, le serveur CUPS doit être obligé d’envoyer les données directement à l’imprimante et ne pas tenter de filtrer celles qui sont déjà spécifiques à l’imprimante.
Ceci est appelé impression "brute". Vous pouvez forcer CUPS à effectuer une impression brute en utilisant le commutateur "-o raw" dans la commande d'impression ("lp -d nom_file -o raw").
Samba a par défaut l’option suivante dans /etc/samba/smb.conf pour appliquer l’impression brute:
options de tasses = brut
Ainsi, Samba, qui récupère les données spécifiques à l’imprimante via SMB, les transmet en mode d’impression brut à la file d’attente afin que CUPS les envoie directement (sans filtrage supplémentaire) à l’imprimante.
Des alternatives
Il y a quelques alternatives à la manière habituelle décrite ci-dessus qui sont seulement mentionnées ici mais pas décrites en détail:
Envoyer des données via le protocole LPD ou IPP
Les systèmes clients Windows peuvent être configurés pour envoyer leurs données spécifiques à l’imprimante, non pas comme à l’habitude à un partage d’imprimantes via SMB, mais directement à une file d’impression CUPS via le protocole LPD ou IPP. Dans ce cas, les systèmes clients Windows accèdent à la file d’impression CUPS comme s’il s’agissait d’une imprimante réseau (c’est-à-dire une imprimante directement accessible via le réseau). Si tous les systèmes clients Windows sont modifiés de cette manière, Samba n’a pas besoin d’imprimer sur un serveur CUPS.
Via le protocole LPD sur un serveur d’impression CUPS:
Windows peut généralement envoyer des données d'impression également via le protocole LPD. Sous Windows, le protocole LPD peut être appelé "LPR". Reportez-vous à la documentation Windows pour savoir comment configurer l'impression de cette manière pour votre version Windows particulière. Le nom d'hôte ou l'adresse IP du serveur CUPS et le nom de la file d'attente d'impression CUPS sont nécessaires pour configurer l'impression via le protocole LPD.
Sur le serveur CUPS, cups-lpd (le démon qui accepte les données via LPD pour CUPS) doit être exécuté. Jusqu'à CUPS 1.7.5 cups-lpd est démarré via xinetd. Depuis CUPS 2.0, cups-lpd peut également être démarré par systemd via les fichiers d’unité systemd appropriés. Pour plus d'informations, voir "man cups-lpd" et SDB: CUPS in a Nutshell.
Vous pouvez appliquer une impression brute pour cups-lpd dans son fichier de configuration /etc/xinetd.d/cups-lpd via cette entrée:
server_args = cups-lpd -o document-format = application / vnd.cups-raw
Toutes les données ayant le type MIME application / vnd.cups-raw ne sont pas filtrées mais sont envoyées directement à l’imprimante. Cela signifie que toutes les données de toutes les files d'impression CUPS envoyées via le protocole LPD sont imprimées en mode brut. Si l'impression brute via le protocole LPD ne doit pas se produire pour toutes les files d'attente d'impression CUPS, l'entrée ci-dessus ne peut pas être utilisée. Au lieu de cela, des files d'attente brutes supplémentaires doivent être utilisées, voir ci-dessous.
Via IPP vers un serveur d’impression CUPS:
De nos jours, les versions Windows peuvent généralement envoyer des données d'impression également via IPP. Dans Windows, IPP peut être appelé "HTTP". Reportez-vous à la documentation Windows pour savoir comment configurer l'impression de cette manière pour votre version Windows particulière. L'URL / URI permettant d'accéder à une file d'attente "funprinter1000" sur un serveur CUPS "server.domain" est semblable à (notez la partie "/ printers /" qui est obligatoire sur un serveur CUPS):
ipp: //server.domain/printers/funprinter1000
Lorsque HTTP est utilisé, il peut être nécessaire de spécifier le port IPP 631:
http: //server.domain: 631 / printers / funprinter1000
Généralement, quelque chose comme une option d'impression "brute" ne peut pas être définie dans la configuration de Windows pour l'impression via IPP / HTTP. Dans ce cas, le seul moyen fiable d'imposer une impression brute sur le serveur CUPS consiste à créer une file d'attente brute supplémentaire pour chaque imprimante et à utiliser la file brute lors de l'impression à partir de Windows.
Pour configurer une file d'attente brute via YaST, sélectionnez ou entrez "File d'attente brute" lors de la recherche d'un pilote pour un fabricant / modèle et lorsque vous utilisez l'interface Web CUPS, sélectionnez "Brut" comme marque de l'imprimante.
Filtrage sur le serveur CUPS
Lorsque le filtrage doit avoir lieu sur le serveur CUPS, un processus de pré-filtrage en PostScript doit avoir lieu sur les systèmes clients Windows (voir ci-dessus). Ceci est fait avec les pilotes PostScript pour Windows. En ce qui concerne les pilotes PostScript pour Windows, vous pouvez consulter la page de manuel de cupsaddsmb ("man cupsaddsmb") ou la documentation de CUPS 1.4 sur http://www.cups.org/documentation.php/doc-1.4/man-cupsaddsmb.html
Ressources supplémentaires
Commentaires
Laisser un commentaire