Примечания экспортировать все в формате PDF - PullRequest
0 голосов
/ 04 ноября 2019

Возможность экспортировать все заметки в macOS Notes.app в формате PDF.

Ошибка выполнения: Заметки получили ошибку: сбой обработчика AppleEvent. (-10000)

Несколько сценариев, последние приведены ниже.

tell application "Notes"
    activate
    repeat with theFolder in every folder
        repeat with theNote in every note of theFolder
            tell application "System Events"
                tell process "Notes"
                    set dockPrefs to dock preferences
                    set appearancePrefs to appearance preferences
                    delay 1
                    display dialog "Foo"
                    tell menu bar 1 of process "Notes"
                        click menu bar item "File"
                        click menu item "Export as PDF..." of menu "File" of menu bar of process "Notes"
                    end tell
                    click button "Save" of sheet 1 of window "Notes" of process "Notes"
                    delay 1
                    key code 125
                end tell
            end tell
        end repeat
    end repeat
end tell

Ошибка выполнения: Notes получил ошибку: сбой обработчика AppleEvent. (-10000)

1 Ответ

0 голосов
/ 04 ноября 2019

Там есть несколько проблем:

  1. Вы уже нацеливаетесь на процесс Notes, поэтому включение в операторы click добавляет еще одну цель процесса - используйте одну или другую, но если выВы делаете много щелчков по меню, которые вы можете посмотреть, используя универсальный обработчик;
  2. В пункте меню экспорта используется эллипс (один символ), а не три периода;
  3. Поместив оператор display dialog в оператор сообщения о системных событиях, вы перемещаете фокус в сторону от приложения.

Также обратите внимание, что текстовое поле выбрано, и кнопка сохранения используется по умолчанию. в листе, так что вы можете использовать нажатия клавиш вместо того, чтобы пытаться щелкать элементы пользовательского интерфейса. Пример очистки (проверенный в Мохаве) будет выглядеть примерно так:

tell application "Notes"
    launch -- seems to work better than 'activate'
    repeat with aFolder in folders
        repeat with aNote in notes of aFolder
            set noteName to (name of aNote)
            try -- keep the name a reasonable length
                set noteName to text 1 thru 20 of noteName
            end try
            tell (current date) to set timeStamp to text 2 thru -1 of (get (1000000 + (its hours) * 10000 + (its minutes) * 100 + (its seconds)) as text) -- hhmmss

            tell application "System Events"
                #display dialog noteName -- testing?
                tell process "Notes"
                    set frontmost to true -- retarget the Notes app
                    delay 0.5
                    click menu item "Export as PDF…" of menu "File" of menu bar item "File" of menu bar 1
                    repeat until exists sheet 1 of window 1 -- wait for the sheet
                        delay 0.02
                    end repeat
                end tell
                keystroke noteName & "_" & timeStamp -- update the name, trying to avoid duplicates
                delay 0.5
                keystroke return -- dismiss the sheet
                delay 0.5
                key code 125
            end tell

        end repeat
    end repeat
end tell
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...