Applescript para abrir todos los archivos en una carpeta y convertirlos a PDF con Vista previa

He escrito un AppleScript para hacer lo que describe el título. Se supone que debe ir a una carpeta dada, abrir cada uno de los archivos uno a la vez en la vista previa, hacer clic en "archivo" en la barra de menú, luego hacer clic en "Exportar como PDF...", luego hacer clic en entrar para aceptar el cuadro de diálogo que abrirá. Repita hasta que no queden más archivos para automatizar.

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

Recibo el siguiente error cuando se ejecuta, abre el archivo en Vista previa y se detiene. ¿Algunas ideas?

El error no es muy descriptivo.

ingrese la descripción de la imagen aquí

Respuestas (1)

"Export as PDF…" No debe ser "Export as PDF...", tenga en cuenta que el primer ejemplo tiene puntos suspensivos reales, no como en su código, el segundo ejemplo, tres puntos después de PDF.

Además, como ejemplo en Vista previa en macOS 10.12.5 Sierra en el que probé esto, también puede usar:

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

Nota: Obviamente, en diferentes versiones de OS X/macOS, "Exportar como PDF..." puede ser un menu item número diferente o ese comando puede no existir en esa forma.


Para abordar el comentario, usaría lo siguiente en lugar de lo que tiene actualmente:

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

Saliendo keystroke returndel código .

Nota: Es posible que sea necesario ajustar el valor del delay comando para su sistema.

Esto es correcto, gracias. Sin embargo, mi retorno de pulsación de tecla da el error: "La vista previa obtuvo un error: no se puede obtener la pulsación de tecla " "".
@JamesDonnelly usted dijo ' Sin embargo, mi respuesta de pulsación de tecla da el error: "La vista previa obtuvo un error: no se puede obtener la pulsación de tecla " "". ', ... bueno, esa es realmente una pregunta completamente diferente. Le sugiero que haga otra pregunta por separado y, si corresponde, puede hacer referencia a la pregunta original si lo considera pertinente.
@JamesDonnelly, actualicé mi respuesta para abordar su comentario.
Gracias por responder a mi pregunta y mi comentario adicional. Has sido de mucha ayuda.