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

3

He escrito un AppleScript para hacer lo que describe el título. Se supone que debe ir a una carpeta determinada, abrir cada uno de los archivos uno por uno 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 haya 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. ¿Alguna idea?

El error no es muy descriptivo.

    
pregunta JamesDonnelly 27.09.2017 - 22:36

1 respuesta

2

Debe ser "Export as PDF…" no "Export as PDF..." , tenga en cuenta que el primer ejemplo tiene una elipsis real, no como en su código, el segundo ejemplo, tres puntos después de PDF .

También, como ejemplo en Vista previa en macOS 10.12.5 Sierra en la que probé esto, también puedes 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, bajo diferentes versiones de OS X / macOS "Exportar como PDF ..." puede ser un menu item número diferente o que comando no pueda existe en esa forma.

Para abordar el comentario, usaría lo siguiente en lugar de lo que tienes 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

Dejando a cabo keystroke return del código .

Nota: es posible que el valor del comando delay deba ajustarse para su sistema.

    
respondido por el user3439894 27.09.2017 - 23:19

Lea otras preguntas en las etiquetas