Come posso modificare il comando open filename.pdf
in modo da poter aprire direttamente il numero di pagina desiderato senza dover scorrere verso il basso.
Come posso modificare il comando open filename.pdf
in modo da poter aprire direttamente il numero di pagina desiderato senza dover scorrere verso il basso.
Sfortunatamente il comando open
non ha un'opzione da passare ad Anteprima per dirgli di andare a una determinata pagina. Inoltre, Anteprima non ha un dizionario AppleScript per semplificare la creazione di script, tuttavia non è impossibile. Lo script di bash sotto prende due argomenti , il nomefile del documento in aperto e il numero di pagina a vai a . Nota che se il file di destinazione per aprire non si trova nella directory di lavoro in Terminale, deve essere utilizzato il nome di percorso completamente qualificato.
Dovrai creare un file per inserire questo codice e renderlo eseguibile . Dovrebbe essere in una directory che si trova in $PATH
, altrimenti, per utilizzarlo, dovrai fornire il pathname completo all'eseguibile o usa ./executable
se nella directory di lavoro dell'eseguibile nel Terminale.
Per questo esempio, utilizzando il terminale predefinito, che si apre sulla propria Home directory:
touch OpenToPage
open OpenToPage
Ora copia e incolla il codice , dalla sezione Codice: in basso, nel documento aperto e salvalo, quindi chiudilo.
Mentre sei ancora in Terminal, rendi il file eseguibile :
chmod u+x OpenToPage
Per utilizzare OpenToPage
:
./opentopage /path/name/to/filename.pdf 3
Oppure:
./opentopage '/path/name/to/file name.pdf' 3
./opentopage /path/name/to/file\ name.pdf 3
Codice:
#!/bin/bash
if [[ -z $2 ]]; then
[[ -z $1 ]] && printf "\n Missing Filename..."
printf "\n Missing Page Number...\n\n"
printf " Syntax: OpenToPage Filename Page_Number\n"
printf " Example: OpenToPage Filename.pdf 3\n\n"
exit 1
else
open -a Preview "$1"
sleep .5
osascript -e 'tell application "Preview" to activate' \
-e 'delay 0.25' \
-e 'tell application "System Events" to tell process "Preview" to click menu item "Go to Page…" of menu "Go" of menu bar 1' \
-e 'delay 0.25' \
-e "tell application \"System Events\" to keystroke \"$2\"" \
-e 'delay 0.25' \
-e 'tell application "System Events" to key code 36'
fi
exit 0
Note: Se il target nomefile e nome percorso ha spazi, gli spazi devono essere preceduti da escape con \
(barra rovesciata) o il nomefile di destinazione eo percorso devono essere citati, ma non entrambi.
Le sleep
e delay
volte possono essere regolate se / secondo necessità. Poiché lo script è attualmente scritto, i tempi aggiungono 1,25 secondi in totale all'intero processo e probabilmente dovrebbe andare bene così com'è. Se dovessi aggiustare qualcosa cambierei il valore di sleep
, a .75
o 1
, prima di modificare i valori di delay
.
La denominazione del file bash script in questa risposta è arbitraria, nominala come preferisci, ad es. otp
o o2p
per aperto alla pagina , ecc.