« Destination le Cloud » : l’impression pour tous les périphériques avec Dropbox
Je ne sais pas si certains d'entre vous se rappellent encore du poisson d'Avril 2007 (plus très frais, certes) de Google. Ce dernier lançait le service GMail Paper, qui permettait tout simplement depuis son interface GMail d'imprimer ses mails et de se les faire livrer chez soi. Ce service, bien entendu fictif, répondrait néanmoins (partiellement) à un besoin que beaucoup d'utilisateur mobiles ont : imprimer simplement chez soi, même d'ailleurs.
Pour citer un cas auquel on peut être confronté en tant qu'étudiant, on peut avoir envie d'imprimer un document relatif à un cours, à un projet ou à tout autre chose depuis les bancs de l'école, et vouloir le trouver chez soi le soir. On peut aussi décider d'imprimer un document administratif de son travail, sans qu'il puisse se promener à travers tout le service. On peut aussi vouloir imprimer depuis son smartphone (sans utiliser AirPrint), ou depuis un ordinateur ne disposant pas du driver de l'imprimante (par exemple, avec une imprimante Lexmark et une distribution telle que ArchLinux).
En fin de compte, ce que l'on veut, c'est pouvoir imprimer de partout, sans se poser tous les problèmes que l'on rencontre d'habitude avec une imprimante partagée chez soi :
- Sécurité : Est ce que l'on partage l'imprimante avec tout le monde ? Est ce qu'il faut que tout le monde ait un compte sur la machine qui partage l'imprimante ? Comment sont gérés les droits en fin de compte ?
- Aspect routage : Si mon imprimante est sur mon réseau local, comment vais je pouvoir imprimer en dehors de ce réseau ? N'est ce pas une mauvaise idée que d'ouvrir des ports supplémentaires sur le firewall de ma box ?
- Drivers : Quand une imprimante est partagée, tous les périphériques souhaitant l'utiliser doivent installer son driver. Quid des smartphones ? Des systèmes d'exploitation qui n'ont pas de driver ?
- Configuration des postes : Comment faire en sorte que la configuration pour imprimer depuis n'importe quel ordinateur soit minimale ? Pour depuis des ordinateurs où l'on ne possède aucun droit (et donc pas celui d'installer une imprimante) ?
Pour cela, comme le dit si bien Microsoft (et moi aussi, dans l'article "Destination le cloud" précédent), il existe une solution : passer par le cloud.
Fonctionnement
Le point central de cette solution repose sur un espace de stockage "On the cloud" (1). On partira sur la base de Dropbox, service gratuit et fiable. L'aspect intéressant de ce service est qu'il est accessible de toutes les plateformes, et au travers de (presque) tous les filtrages, puisqu'il a une interface web et un client lourd.
Le deuxième ingrédient essentiel est un ordinateur, qui est connecté à l'imprimante (2) ; c'est lui qui fera réellement l'impression. Il doit cependant avoir une installation du client de Dropbox (multiOS), et faut il le préciser, du driver de l'imprimante.
Les cas (3) (4) (5) représentent les différents cas d'utilisation du service ; respectivement depuis un périphérique dépourvu de driver d'impression, des périphériques mobiles en dehors de son réseau (mais pouvant utiliser le client), et enfin d'un ordinateur dans une entreprise, bloqué derrière un pare feu bien configuré qui ne laisse passer les communications que sur le port 80 (mais pouvant être contourné par l'application web). Dans ces trois cas, il n'aurait pas été possible d'imprimer avec un mécanisme d'imprimante partagée.
Implémentation
L'implémentation du coté "cloud" ne pose pas de problème particulier ; il suffit de créer un dossier "a_imprimer/" dans votre Dropbox, que vous partagez au moins avec le client Dropbox du PC serveur (2). Les clients du système (3) (4) (5), eux, n'ont comme seule contrainte que de pouvoir accéder à Dropbox.
Si (2) est sous Linux (ou tout autre variante d'Unix), le salut est dans les crons ; il vous suffit de faire un script qui imprime (à l'aide la commande lp
) tous les fichiers d'un dossier. Puisque ce doit être fait par un cron, il faut mettre des chemins absolus partout.
Voici un script qui fonctionne dans mon cas ; quelques légères modifications sont à faire :
- Les variables
SOURCE
etDONE
sont sans doute à changer ; - La commande
lp
prend peut être des options (dans le cas où plusieurs imprimantes sont dispos) ; - On peut aussi imaginer faire des traitements tels que le filtrage (n'imprimer que si c'est un PDF ou un PS, ...) ou des conversion de tout autre type vers PDF pour une impression plus simple.
Pour charger ce script dans la crontab, il suffit de faire :
* * * * * /chemin/vers/printer.sh
Avec ce paramétrage, il s'exécute toutes les minutes, ce qui est bien suffisant pour une impression (on ne peut pas descendre plus bas de toute façon).
Si (2) est sous Windows, il faut plutôt regarder du coté des tâches planifiées ; lancer une impression fait partie des choses qui sont réalisable en Visual Basic. Faute de compétences (et d'avoir fait un prototype), je ne rentrerais pas plus en détail dans cette solution.
Si (2) est sous Mac OS, suivez ce lien. La solution est basée sur Automator. Contrairement aux deux autres solutions, cette solution est synchrone, c'est à dire que votre fichier est traité immédiatement.
Comme on peut le voir dans la solution pour Linux, j'ai fait le choix de copier dans un autre dossier (mais hors Dropbox) les fichiers qui avaient étés imprimés afin de les sauvegarder au format numérique.
En résumé
Si je ne devais retenir qu'un aspect de cette solution, je pense que je mettrait l'accent sur l'impression depuis un smartphone qui est a mon avis une fonctionnalité très intéressante, et qui commence seulement a être adressée par le très haut de gamme en matière de smartphone.