1 votos

Buscar número de página con PDF Expert y Applescript

Estoy intentando escribir un script de Applescript que abrirá un pdf agile.pdf con PDF Expert y buscará un número de página.

Estoy acercándome con el siguiente script:

do shell script "open agile.pdf"
delay 1.0

tell application "System Events" 
  tell application process "PDF Expert"
    click menu item "Ir a la página..."  of menu 1 of menu bar item "Ir"  of menu bar 1
    keystroke "42"
    key code 76
  end tell
end tell

El problema es que mi script tal como está solo funcionará si ya he "accedido" a una ventana de PDF Expert.

¿Es posible decirle a Applescript que "acceda a la ventana de PDF Expert después de que se abre?

Además, ¿es posible decirle a Applescript que "espere hasta que la ventana exista?

Estaba leyendo otra respuesta que hace parecer que lo siguiente funcionará pero no lo hace:

repeat until window "agile" of process "PDF Expert" exists
end repeat

He estado investigando con UIElementInspector como se recomienda en otra respuesta. Este es el resultado de la ventana de PDF Expert:

Atributos:
   AXHorizontalScrollBar:  “”
   AXParent:  “”
   AXChildren:  “”
   AXFocused (W):  “1”
   AXSize:  “w=892 h=649”
   AXRole:  “AXScrollArea”
   AXTopLevelUIElement:  “”
   AXHelp:  “(null)”
   AXChildrenInNavigationOrder:  “”
   AXPosition:  “x=292 y=-803”
   AXWindow:  “”
   AXRoleDescription:  “scroll area”
   AXVerticalScrollBar:  “”
   AXContents:  “”
   AXFrame:  “x=292 y=-803 w=892 h=649”

Acciones:
   AXScrollLeftByPage - desplazarse hacia la izquierda por una página
   AXScrollRightByPage - desplazarse hacia la derecha por una página
   AXScrollUpByPage - desplazarse hacia arriba por una página
   AXScrollDownByPage - desplazarse hacia abajo por una página

0 votos

No tengo la aplicación para probar, pero tell application process "PDF Expert" to activate se asegurará de que aparezca en primer plano, y también incidentemente devolverá los otros comandos a System Events.

0 votos

Gracias por la respuesta, ¿puede por favor proporcionar un ejemplo? No sé dónde colocar su línea en mi código.

0 votos

Necesito de alguna manera decirle a Applescript que "haga clic en la ventana de PDF Expert", de lo contrario PDF Expert no responderá al resto de los comandos. Hasta ahora activate application "PDF Expert" no funciona.

1voto

user180817 Puntos 343

El Experimento de PDF y la tecla "42" no funcionan para mí.

Sin embargo, utilizando Skim y el código de tecla funciona:

do shell script "open -a Skim agile.pdf"
delay 0.1

tell application "System Events" 
  tell application process "Skim"
    tell application "System Events" to tell process "Skim" to click menu item "Ir a la Página…" of menu "Ir" of menu bar 1
    delay 0.1
    key code {21, 19, 36}
  end tell
end tell

0voto

wch1zpink Puntos 11

Esto debería funcionar para ti

hacer guión de concha "abrir ágil.pdf"
retraso 1.0
activar aplicación "PDF Expert"
retraso 1 -- es posible que necesites ajustar esto
decir aplicación "Eventos del sistema"
    decir proceso "PDF Expert"
        hacer clic en el elemento de menú "Ir a la página..." del menú 1 del elemento de la barra de menú "Ir" del la barra de menú 1
    end tell
end tell

0 votos

No funciona, por alguna razón PDF Expert no reconoce comandos de Applescript a menos que se haya "clickeado" en él. Estoy experimentando con Skim parece estar funcionando mejor.

0 votos

Eso es bastante extraño porque acabo de descargar PDF Expert y ejecuté el script yo misma y funcionó. Podrías intentar ajustar los tiempos de retardo. Ejecuté el script sin tu "do shell script command". Tenía un PDF Expert ya abierto con un documento abierto. Luego ejecuté el script.

0 votos

Tan extraño... definitivamente solo funciona para mí si primero hago clic en la ventana y luego ejecuto el script. Tampoco puedo keystroke "123", tengo que key code {18,19,20}

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X