0 votos

¿Necesitas ayuda para ajustar la automatización de AppleScript para convertir .pages a .docx?

Cómo puedo ajustar este script para que me permita elegir los archivos no en una carpeta de "sólo páginas", y en su lugar múltiples archivos "libres"?

La palabra clave aquí es "único". No soy de ninguna manera un experto en codificación, pero he aprendido sobre automator recientemente y ha sido increíblemente útil al convertir imágenes PNG a .ICNS

Estaba enviando a un compañero de clase una carpeta con mis apuntes para un curso y me di cuenta de que él tiene un PC y yo un Mac, así que debería convertir los documentos de las páginas a .docx para que él pueda abrirlos. Tengo muchos otros casos en los que esto es necesario. Busqué un poco en Internet y creé una acción rápida, ¡y funciona! Lo he probado varias veces y es casi exactamente lo que necesito.

El único problema es que sólo funciona si todos los documentos están en una carpeta separada de sólo páginas de documentos y quiero una forma de evitarlo. Si pudiera seleccionar varios documentos de páginas a la vez sin ponerlos en una carpeta separada primero, sería genial.

Quick Action Automation

Este es el script que estoy utilizando:

    --Select from where you will pick up the pages files
    set theSourceFolder to choose folder with prompt "Select folder with original pages files :"
    --Do it
    tell application "Finder"
        set theNames to name of files of theSourceFolder ¬
            whose name extension is "pages"
    end tell

    --Select where the files will go
    set theDestinationFolder to choose folder with prompt "Select folder where files will go :"

    -- How many files to export
    set item_count to (get count of items in theNames)

    --Get files and export them
    repeat with i from 1 to item_count

        set current_file to item i of theNames -- get a file
        set lean_file to text 1 thru -7 of current_file & ".docx" -- change the originalfile (.pages) to a .MS Word name
        set out_file to (theDestinationFolder as Unicode text) & (lean_file) -- get the fully qualified output name
        set in_file to (theSourceFolder as Unicode text) & (current_file) -- get the fully qualified input file name

        tell application "Pages"
            set mydoc to open file in_file -- open input file in Pages
            export mydoc to file out_file as Microsoft Word --do the exporting
            close mydoc saving no -- close the original file without saving
        end tell

    end repeat

    return input
end run 

Creo que tengo que cambiar "theSourceFolder" por quizás "theSourceFile" pero también estoy bastante seguro de que hay más cosas en el script de las que entiendo y tengo la sensación de que si intento retocarlo lo arruinaré.

editar:

Además, si pudiera seleccionar el archivo en el Finder sin que la ventana emergente me pidiera que seleccionara un archivo, sería aún mejor.

Gracias por su ayuda de antemano.

1voto

wch1zpink Puntos 11

Este código AppleScript tomará los archivos actualmente seleccionados en la ventana más frontal del Finder, recorriendo cada elemento de uno en uno, y sólo si el archivo es un documento ".pages", se exportará un duplicado como documento de Microsoft Word.

Puede jugar con el código si prefiere tener la opción de elegir la carpeta de salida donde se guardarán los archivos exportados. De lo contrario, los archivos exportados se guardarán en la misma carpeta que los archivos originales.

tell application "Finder" to set inputFiles to selection as alias list

repeat with i from 1 to count of inputFiles
    set thisFile to item i of inputFiles
    tell application "Finder"
        set fileName to name of thisFile
        set nameExtension to name extension of thisFile
        tell current application to set theOffset ¬
            to offset of nameExtension in fileName
        set baseName to text (theOffset - 1) thru 1 of fileName
        set outputFolder to container of thisFile as text
    end tell
    if nameExtension is "pages" then
        tell application "Pages"
            set myDoc to open thisFile
            export myDoc to file ((outputFolder & baseName) ¬
                & "docx" as text) as Microsoft Word
            close myDoc saving no
        end tell
    end if
end repeat

Atención: este código sobrescribirá cualquier archivo .docx existente con el mismo nombre que pueda existir actualmente

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X