Philippe Wambeke - LoliGrUB
Un utlisateur “Lambda” doit pouvoir imprimer simplement un PDF depuis son smartphone / sa tablette Android.
Quel va être le parcours du PDF ?
sudo apt-get install apache2 cups
sudo a2enmod dav sudo a2enmod dav_fs
Le dossier qui recevra les fichiers PDF sera ici /var/www/webdav. Ce dossier doit être créé et appartenir à Apache.
sudo mkdir -p /var/www/webdav sudo chown -R www-data:www-data /var/www/webdav
Il faut aussi l'indiquer à Apache dans le dossier sites-available par le fichier /var/www/webdav:
Alias /webdav /var/www/webdav <Location /webdav> Options Indexes MultiViews DAV On Order deny,allow deny from all allow from 192.168.2 </Location>
Il faut ensuite activer le module webdav et recharger la configuration de Apache:
sudo a2ensite webdav sudo service apache2 reload
Permettre d'accéder à CUPS depuis le réseau local en modifiant le fichier de configuration /etc/cups/cupsd.conf.
Remplacer la ligne:
Listen localhost:631
par:
Listen 631
Permettre d'accéder à l'interface d'administration de CUPS:
sudo cupsctl --remote-admin
Finalement, on redémarre CUPS:
sudo systemctl restart cups
En fonction de la marque et du modèle d'imprimante, il peut être nécessaire d'installer des pilotes supplémentaires. Le site https://www.openprinting.org/printers dresse une liste exhaustive des modèles et des drivers correspondant.
Une fois le bon driver installé, reste à ajouter l'imprimante:
sudo su # apt-get install incron # echo root > /etc/incron.allow
sudo incrontab -e
/var/www/webdav IN_MOVED_TO /home/wap/printtest.sh $@ $#
Du côté serveur, il ne reste plus qu'à copier le script bash suivant dans le dossier spécifié à l'étape précédente.
#!/bin/bash # Petit script pour imprimer un pdf en ligne de commande (trop fort GNU/Linux) complete_file_name="$1/$2" file_name=$(file "${complete_file_name}" | grep "PDF document" | cut -f1 -d':') if [ -n "${file_name}" ]; then lp -d "HP_DESKJET_990C" "${file_name}" rm "${file_name}" fi
Il suffit ensuite d'installer n'importe quel client webdav.
L'impression du PDF se fait simplement en “uploadant” le fichier PDF sur le serveur web.
Il est possible d'améliorer les choses:
Questions ?