URL: https://linuxfr.org/users/yvanm/journaux/cwp-une-interface-web-d-impression-de-fichiers-pdf Title: CWP : une interface web d'impression de fichiers PDF Authors: YvanM Date: 2016年08月26日T22:02:54+02:00 License: CC By-SA Tags: php, cups et impression Score: 36 Bonjour à tous, _Note : désolé pour l'autopromotion, mais cette fois-ci je me dis que ça vaut le coup._ Cela vous est peut-être déjà arrivé : vous accueillez des invités dans votre entreprise ou chez vous. Ils ont des documents sur leur ordinateur portable et veulent les imprimer. Occasionnellement on s'en sort, mais à la longue, ça devient vite contraignant : * s'ils ont accès au serveur d'impression : * il faut leur fournir les instructions pour l'installation des pilotes * ils doivent (ou vous devez, en tant que super-admin) les installer, parfois pour imprimer seulement 3 pages * s'ils n'ont pas accès au serveur d'impression : * vous devez leur fournir un accès à un poste configuré * ils doivent transférer leurs documents sur ce poste (clé USB, e-mail...) * et il y manque probablement le logiciel permettant de modifier ces documents. Une solution évidente, ce serait d'imprimer depuis une page web, mais en dehors de rares solutions propriétaires, rien n'existe pour imprimer sur un serveur CUPS. Même sans être programmeur, je me suis dit que ça ne devait pas être trop compliqué de faire ça en PHP (que je connais un tout petit peu). Ça n'était pas si simple, mais le résultat n'est pas mal (si on exclut le design...) :  **CWP** (pour **CUPS Web Printing**) génère donc, à partir d'un fichier JSON, une page web permettant l'envoi de fichiers PDF vers un serveur d'impression CUPS. Les fonctionnalités sont assez simples mais couvrent, je l'espère, pas mal de cas de figures : * le serveur CUPS peut-être distant * n'importe quelle option d'impression peut être permise par l'administrateur et choisie par l'utilisateur * une valeur par défaut peut être définie pour chaque option * les options peuvent être verrouillées (affichées mais non modifiables) * le nom d'utilisateur associé au job d'impression peut être défini par l'admin, ou réutilisé l'identifiant de l'utilisateur si la page est protégée par login / mot de passe * l'état de chaque imprimante peut être affiché (avec le nombre de travaux en attente dans la file) * il est possible d'interdire l'impression sur les imprimantes « éteintes » * il est possible de mettre des limites à la taille des fichiers PDF ainsi qu'au nombre d'exemplaire pour chaque impression * entièrement traduisible (anglais et français uniquement pour l'instant) * possibilité de l'inclure dans une page de votre site * et un mode debug pour comprendre d'éventuels soucis dans la liaison avec le serveur CUPS Le code est disponible sur [Framagit](https://framagit.org/Yvan-Masson/CWP/) sous licence GPL. Si vous avez des remarques, n'hésitez pas à m'en faire part.