Applescript zum Öffnen aller Dateien in einem Ordner und Konvertieren in PDF mit Vorschau

Ich habe ein AppleScript geschrieben, um das zu tun, was der Titel beschreibt. Es soll zu einem bestimmten Ordner gehen, jede der Dateien einzeln in der Vorschau öffnen, auf "Datei" in der Menüleiste klicken, dann auf "Als PDF exportieren ..." klicken und dann auf die Eingabetaste klicken, um den Dialog zu akzeptieren das wird Öffnen. Wiederholen Sie diesen Vorgang, bis keine Dateien mehr zum Automatisieren übrig sind.

tell application "Finder"
    set fl to files of folder POSIX file "/Users/username/Desktop/Folder" as alias list
end tell
repeat with f in fl
    tell application "Preview"
        open f
        tell application "System Events" to tell process "Preview"
            click menu item "Export as PDF..." of menu 1 of menu bar item "File" of menu bar 1
        end tell
        keystroke return
    end tell
end repeat

Ich erhalte die folgende Fehlermeldung, wenn es ausgeführt wird, es öffnet die Datei in der Vorschau und stoppt. Irgendwelche Ideen?

Der Fehler ist nicht sehr aussagekräftig.

Geben Sie hier die Bildbeschreibung ein

Antworten (1)

Es muss "Export as PDF…" not "Export as PDF..." sein , beachten Sie, dass das erste Beispiel tatsächlich Auslassungspunkte hat, nicht wie in Ihrem Code, das zweite Beispiel drei Punkte nach PDF.

Als Beispiel in der Vorschau unter macOS 10.12.5 Sierra, unter der ich dies getestet habe, können Sie auch Folgendes verwenden:

tell application "System Events" to tell process "Preview"
    click menu item 14 of of menu 1 of menu bar item "File" of menu bar 1
end tell

menu item Hinweis: Offensichtlich kann unter verschiedenen Versionen von OS X/macOS "Als PDF exportieren…" eine andere Nummer sein oder dieser Befehl existiert möglicherweise nicht in dieser Form.


Um den Kommentar zu adressieren, würde ich Folgendes anstelle dessen verwenden, was Sie derzeit haben:

tell application "System Events"
    click menu item "Export as PDF…" of menu 1 of menu bar item "File" of menu bar 1 of application process "Preview"
    delay 0.2
    click button "Save" of sheet 1 of window 1 of application process "Preview"
end tell

Weglassen keystroke returnaus dem Code .

Hinweis: Der Wert des delay Befehls muss möglicherweise für Ihr System angepasst werden.

Das ist richtig, danke. Meine Tastenanschlagsrückgabe gibt jedoch den Fehler aus: "Vorschau hat einen Fehler: Kann Tastenanschlag " " nicht abrufen."
@JamesDonnelly Sie sagten: " Meine Tastenanschlagsrückgabe gibt jedoch den Fehler aus: "Vorschau hat einen Fehler: Tastenanschlag kann nicht abgerufen werden" "." ', ... nun, das ist wirklich eine ganz andere Frage. Ich würde vorschlagen, dass Sie eine weitere separate Frage stellen und gegebenenfalls auf die ursprüngliche Frage zurückgreifen können, wenn Sie dies für relevant halten.
@JamesDonnelly, ich habe meine Antwort aktualisiert, um auf Ihren Kommentar einzugehen.
Vielen Dank für die Beantwortung meiner Frage und meines weiteren Kommentars. Du warst sehr hilfreich.