atelier20161119-impression-pdf-android-run
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
atelier20161119-impression-pdf-android-run [2016/12/15 18:56] – wap | atelier20161119-impression-pdf-android-run [2016/12/15 19:28] (Version actuelle) – wap | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
~~REVEAL theme=sky& | ~~REVEAL theme=sky& | ||
- | + | ====== Impression PDF Android | |
- | + | ||
- | = 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 93: | 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 153: | 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 206: | Ligne 169: | ||
rm " | rm " | ||
fi | fi | ||
- | ---- | + | </ |
- | == Côté Android | + | ===== Côté Android |
Il suffit ensuite d' | Il suffit ensuite d' | ||
Ligne 214: | 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.1481828215.txt.gz · Dernière modification : 2016/12/15 18:56 de wap