Tengo un pequeño AppleScript para guardar un archivo pptx de PowerPoint como PDF desde la línea de comandos. Utilizo el script cada 6 meses, y el otoño pasado aún funcionaba. Pero hoy me encuentro con problemas. Mientras tanto, actualicé a 10.14, y creo que también hubo bastantes actualizaciones de Office para Mac. Pero como no tengo idea de dónde viene este problema, esto también puede ser información completamente irrelevante.
El problema con el script es: cuando se llama al script, no guarda un PDF, sino que envía el archivo a la impresora predeterminada.
Aquí está el script ya actualizado, pero aún no funciona:
on run arguments
tell application "Finder"
set src to POSIX file (first item of arguments) as alias
set dest to (second item of arguments) as text
open src
delay 10
tell application "Microsoft PowerPoint"
save in dest as save as PDF
close
end tell
end tell
end run
Como no hay mucho código, y como el script funcionó antes, no tengo idea de lo que está mal ahora.
El comentario de @ MaxWyss me llevó a mirar el script desde la línea de comandos. Ejecuté los pocos pasos como argumentos a través de osascript:
$ osascript -e 'tell application "Finder"' -e 'set fileAlias to POSIX file ("file:///Users/me/folder/file.pptx") as alias' -e 'set theOutputPath to ("file:///Users/me/folder/test.pdf") as text' -e 'open fileAlias' -e 'delay 10' -e 'tell application "Microsoft PowerPoint"' -e 'save in theOutputPath as save as PDF' -e 'end tell' -e 'end tell'
281:320: execution error: Microsoft PowerPoint got an error: Parameter error. (-50)
Estoy un poco sorprendido por el mensaje de error, así que intenté ejecutar el script nuevamente:
$ osascript pptx2pdf.scpt file:///Users/me/folder/file.pptx test.pdf
pptx2pdf.scpt: execution error: Microsoft PowerPoint got an error: Parameter error. (-50)
No sé por qué pasé por alto este error. Supongo que se debe a las muchas cosas que cambié en el guión. Sin embargo, este es el mensaje de error, que, desafortunadamente, todavía me deja sin una pista, ya que las diapositivas todavía se envían a la cola de la impresora.
save [in file]
, pero no puedo hacer que el segundo argumento sea un archivo o un archivo POSIX. Esto es realmente molesto. Supongo que tengo que explotarlos a mano ...