Cómo puedo modificar el open filename.pdf
comando para poder abrir un número de página deseado directamente sin tener que desplazarme hacia abajo.
Desafortunadamente, el open
comando no tiene una opción para pasar a Vista previa para indicarle que vaya a una página determinada. Además, Preview no tiene un diccionario de AppleScript para facilitar la creación de secuencias de comandos, sin embargo, no es imposible. El siguiente script bash toma dos argumentos , el nombre del archivo del documento a abrir y el número de página al que se va a ir . Tenga en cuenta que si el archivo de destino para abrir no está en el directorio de trabajo en Terminal, entonces se debe usar el nombre de ruta completamente calificado.
Deberá crear un archivo para colocar este código y hacerlo ejecutable . Debe estar en un directorio que esté en $PATH
, de lo contrario, para usarlo, deberá proporcionar el nombre de ruta completo al ejecutable o usarlo ./executable
en el directorio de trabajo del ejecutable en la Terminal.
Para este ejemplo, usando la Terminal predeterminada, que se abre en el Directorio de inicio de uno:
touch OpenToPage
open OpenToPage
Ahora copie y pegue el código , de la sección Código: a continuación, en el documento abierto y guárdelo, luego ciérrelo.
Mientras aún está en la Terminal, haga que el archivo sea ejecutable :
chmod u+x OpenToPage
Para usar OpenToPage
:
./opentopage /path/name/to/filename.pdf 3
O:
./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: Si el nombre de archivo de destino o la ruta de acceso tienen espacios, los espacios deben escaparse con una \
(barra invertida) o el nombre de archivo de destino o la ruta de acceso deben estar entre comillas, pero no ambos.
Los tiempos sleep
y delay
se pueden ajustar si es necesario. Como el guión está escrito actualmente, los tiempos agregan 1,25 segundos en total a todo el proceso y probablemente deberían estar bien como están. Si tuviera que ajustar algo, cambiaría el valor de sleep
, a .75
o 1
, antes de modificar los valores de delay
.
El nombre del archivo de script bash en esta respuesta es arbitrario, asígnele el nombre que desee, por ejemplo, otp
o o2p
para abrir en la página , etc.
sjy
sleep
ydelay
s eliminado.sjy
usuario3439894