J'espère que le titre n'est pas trompeur.
J'utilise une application de prise de notes qui me permet d'ouvrir des fichiers à partir de notes de démarques:
[read more](/path/to/file.pdf)
Je ne pouvais pas trouver un moyen de l'ouvrir à une page spécifique. Je ne peux pas créer de lien au format accepté par le PDF lecteur.
Existe-t-il un bon moyen d'ouvrir des fichiers avec un script? En gros, je veux remplacer #page=5
par -p 5
à chaque fois.
Je pensais pouvoir écrire mon propre script wrapper de manière à pouvoir taper:
[read more](/path/to/file.pdf#page=5)
et mon script analyse le chemin et le transforme en
xdg-open /path/to/file.pdf -p 5
Je ne suis pas sûr de l'élégance de la méthode ci-dessous. Mais cela fonctionne normalement pour moi.
J'utilise ReText en tant qu'éditeur Markdown et prévois de l'utiliser
[link-to-pdf](pdf-filename.pdf#page=2)
syntaxe pour PDF avec numéro de page.
J'ai donc défini mon script de wrapper xdg-open
local:
mkdir /home/$USER/bin
echo "export PATH=/home/$USER/bin:$PATH" >> .bashrc
et placé le code suivant dans /home/$USER/bin/xdg-open
:
#!/bin/sh
pdfviewer=atril
filename="$1";
case $filename in
*.pdf#page=*)
file=$(echo "$filename" | cut -d "#" -f 1);
page=$(echo "$filename" | cut -d "#" -f 2 | sed "s/page=/-p /");
$pdfviewer "$file" $page ;;
*) /usr/bin/xdg-open "$@" ;;
esac
Ce script doit être exécutable (défini avec chmod +x /home/$USER/bin/xdg-open
) et ne sera utilisé que si .pdf#page=
sera trouvé, sinon il utilisera le système /usb/bin/xdg-open
.
J'ai testé cette méthode avec le visualiseur Atril PDF sur mon Ubuntu 16.04 LTS MATE.
Vous pouvez modifier la variable pdfviewer
en evince
si vous le souhaitez.
En bonus gratuit, nous pouvons utiliser la syntaxe .pdf#page=
dans le terminal:
xdg-open /usr/share/doc/qpdf/qpdf-manual.pdf#page=12
Remarque: après de telles manipulations, nous avons deux exécutables xdg-open
- la sortie de whereis xdg-open
devrait devenir xdg-open: /usr/bin/xdg-open /home/user/bin/xdg-open /usr/share/man/man1/xdg-open.1.gz
.