Como eu posso modificar o open filename.pdf
comando para que eu possa abrir um número de página desejado diretamente sem ter que rolar para baixo.
Infelizmente, o open
comando não tem um opção para passar para a Pré-visualização para dizer-lhe para ir a uma determinada página. Além disso, o Preview não possui um Dicionário AppleScript para facilitar a criação de scripts, mas não é impossível. o script bash abaixo leva dois argumentos , a nome do arquivo do documento para abrir e a número de página para vamos para . Observe que, se o arquivo de destino abrir não está no diretório de trabalho no Terminal, em seguida, o totalmente qualificado nome do caminho deve ser usado.
Você precisará criar um arquivo para colocar código em e torná-lo executável . Deve estar em um diretório que está no $PATH
, caso contrário, para usá-lo, você terá que fornecer o totalmente qualificado nome do caminho ao executável ou usar ./executable
se no diretório de trabalho do executável no terminal.
Para este exemplo, usando o Terminal padrão, que se abre para o Diretório Pessoal:
touch OpenToPage
open OpenToPage
Agora copie e cole o código , de Código: seção abaixo, no documento aberto, salve-o e feche-o.
Enquanto ainda no Terminal, faça o arquivo executável :
chmod u+x OpenToPage
Usar OpenToPage
:
./opentopage /path/name/to/filename.pdf 3
Ou:
./opentopage '/path/name/to/file name.pdf' 3
./opentopage /path/name/to/file\ name.pdf 3
Código:
#!/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
Notas: Se o alvo nome do arquivo e ou nome do caminho tem espaços, os espaços devem ser escapados com um \
(barra invertida) ou o alvo nome do arquivo e ou nome do caminho deve ser citado, mas não ambos.
o sleep
e delay
os tempos podem ser ajustados se / conforme necessário. Como o roteiro está atualmente escrito, os tempos somam 1,25 segundo no total do processo e provavelmente devem estar bem como estão. Se eu tivesse que ajustar alguma coisa eu mudaria o valor de sleep
, para .75
ou 1
, antes de modificar os valores de delay
.
A nomeação do script bash arquivo nesta resposta é arbitrário, nomeie-o como quiser, por exemplo otp
ou o2p
para abrir para a página etc.