Serveur d'impression

AirPrint »Magazine Linux – Serveur d’impression

Par Titanfall , le 10 juin 2019 - 7 minutes de lecture

La version 4.2 d'iOS a été la première à permettre à l'iPad et à l'iPhone Apple d'imprimer, mais uniquement sur les imprimantes prenant en charge la technologie AirPrint. Les appareils AirPrint sont désormais disponibles auprès de tous les principaux fabricants, dans toutes les classes de prix et de performances, mais de nombreux utilisateurs craignent toujours de devoir acheter une nouvelle imprimante uniquement pour mettre sur le papier quelque chose de leur iPhone ou de leur iPad.

Heureusement, si votre réseau domestique comprend une machine Linux, vous avez accès à tous les outils nécessaires pour partager vos imprimantes sur le réseau en tant que périphériques compatibles AirPrint. AirPrint est basé sur la norme de réseau sans configuration (Zeroconf), que Apple commercialise sous le nom de marque Bonjour. Linux a sa propre implémentation de Zeroconf connue sous le nom d'Avahi.

Dès 2011, Till Kamppeter a modifié la mise en œuvre du système CUPS (Common Unix Printer System) pour les versions Ubuntu Natty et Oneiric afin que les imprimantes AirPrint connectées soient directement disponibles. Si votre distribution ne prend pas en charge la configuration directe, il est utile de savoir comment configurer manuellement la prise en charge AirPrint. Dans cet article, je regarde AirPrint avec Linux.

CUPS

AirPrint est une technologie qui permet au périphérique d'envoyer des fichiers PDF à l'imprimante. À cette fin, il envoie des informations sur le nombre de copies et le nombre de pages que l'utilisateur souhaite réellement imprimer. Une installation fonctionnelle de CUPS devrait suffire à laisser l’iPad et l’iPhone trouver les imprimantes partagées sur le réseau et les imprimer.

Malheureusement, Apple a maintenant supprimé certaines fonctionnalités importantes de CUPS qui ne sont pas nécessaires sous Mac OS X, car elles y sont fournies par le service Bonjour. Heureusement, Linux réintroduit ces fonctionnalités manquantes via Avahi, qui inclut les fonctions nécessaires.

