atelier20161119-impression-pdf-android-run
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Prochaine révision | Révision précédente | ||
| atelier20161119-impression-pdf-android-run [2016/12/15 18:56] – créée wap | atelier20161119-impression-pdf-android-run [2016/12/15 19:28] (Version actuelle) – wap | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | = Impression PDF Android | + | ~~NOCACHE~~ |
| + | ~~REVEAL theme=sky& | ||
| + | |||
| + | ====== Impression PDF Android | ||
| Philippe Wambeke - LoliGrUB | Philippe Wambeke - LoliGrUB | ||
| - | :backend: revealjs | ||
| - | : | ||
| - | : | ||
| - | == L' | + | ===== L' |
| Un utlisateur " | Un utlisateur " | ||
| - | * Sans que Google ne sache ce qui est imprimé | + | |
| - | * Sans que le document ne fasse le tour du monde | + | * Sans que le document ne fasse le tour du monde |
| - | * Sans devoir donner tous les droits à Google sur l' | + | * Sans devoir donner tous les droits à Google sur l' |
| - | * Sans être obligé d' | + | * Sans être obligé d' |
| - | * En utilisant des logiciels libres | + | * En utilisant des logiciels libres |
| - | == Les ingrédients | + | ===== Les ingrédients |
| - | === Au niveau matériel | + | ==== Au niveau matériel |
| - | * Une imprimante (réseau ou USB) | + | |
| - | * Un ordinateur connecté à l' | + | * Un ordinateur connecté à l' |
| - | * La mise en réseau de l' | + | * La mise en réseau de l' |
| - | === Au niveau logiciel | + | ==== Au niveau logiciel |
| - | [%step] | + | |
| - | * Sur le serveur: | + | * CUPS (Common Unix Printing Sytem) |
| - | [%step] | + | * Un serveur web (Apache par exemple) avec le module " |
| - | ** CUPS (Common Unix Printing Sytem) | + | * incron: permet d' |
| - | ** Un serveur web (Apache par exemple) avec le module " | + | * Un script Bash fait maison ;-) |
| - | ** incron: permet d' | + | * Sur Android: |
| - | ** Un script Bash fait maison ;-) | + | * Un (bête) client webdav |
| - | * Sur Android: | + | |
| - | [%step] | + | |
| - | ** Un (bête) client webdav | + | |
| - | == La recette | + | ===== La recette |
| 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' | + | |
| - | . Le script maison vérifie qu'il s'agit bien d'un PDF et l' | + | |
| - | [NOTE.speaker] | + | ===== Mise en place ===== |
| - | -- | + | |
| - | Expliquer brièvement l' | + | |
| - | -- | + | |
| - | == Mise en place | + | ==== Installation du serveur web ==== |
| - | === Installation du serveur web | + | |
| - | + | <code bash> | |
| - | * Installer Apache et CUPS: | + | |
| - | ---- | + | |
| sudo apt-get install apache2 cups | sudo apt-get install apache2 cups | ||
| - | ---- | + | </ |
| - | * Activer le module webdav: | + | * Activer le module webdav: |
| - | ---- | + | <code bash> |
| sudo a2enmod dav | sudo a2enmod dav | ||
| sudo a2enmod dav_fs | sudo a2enmod dav_fs | ||
| - | ---- | + | </ |
| - | === 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 / | Le dossier qui recevra les fichiers PDF sera ici / | ||
| - | ---- | + | <code bash> |
| sudo mkdir -p / | sudo mkdir -p / | ||
| sudo chown -R www-data: | sudo chown -R www-data: | ||
| - | ---- | + | </ |
| - | === 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' | Il faut aussi l' | ||
| - | ---- | + | <code bash> |
| Alias /webdav / | Alias /webdav / | ||
| Ligne 88: | Ligne 80: | ||
| allow from 192.168.2 | allow from 192.168.2 | ||
| </ | </ | ||
| - | ---- | + | </ |
| - | [NOTE.speaker] | + | ==== Côté serveur web: configuration (3/3) ==== |
| - | -- | + | |
| - | Montrer l' | + | |
| - | ATTENTION: si apache version 2.4, le fichier webdav doit se nommer webdav.conf !!! | + | |
| - | -- | + | |
| - | + | ||
| - | === Côté serveur web: configuration (3/3) | + | |
| 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 | ||
| - | ---- | + | </ |
| - | [NOTE.speaker] | ||
| - | -- | ||
| - | Oui, même sur debian 8 et systemctl, la commande service fonctionne ! | ||
| - | -- | ||
| - | === Configuration de CUPS (1/2) | + | ==== Configuration de CUPS (1/2) ==== |
| - | Port d' | + | === Port d' |
| Permettre d' | Permettre d' | ||
| Remplacer la ligne: | Remplacer la ligne: | ||
| - | ---- | + | <code bash> |
| Listen localhost: | Listen localhost: | ||
| - | ---- | + | </ |
| par: | par: | ||
| - | ---- | + | <code bash> |
| Listen 631 | Listen 631 | ||
| - | ---- | + | </ |
| - | === Configuration de CUPS (2/2) | + | ==== Configuration de CUPS (2/2) ==== |
| Permettre d' | Permettre d' | ||
| - | ---- | + | <code bash> |
| sudo cupsctl --remote-admin | sudo cupsctl --remote-admin | ||
| - | ---- | + | </ |
| Finalement, on redémarre CUPS: | Finalement, on redémarre CUPS: | ||
| - | ---- | + | <code bash> |
| sudo systemctl restart cups | sudo systemctl restart cups | ||
| - | ---- | + | </ |
| - | === Ajouter l' | + | ==== Ajouter l' |
| En fonction de la marque et du modèle d' | En fonction de la marque et du modèle d' | ||
| Ligne 148: | Ligne 130: | ||
| Une fois le bon driver installé, reste à ajouter l' | Une fois le bon driver installé, reste à ajouter l' | ||
| - | * Ouvrir l'URL http://<ip_serveur_web>:631 | + | |
| - | * Choisir " | + | * Choisir " |
| - | * Suivre les instructions de l' | + | * Suivre les instructions de l' |
| - | === Incron | + | ==== Incron |
| - | * Installer incron et permettre à root de l' | + | |
| - | ---- | + | |
| + | <code bash> | ||
| sudo su | sudo su | ||
| # apt-get install incron | # apt-get install incron | ||
| # echo root > / | # echo root > / | ||
| - | ---- | + | </ |
| - | * Activer la surveillance du dossier de destination: | + | |
| - | ---- | + | |
| + | |||
| + | <code bash> | ||
| sudo incrontab -e | sudo incrontab -e | ||
| - | ---- | + | </code> |
| - | * Et ajouter: | + | |
| - | ---- | + | |
| - | /var/ | + | |
| - | ---- | + | |
| - | [NOTE.speaker] | + | * Et ajouter: |
| - | -- | + | |
| - | Expliquer brièvement la syntaxe et les différents modes supportés par incron: | + | |
| - | * IN_ACCESS File was accessed (read) | + | <code bash> |
| - | * IN_ATTRIB Metadata changed (permissions, | + | /var/www/webdav IN_MOVED_TO / |
| - | * IN_CLOSE_WRITE File opened for writing was closed | + | </code> |
| - | * IN_CLOSE_NOWRITE File not opened for writing was closed | + | |
| - | * IN_CREATE File/directory created in watched directory | + | |
| - | * IN_DELETE File/directory deleted from watched directory | + | |
| - | * IN_DELETE_SELF Watched file/directory was itself deleted | + | |
| - | * IN_MODIFY File was modified | + | |
| - | * IN_MOVE_SELF Watched file/directory was itself moved | + | |
| - | * IN_MOVED_FROM File moved out of watched directory | + | |
| - | * IN_MOVED_TO File moved into watched directory | + | |
| - | * IN_OPEN File was opened | + | |
| - | -- | + | |
| - | === 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' | Du côté serveur, il ne reste plus qu'à copier le script bash suivant dans le dossier spécifié à l' | ||
| - | [source,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 201: | Ligne 169: | ||
| rm " | rm " | ||
| fi | fi | ||
| - | ---- | + | </ |
| - | == Côté Android | + | ===== Côté Android |
| Il suffit ensuite d' | Il suffit ensuite d' | ||
| Ligne 209: | Ligne 177: | ||
| L' | L' | ||
| - | [NOTE.speaker] | ||
| - | -- | ||
| - | Expliquer qu'il est asssez difficile de trouver un client webdav libre sur Android. Et que le client en ligne de commande sous GNU/Linux s' | ||
| - | -- | ||
| - | == Pour aller plus loin | + | ===== Pour aller plus loin ===== |
| Il est possible d' | Il est possible d' | ||
| - | * en implémentant une authentification pour l' | + | |
| - | * 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' | + | * imprimer des documents odt en faisant une conversion à la volée (mais nécessite l' |
| - | == Merci | + | ===== Merci ===== |
| Questions ? | Questions ? | ||
atelier20161119-impression-pdf-android-run.1481828162.txt.gz · Dernière modification : 2016/12/15 18:56 de wap