Wyszukaj numer strony za pomocą PDF Expert i Applescript


0

Próbuję napisać skrypt AppleScript, które zostanie otwarte pdf agile.pdfz PDF Experti wyszukać numer strony.

Zbliżam się do następującego skryptu:

do shell script "open agile.pdf"
delay 1.0

tell application "System Events" 
  tell application process "PDF Expert"
    click menu item "Go to Page..."  of menu 1 of menu bar item "Go"  of menu bar 1
    keystroke "42"
    key code 76
  end tell
end tell

Problemem jest mój skrypt, ponieważ działa on tylko wtedy, gdy „kliknąłem” w PDF Expertokno.

Czy mogę powiedzieć Applescript, aby „kliknął w okno Eksperta PDF po otwarciu?

Ponadto mogę powiedzieć Applescript, aby „czekał, aż pojawi się okno?

Czytałem inną odpowiedź, która sprawia, że ​​wygląda na to, że następujące będą działać, ale nie działa:

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

Zrobiłem trochę grzebania w UIElementInspector, jak zalecono w innej odpowiedzi . To jest wynik PDF Expertokna:

<AXApplication: “PDF Expert>
 <AXWindow: “agile>
  <AXSplitGroup>
   <AXScrollArea>

Attributes:
   AXHorizontalScrollBar:  “<AXScrollBar>”
   AXParent:  “<AXSplitGroup>”
   AXChildren:  “<array of size 5>”
   AXFocused (W):  “1”
   AXSize:  “w=892 h=649”
   AXRole:  “AXScrollArea”
   AXTopLevelUIElement:  “<AXWindow: “agile>”
   AXHelp:  “(null)”
   AXChildrenInNavigationOrder:  “<array of size 5>”
   AXPosition:  “x=292 y=-803”
   AXWindow:  “<AXWindow: “agile>”
   AXRoleDescription:  “scroll area”
   AXVerticalScrollBar:  “<AXScrollBar>”
   AXContents:  “<array of size 3>”
   AXFrame:  “x=292 y=-803 w=892 h=649”

Actions:
   AXScrollLeftByPage - scroll left by a page
   AXScrollRightByPage - scroll right by a page
   AXScrollUpByPage - scroll up by a page
   AXScrollDownByPage - scroll down by a page

Nie mam aplikacji do testowania, ale tell application process "PDF Expert" to activateupewnię się, że znajdzie się na froncie, a także przypadkowo upuści inne polecenia z powrotem do zdarzeń systemowych.
Tetsujin,

Dziękuję za odpowiedź, czy możesz podać przykład. Nie wiem, gdzie umieścić swój wiersz w moim kodzie.
mbigras

Muszę jakoś powiedzieć Applescript, aby „kliknął okno Eksperta PDF”, w przeciwnym razie Ekspert PDF nie zareaguje na resztę poleceń. Jak na razie activate application "PDF Expert"nie działa.
mbigras

Po co używać skryptu powłoki do otwarcia pliku; Czy PDFExpert nie obsługuje polecenia Otwórz? Możesz to sprawdzić w słowniku PDFExpert. Powinien także w pełni obsługiwać polecenie aktywacji.
Max Wyss,

Odpowiedzi:


1

PDF Experi keystroke "42"nie działa dla mnie.

Jednak korzystanie Skimi key codedziała:

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 "Go to Page…" of menu "Go" of menu bar 1
    delay 0.1
    key code {21, 19, 36}
  end tell
end tell

0

To powinno ci pomóc

do shell script "open agile.pdf"
delay 1.0
activate application "PDF Expert"
delay 1 -- you may need to adjust this
tell application "System Events"
    tell process "PDF Expert"
        click menu item "Go to Page..." of menu 1 of menu bar item "Go" of menu bar 1
    end tell
end tell

Nie działa, z jakiegoś powodu PDF Expertnie rozpoznaje poleceń Applescript, chyba że zostało „kliknięte”. SkimWydaje mi się, że eksperymentowanie działa lepiej.
mbigras

To dość dziwne, ponieważ właśnie pobrałem eksperta PDF i sam uruchomiłem skrypt i działa. Możesz spróbować dostosować czasy opóźnienia. Uruchomiłem skrypt bez polecenia „do script script”. Miałem już eksperta w dziedzinie plików PDF z otwartym dokumentem. Potem uruchomiłem skrypt.
wch1zpink

Tak dziwne ... zdecydowanie działa tylko dla mnie, jeśli najpierw kliknę okno i uruchomię skrypt. Ja też nie jestem w stanie keystroke "123", muszękey code {18,19,20}
mbigras
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.