18 votes

Comment imprimer sur CUPS (en cours d'exécution sur un autre ordinateur dans le LAN) ?

Comment imprimer depuis Android vers CUPS (fonctionnant sur un autre ordinateur dans le LAN) ?

(CUPS (Common Unix Printing System/Server) est bien sûr déjà configuré pour accepter les requêtes sur le LAN.)

De préférence, sans utiliser de logiciel propriétaire.

1 votes

Sans l'aide d'autres outils : peu probable. Avec l'aide d'autres outils : vérifiez "cups print" sur Google Play. J'ai été surpris de constater qu'il semblait vraiment y avoir des clients CUPS disponibles - je ne m'y attendais pas...

4voto

Jon Points 51

J'ai récemment publié une application Android basée sur une version (modifiée) de Cups4J. La communication se fait via http/https. La principale chose que j'ai dû/modifié de la bibliothèque Java était une dépendance à JAXB pour le traitement XML (a. Je l'ai trouvé trop lourd b. Android n'a pas cette librairie javax et son importation implique apparemment un reconditionnement) en comptant plutôt sur un peu de codage en dur.

Téléchargez Android CUPS Printing sur le Play Store ou obtenez les sources sur GitHub.

3 votes

Jetez un oeil sur f-droid.org et leur forum qui accueille la soumission d'applications open-source pour Android. La communauté là-bas - j'espère - sera assez sympathique pour vous aider à emballer votre code source de manière agréable, afin qu'il soit facile à lire et à reproduire votre procédure de construction. Si vous souhaitez le publier, veuillez ouvrir un nouveau sujet sur le forum là-bas, et espérons que vous obtiendrez de l'aide et des contributions (correctifs) de la communauté, afin que votre projet soit capable de vivre et de se développer davantage! Une condition préalable est que vous mettiez votre code source dans Git. Si j'ai le temps, j'essayerai également de vous aider.

1 votes

Juste une note. J'ai encore besoin de comprendre Git, mais pour l'instant, tout ce que j'ai fait est disponible sur mobd.jonbanjo.com/jfcupsprint/licence.php. Il y a 2 fichiers, cups4jpatched.zip et jfcupsprint.zip

3 votes

J'ai pris la liberté de prendre les sources de ce projet, de les convertir en gradle et de les héberger sur github. Toutes les contributions sont les bienvenues sur : github.com/BenoitDuffez/JfCupsPrint (de plus, j'ai ajouté le service d'impression pour que vous puissiez ajouter des imprimantes directement sur Android). KitKat requis.

4voto

Dej Points 131

Vous pouvez désormais configurer CUPS pour IPP Everywhere. Il devrait alors apparaître directement dans les menus de votre imprimante Android, Chromebooks, et peut-être même iPhone. Les autres réponses sont obsolètes pour les systèmes raisonnablement récents : CUPS 1.5+ et Android 4.4+ ou une imprimante IPP Everywhere est requise. Pour Apple AirPrint, CUPS 2.2.2 est requis. Le débogage de la fonctionnalité peut cependant être un peu difficile.

2voto

Barton Points 129

J'ai une imprimante USB connectée à une machine Windows et mon serveur Linux la voit via SMB et la publie via CUPS (assurez-vous de "partager...".)

Pour Android, il y a Let's Print Droid - complet avec un service d'impression pour que toutes les applications le voient. Il faut environ deux minutes pour le configurer.

0 votes

J'ai un serveur d'impression google/cups-connector fonctionnant sur un ordinateur Ubuntu (serveur smb sur routeur). Le chromebook imprime correctement à partir de cette imprimante réseau, mais cette application était la seule chose qui lui permettait d'imprimer sur Android.

2voto

usilo Points 11

Comme déjà indiqué dans d'autres réponses, le service d'impression du système Android peut déjà accéder à l'imprimante CUPS (au moins pour Android 10).

Voici les étapes que j'ai dû suivre pour le faire fonctionner avec Debian Buster car CUPS n'était pas configuré pour accepter les demandes LAN dans mon cas.

Sous Debian Buster

Les étapes ont été prises à partir de Partage via le protocole d'impression sur Internet @ wiki.ArchLinux.org

  1. aller au panneau d'administration de CUPS http://localhost:631/admin et cocher "Partager les imprimantes connectées à ce système", puis cliquer sur "Changer les paramètres"
  2. Modifier /etc/cups/cupsd.conf pour que votre CUPS / soit accessible depuis une adresse de réseau local
   Order allow,deny
   Allow localhost
   Allow 192.168.0.*

...
  1. Modifier /etc/cups/cupsd.conf de l'une de ces manières

3a. pour que votre CUPS écoute l'adresse à laquelle vous l'appelez

...
Listen :631
...

3b. pour que votre CUPS écoute sur le port 631 (peu importe l'adresse à laquelle vous l'appelez) supprimez la ligne Listen localhost:631 et ajoutez celle-ci [3b. fonctionne mieux pour moi, car après un redémarrage, la solution 3a. ne rendait pas le serveur cups accessible depuis autre chose que localhost]

...
Port 631
...
  1. Redémarrer le démon CUPS :
# systemctl restart cups

Sur un téléphone Android 10 (le mien est un Xiaomi avec MIUI 11)

  • Allez simplement dans paramètres / Connexion et partage / Impression / Service d'impression système (devrait être activé)
  • assurez-vous que votre téléphone est connecté au réseau où votre serveur CUPS est accessible
  • Normalement, vos imprimantes devraient apparaître automatiquement

0 votes

Confirmer sur Android 13 - le service par défaut choisit les imprimantes CUPS partagées via mDNS. Avant de lire ce message, j'ai essayé "Impression CUPS Android" (détectait mais n'imprimait pas), PrintBot (détectait et imprimait correctement avec IPP Everywhere).

1voto

Il semble qu'il n'y ait pas de clients CUPS natifs pour Android, qui sont des logiciels libres.

La seule solution disponible est plutôt maladroite, via une installation Debian sur l'appareil Android -- http://code.google.com/p/android/issues/detail?id=1148#c41. Mais utiliser une installation Debian (ou une autre distribution) comme LilDebi (par exemple) nécessiterait certainement des droits root (pour chrooter)! Ce n'est pas pratique pour ceux qui ne veulent pas rooter l'appareil (juste pour pouvoir imprimer). (Au fait, n'y a-t-il pas, en plus de chroot, des technologies d'isolation plus modernes implémentées dans Linux qui ne nécessiteraient pas de droits root?.. Peut-être, LXC?)

Une autre application (Remote CUPS) nécessite un accès SSH au serveur.

ObPrint ne semble pas être open-source.

Let's Print Droid semble également ne pas être open-source.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X