La configuration de CUPS sous Linux est décrite par de nombreuses sources Web. Dans cet article, je suppose qu'une version fonctionnelle de CUPS est en cours d'exécution sur votre système. Une fois que le service CUPS est en cours d'exécution, vérifiez d'abord si votre imprimante fonctionne en imprimant une page de test. (Ouvrez un navigateur et entrez l'URL http: //: 631.) Vous pouvez accéder à cette page à partir de n’importe quel autre ordinateur du réseau. dans le Imprimantes onglet ci-dessous La gestion, vous verrez la commande pour sortir la page de test.)

Pour partager l’imprimante sur le réseau, assurez-vous que le /etc/cups/cupsd.conf Le fichier contient les entrées appropriées. Le Listing 1 montre un exemple tiré du système de test.

Listing 1: Exemple de /etc/cups/cupsd.conf

01 ServerAlias ​​*
02 écoute *: 631
03 Ecoute /var/run/cups/cups.sock
04 # Restreindre l'accès au serveur ...
0506 Autoriser @LOCAL
07 Ordre permettre, refuser
0809 # Restreindre l'accès aux pages d'administration ...
dix11 Ordre permettre, refuser
12 Autoriser @LOCAL
1314 # Restreindre l'accès aux fichiers de configuration ...
1516 AuthType par défaut
17 Requiert l'utilisateur @SYSTEM
18 Ordre permettre, refuser
19 Autoriser @LOCAL
20

Les deux premières lignes sont importantes ici; ils permettent à n'importe quel client d'accéder au serveur. Ces autorisations laxistes facilitent les attaques sur le service. Il est donc important de prendre en compte les modifications que vous apportez.

Modifiez le fichier en conséquence et redémarrez le système CUPS. Sur openSUSE, vous pouvez effectuer les opérations suivantes:

sudo systemctl restart cups.service

Cependant, sur Ubuntu et d’autres systèmes Debian, utilisez la commande suivante:

sudo /etc/init.d/cups restart

Vous devriez maintenant pouvoir trouver l'imprimante à partir d'un ordinateur Windows. Pour faire ça, Ajouter une nouvelle imprimante réseau dans le Panneau de configuration, puis tapez l’adresse du serveur CUPS et le nom de l’imprimante en tant que nom de l’imprimante partagée (Figure 1).




Figure 1: Si vous souhaitez également utiliser l’imprimante partagée sous Windows, configurez une nouvelle imprimante réseau sur le système en question.

Windows demande au modèle d'imprimante d'installer le pilote approprié. Si vous voyez un Impossible de se connecter Dans ce message, vérifiez à nouveau votre installation CUPS et le partage réseau de l’imprimante.

Avahi

Pour que les périphériques Apple puissent reconnaître l'imprimante, vous devez en faire la publicité via une diffusion Bonjour sur le réseau. Pour ce faire, configurez un service Avahi. Les fichiers de configuration de ces services se trouvent dans le répertoire / etc / ahavi / services annuaire. Le listing 2 montre les AirPrint HP1220C.service déposer sur notre système de laboratoire.

Listing 2: AirPrint HP1220C.serviceconf

01020304AirPrint HP1220C @% h
0506_ipp._tcp
07_universal._sub._ipp._tcp
08631
09txtvers = 1
dixqtotal = 1
11Transparent = T
12URF = aucun
13rp = imprimantes / HP1220C
14note = file d'attente brute avec pilote HP Deskjet 1220c hpijs, 
3.12.11
15product = (GPL Ghostscript)
16état-imprimante = 3
17type-imprimante = 0x82b01c
18pdl = application / octet-stream, application / pdf, 
application / postscript, image / gif, image / jpeg, image / png, 
image / tiff, image / urf, text / html, text / plain, 
application / vnd.cups-banner, application / vnd.cups-command, 
application / vnd.cups-pdf, 
application / vnd.cups-postscript
1920

Certes, créer et modifier manuellement ces fichiers de service pour chaque imprimante du système n’est peut-être pas une idée amusante pour tout le monde. Heureusement, le développeur Timothy J. Fontaine a implémenté un petit script Python (Listing 3) qui crée automatiquement ces fichiers pour toutes les imprimantes CUPS du système.[[[[https://github.com/tjfontaine/airprint-generate].

Listing 3: Exécuter un script Python

wget https://github.com/tjfontaine/airprint-generate/zipall/master
décompresser le maître
cd tjfontaine-airprint-generate-fb98c1d /
./airprint-generate.py
mv AirPrint-HP1220C.service / etc / avahi / services
sudo systemctl redémarrer avahi-daemon.service
sudo systemctl restart cups.service

Les étapes sont assez simples: il suffit d’exécuter le script sans aucun paramètre une fois pour chaque imprimante; cela vous donne un fichier que vous copiez ensuite dans le / etc / avahi / services annuaire. Après avoir redémarré Avahi et CUPS, vous devriez pouvoir imprimer à partir de périphériques Apple sans aucun problème.

Création de types MIME

Ce que nous avons examiné jusqu’à présent échouera si vous avez installé iOS version 6 ou plus récente sur votre appareil. Dans ce cas, vous devez également créer de nouveaux types MIME pour associer correctement les données entrantes. C'est assez simple (exemple 4).

Listing 4: Créer des types MIME

echo "image / urf urf chaîne (0, UNIRAST<00>) "> 
/usr/share/cups/mime/airprint.types
echo "image / application urf / pdf 100 pdftoraster"> 
/usr/share/cups/mime/airprint.convs

Conclusions

Contrairement aux solutions de contournement populaires utilisant des applications pour imprimantes spécialisées, cette approche ne nécessite aucune intervention sur le périphérique Apple. Vous utilisez simplement la fonction d'impression existante. La figure 2 vous montre à quoi ce processus ressemble sur l'iPad.




Figure 2: Impression depuis l'iPad: Grâce à CUPS et à Avahi, vous pouvez imprimer à partir de n'importe quel ordinateur via votre PC Linux sans vous soucier de la configuration.

En quelques étapes seulement, vous avez préparé un serveur CUPS pour l’impression via AirPrint. Cela vous permet d'économiser de l'argent, car toutes les imprimantes ne prennent pas cette technologie en charge.

De plus, l’approche ne pose aucune exigence particulière à l’imprimante. Les ajustements sont entièrement effectués sur le PC Linux. En principe, cette approche devrait également fonctionner avec tout mini-serveur exécutant Linux intégré.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.