Bonjour à tous,
voici un petit truc que je trouve très pratique… Si comme moi vous imprimez souvent des pages web, des documents textes, des images en PDF pour les diffuser, les archiver ou les imprimer, vous utilisez alors l'imprimante virtuelle cups-pdf (si celle-ci n'est pas disponible, il vous suffit d'installer le paquet cups-pdf).
Mais vous avez sûrement alors eu envie que le fichier généré par l'imprimante virtuelle s'ouvre aussitôt dans votre visualiseur PDF préféré (evince, okular, acroread, xpdf, etc.).
Voici comment faire, en trois étapes :
- Créez un script bash avec le contenu suivant :
#!/bin/bash
# Export display otherwise the PDF viewer will fail
export DISPLAY=':0.0'
# Get user name
USER=`ls -l $1 | awk '{print $3}'`
# Open default PDF viewer as user
sudo -H -u $USER "/usr/bin/xdg-open" "$1"
Copiez le script dans /usr/local/bin/cups-pdf-process et donnez lui les droits d'exécution :
sudo chmod +x /usr/local/bin/cups-pdf-processÉditez le fichier /etc/cups/cups-pdf.conf et ajoutez la ligne :
PostProcessing /usr/local/bin/cups-pdf-process
Après cela, chaque fois que vous imprimerez avec l'imprimante virtuelle, le fichier PDF généré s'ouvrira automatiquement et votre visualiseur vous permettra d'en enregistrer une copie où vous voulez, de l'imprimer, etc.
Très pratique !
# Oui, mais...
Posté par paipai62 . Évalué à 2.
Bonjour,
Merci :)
Mais ça ne fonctionne que sur un desktop mono-user(et encore, sur mon laptop je suis déjà « :1 », mais ça reste configurable) .
Sur un système partagé comme NoMachine, ça ne fonctionne pas.
Un truc pas très joli:
Prochaine update quand on aura du Wayland partout :P
[^] # Re: Oui, mais...
Posté par Yth (Mastodon) . Évalué à 2.
Le serveur X est lancé par root.
Parce que le serveur X est lancé par xdm/kdm/gdm/sddm/lxdm/lightdm lui-même lancé en root.
Yth.
[^] # Re: Oui, mais...
Posté par paipai62 . Évalué à 0.
Du coup, comment faire ?
Ici, NoMachine lance avec les droits utilisateurs.
Sur mon laptopn(gdm/gnome3 sous archlinux) j'ai:
@yth un « who » te donne quoi, juste par curiosité ?
Chez moi:
[^] # Re: Oui, mais...
Posté par Yth (Mastodon) . Évalué à 3.
Ça marche ça !
Yth :)
[^] # Re: Oui, mais...
Posté par SChauveau . Évalué à 2.
ls et awk pour récupérer le nom d'utilisateur. Ok! ca marche mais c'est un peu bourrin :-)
Il existe une commande pour ce genre de requêtes sur les attributs de fichiers: stat
stat -c %U "$1"
[^] # Re: Oui, mais...
Posté par SChauveau . Évalué à 1.
Et zut. Cela m'apprendra de ne pas lire tout les réponses.
# stat
Posté par Nicolas Casanova . Évalué à 4. Dernière modification le 06 décembre 2016 à 11:21.
Si le but de la ligne ci-dessus est de récupérer le propriétaire du PDF, ce n'est pas forcément très fiable (rien ne garantit que le propriétaire sera toujours dans la troisième colonne.)
Il vaut mieux utiliser
stat
(qui, en plus, évite de recourir à un pipe) :Après, évidemment, chacun fait comme il veut.
[^] # Re: stat
Posté par bibifric05 . Évalué à 1.
Oui, c'est mieux, merci.
C'est curieux parce que j'avais d'abord testé cette solution, qui n'avait pas marché (sans doute une coquille dans le script) et je me suis rabattu sur la solution avec ls…
[^] # Re: stat
Posté par guppy . Évalué à 6.
Avec une syntaxe plus moderne et une protection contre les espaces :
[^] # Re: stat
Posté par syntaxerror . Évalué à 1.
### Key: PostProcessing (config, lptoptions)
## postprocessing script that will be called after the creation of the PDF
## as arguments the filename of the PDF, the username as determined by
## CUPS-PDF and the one as given to CUPS-PDF will be passed
## the script will be called with user privileges
## set this to an empty value to use no postprocessing
du coup un simple "id" permet de récupérer l'utilisateur
[^] # Re: stat
Posté par bibifric05 . Évalué à 1.
Ah oui, c'est encore mieux, merci !
[^] # Re: stat
Posté par Ambroise . Évalué à 1.
Et donc, le sudo est vraiment nécessaire dans ce cas ?
[^] # Re: stat
Posté par bibifric05 . Évalué à 0.
Sans le sudo -H -u, l'application utilisée pour ouvrir le PDF (par exemple evince) ne reconnaît pas le dossier utilisateur…
Alors, si on veut enregistrer une copie du fichier et que l'on clique sur "Dossier personnel" dans le dialogue de fichier d'Evince ou autre, il ne se passe rien, alors qu'avec le sudo -H -u ça marche.
# Pour les documents texte
Posté par Jean-Baptiste Faure . Évalué à 2.
et autres documents gérés par LibreOffice, l'export PDF (Fichier > Exporter en PDF, donc sans passer par une imprimante virtuelle) a une option qui fait exactement ça.
[^] # Re: Pour les documents texte
Posté par bibifric05 . Évalué à 2.
Oui, c'est pratique quand on est déjà sous LibreOffice, mais pas quand on est dans un éditeur, sous Firefox, dans Gimp, etc.
# Lecteur de PDF par défaut sous debian SID
Posté par Cyprien (site web personnel) . Évalué à 1.
Merci pour l'astuce :)
Mais pour moi, il ouvre le PDF avec GIMP, alors que si je clique sur un PDF dans mon gestionnaire de fichiers, il l'ouvre bien avec evince.
Comment faire pour qu'il s'ouvre par défaut avec Evince ? (Je suis sous debian SID).
D'ailleurs, j'ai à peu près la même question pour le navigateur par défaut. Les liens sont ouverts avec firefox ESR alors que j'utilise des versions de Firefox non ESR. Je fais comment pour changer ?
Merci !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.