Outils pour utilisateurs

Outils du site


atelier20161119-impression-pdf-android-run

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
atelier20161119-impression-pdf-android-run [2016/12/15 19:14] wapatelier20161119-impression-pdf-android-run [2016/12/15 19:28] (Version actuelle) wap
Ligne 26: Ligne 26:
  
   * Sur le serveur:   * Sur le serveur:
- * CUPS (Common Unix Printing Sytem) +    * CUPS (Common Unix Printing Sytem) 
- Un serveur web (Apache par exemple) avec le module "webdav" +    Un serveur web (Apache par exemple) avec le module "webdav" 
- incron: permet d'être averti sur changements du système de fichiers +    incron: permet d'être averti sur changements du système de fichiers 
- Un script Bash fait maison ;-)+    Un script Bash fait maison ;-)
   * Sur Android:   * Sur Android:
-Un (bête) client webdav+    * Un (bête) client webdav
  
 ===== La recette ===== ===== La recette =====
Ligne 37: Ligne 37:
 Quel va être le parcours du PDF ? Quel va être le parcours du PDF ?
  
- - Envoyé depuis Android vers le serveur web à l'aide du protocole webdav +  - Envoyé depuis Android vers le serveur web à l'aide du protocole webdav 
- - Incron détectera qu'un nouveau fichier vient d'être "uploadé" et déclenchera l'exécution du script bash maison +  - Incron détectera qu'un nouveau fichier vient d'être "uploadé" et déclenchera l'exécution du script bash maison 
- - Le script maison vérifie qu'il s'agit bien d'un PDF et l'imprime via CUPS+  - Le script maison vérifie qu'il s'agit bien d'un PDF et l'imprime via CUPS
  
 ===== Mise en place ===== ===== Mise en place =====
Ligne 45: Ligne 45:
 ==== Installation du serveur web ==== ==== Installation du serveur web ====
  
-* Installer Apache et CUPS: +  * Installer Apache et CUPS: 
-----+<code bash>
 sudo apt-get install apache2 cups sudo apt-get install apache2 cups
----- +</code> 
-* Activer le module webdav: +  * Activer le module webdav: 
-----+<code bash>
 sudo a2enmod dav sudo a2enmod dav
 sudo a2enmod dav_fs sudo a2enmod dav_fs
-----+</code>
  
 ==== Configuration du serveur web (1/3) ==== ==== Configuration du serveur web (1/3) ====
  
-Dossier de destination::+=== Dossier de destination ===
 Le dossier qui recevra les fichiers PDF sera ici /var/www/webdav. Ce dossier doit être créé et appartenir à Apache. Le dossier qui recevra les fichiers PDF sera ici /var/www/webdav. Ce dossier doit être créé et appartenir à Apache.
  
-----+<code bash>
 sudo mkdir -p /var/www/webdav sudo mkdir -p /var/www/webdav
 sudo chown -R www-data:www-data /var/www/webdav sudo chown -R www-data:www-data /var/www/webdav
-----+</code>
  
 ==== Configuration du serveur web (2/3) ==== ==== Configuration du serveur web (2/3) ====
  
-Configurer Apache et le module webdav::+=== Configurer Apache et le module webdav ===
 Il faut aussi l'indiquer à Apache dans le dossier sites-available par le fichier /var/www/webdav: Il faut aussi l'indiquer à Apache dans le dossier sites-available par le fichier /var/www/webdav:
  
-----+<code bash>
 Alias /webdav /var/www/webdav Alias /webdav /var/www/webdav
  
Ligne 80: Ligne 80:
  allow from 192.168.2  allow from 192.168.2
 </Location> </Location>
----- +</code>
  
 ==== Côté serveur web: configuration (3/3) ==== ==== Côté serveur web: configuration (3/3) ====
Ligne 87: Ligne 86:
 Il faut ensuite activer le module webdav et recharger la configuration de Apache: Il faut ensuite activer le module webdav et recharger la configuration de Apache:
  
-----+<code bash>
 sudo a2ensite webdav sudo a2ensite webdav
 sudo service apache2 reload sudo service apache2 reload
-----+</code>
  
  
 ==== Configuration de CUPS (1/2) ==== ==== Configuration de CUPS (1/2) ====
  
