Uso de AppleScript para convertir por lotes .pages a pdf

Necesito convertir alrededor de 100 documentos .pages a pdf o docx. Con el script AppleScript a continuación, puedo abrir documentos .pages desde la carpeta que selecciono. Sin embargo, recibo el siguiente error al intentar exportar.

Pregunta: ¿Qué está causando el error y cómo lo soluciono?

Mensaje de error con información personal reemplazada:

error "Las páginas obtuvieron un error: no se puede convertir el alias \"Macintosh HD:Users:Path:To:File:foo.pages\" en el tipo de documento". número -1700 del alias "Macintosh HD:Users:Path:To:File:foo.pages". documentar

Línea de código que produce el error:

export this_file to exportFileName as PDF

Guion:

set exportFileExtension to "pdf"
set this_folder to (choose folder with prompt "Pick the folder containing the files to process:") as string
tell application "System Events"
    set these_files to every file of folder this_folder
end tell
repeat with i from 1 to the count of these_files
    set this_file to (item i of these_files as alias)
    set this_info to info for this_file
    tell application "Finder"
        set {fType, nExt} to ({file type, name extension} of file this_file)
        set documentName to the name of this_file
        set exportFileName to documentName & "." & exportFileExtension
    end tell
    if nExt contains "pages" then
        tell application "Pages"
            open this_file
            export this_file to exportFileName as PDF
            close saving no
        end tell
    end if
end repeat

###Actualización###: he agregado este script a github con la esperanza de que beneficie a otros a medida que continúa mejorándose. Se agradecen las contribuciones.

Sí, de hecho :) Nunca toqué AppleScript antes de copiar/pegar de múltiples fuentes que se muestran aquí. No estoy usando fType, pero estoy usando nExt. puedo solo set nExt to (name extension of file this_file)? En cuanto a las convenciones de nombres, de acuerdo. Esto es de las múltiples fuentes de las que copié. Limpiaré eso. Gracias.

Respuestas (1)

Reemplace la línea de código que produce el error con lo siguiente:

export front document to file (this_folder & exportFileName) as PDF

Aquí había dos problemas:

  • exportar toma un documento, por lo que debe pasar el documento tal como lo abrió Pages.
  • Le dio el nombre del archivo, pero no una carpeta contenedora para colocar el archivo con este nombre, así que concatene esto con la ruta de la carpeta contenedora para que Pages sepa a dónde exportar.
Gracias. Pude exportar con éxito usando los cambios que sugieres. Sin embargo, mi código abre los 100 archivos antes de ejecutarlos y no los cierra.
@BrianWilson, Re: tu comentario... cambia close saving noaclose front document saving no
Mmm. Ahora set this_file to (item i of these_files as alias)está causando un mensaje de error: error "Can’t make «class cpkg» \"Macintosh HD:Users:Path:to:file.pages:\" of application \"System Events\" into type alias." number -1700 from «class cpkg» "Macintosh HD:Users:Path:to:file.pages:" to alias
Gracias por la ayuda para responder las preguntas originales con seguimientos. El código todavía tiene muchos errores, pero el problema original se ha resuelto. Como un servicio a la humanidad, estoy poniendo el guión en github. enlace
Aquí hay un mejor enlace a github . He incluido un archivo de texto, por lo que no es necesario descargar el archivo .scpt para ver qué está pasando.