-Port d'écoute::+=== Port d'écoute ===
 Permettre d'accéder à CUPS depuis le réseau local en modifiant le fichier de configuration /etc/cups/cupsd.conf. Permettre d'accéder à CUPS depuis le réseau local en modifiant le fichier de configuration /etc/cups/cupsd.conf.
  
 Remplacer la ligne: Remplacer la ligne:
  
-----+<code bash>
 Listen localhost:631 Listen localhost:631
-----+</code>
  
 par: par:
  
-----+<code bash>
 Listen 631 Listen 631
-----+</code>
  
 ==== Configuration de CUPS (2/2) ==== ==== Configuration de CUPS (2/2) ====
Ligne 114: Ligne 113:
 Permettre d'accéder à l'interface d'administration de CUPS: Permettre d'accéder à l'interface d'administration de CUPS:
  
-----+<code bash>
 sudo cupsctl --remote-admin sudo cupsctl --remote-admin
-----+</code>
  
 Finalement, on redémarre CUPS: Finalement, on redémarre CUPS:
  
-----+<code bash>
 sudo systemctl restart cups sudo systemctl restart cups
-----+</code>
  
 ==== Ajouter l'imprimante ==== ==== Ajouter l'imprimante ====
Ligne 131: Ligne 130:
 Une fois le bon driver installé, reste à ajouter l'imprimante: Une fois le bon driver installé, reste à ajouter l'imprimante:
  
-* Ouvrir l'URL http://<ip_serveur_web>:631 +  * Ouvrir l'URL http://ip_serveur_web:631 
-* Choisir "Ajouter une imprimante" +  * Choisir "Ajouter une imprimante" 
-* Suivre les instructions de l'assistant+  * Suivre les instructions de l'assistant
  
 ==== Incron ==== ==== Incron ====
  
-* Installer incron et permettre à root de l'utiliser. Taper en tant que root: +  * Installer incron et permettre à root de l'utiliser. Taper en tant que root: 
-----+ 
 +<code bash>
 sudo su sudo su
 # apt-get install incron # apt-get install incron
 # echo root > /etc/incron.allow # echo root > /etc/incron.allow
----- +</code> 
-* Activer la surveillance du dossier de destination: + 
-----+  * Activer la surveillance du dossier de destination: 
 + 
 +<code bash>
 sudo incrontab -e sudo incrontab -e
----- +</code> 
-* Et ajouter: + 
-----+  * Et ajouter: 
 + 
 +<code bash>
 /var/www/webdav IN_MOVED_TO /home/wap/printtest.sh $@ $# /var/www/webdav IN_MOVED_TO /home/wap/printtest.sh $@ $#
-----+</code>
  
 ==== Le script bash ==== ==== Le script bash ====
 Du côté serveur, il ne reste plus qu'à copier le script bash suivant dans le dossier spécifié à l'étape précédente. Du côté serveur, il ne reste plus qu'à copier le script bash suivant dans le dossier spécifié à l'étape précédente.
  
-[source,bash+<code bash>
-----+
 #!/bin/bash #!/bin/bash
 # Petit script pour imprimer un pdf en ligne de commande (trop fort GNU/Linux) # Petit script pour imprimer un pdf en ligne de commande (trop fort GNU/Linux)
Ligne 166: Ligne 169:
  rm "${file_name}"  rm "${file_name}"
 fi fi
-----+</code>
  
 ===== Côté Android ===== ===== Côté Android =====
Ligne 179: Ligne 182:
 Il est possible d'améliorer les choses: Il est possible d'améliorer les choses:
  
-* en implémentant une authentification pour l'envoi des PDF (mode digest) +  * en implémentant une authentification pour l'envoi des PDF (mode digest) 
-* imprimer des images en faisant une conversion à la volée (mogrify) +  * imprimer des images en faisant une conversion à la volée (mogrify) 
-* imprimer des documents odt en faisant une conversion à la volée (mais nécessite l'installation d'une usine à gaz)+  * imprimer des documents odt en faisant une conversion à la volée (mais nécessite l'installation d'une usine à gaz)
  
 ===== Merci ===== ===== Merci =====
atelier20161119-impression-pdf-android-run.1481829299.txt.gz · Dernière modification : 2016/12/15 19:14 de wap