0 votos

En cuanto a AppleScript, ¿es posible cambiar la opción de exportación "diseño de página" al exportar documentos de Numbers a PDF?

Hace un tiempo improvisé un breve AppleScript para exportar varios documentos de Pages a PDF de una sola vez, y ahora quiero hacer lo mismo con Numbers. El principio básico es el mismo y el script básicamente lo lleva a cabo EXCEPTO la parte de exportación a PDF.

aquí hay un extracto:

tell application "Numbers"
    export front document to file exportFile as PDF with properties {image quality:Best}
end tell

Esto logra exportar un PDF, pero el problema que tengo es que el comando anterior utiliza la configuración "ajustar cada hoja a una sola página" por defecto por alguna razón. Preferiría que "usara la configuración de impresión" y exportara varias páginas para una sola hoja grande como cuando se imprime (ya sabes, el formato útil).

Estas opciones se presentan en el cuadro de diálogo Exportar a PDF junto a "Calidad de imagen" y "Requerir contraseña para abrir", pero no como opciones de exportación en el diccionario script para Numbers. Y el comando script tiene por defecto una configuración diferente a la del cuadro de diálogo. He tratado de adivinar / buscar lo que puedo hacer para cambiar la configuración de forma automática, pero, obviamente, sin esa suerte.

Espero, más allá de toda razón, que haya alguna manera de acceder a esta configuración / propiedad a través de AppleScript. Y espero que sin utilizar SystemEvents de ninguna manera. ¿Alguna idea?

Muy agradecido de antemano...

EDITAR con mi solución final:

Mi objetivo original era exportar automáticamente a PDF varios archivos de Numbers en distintas ubicaciones. Varios obstáculos que tuve fueron guardar en cualquier ubicación arbitraria (incluyendo volúmenes montados en red) esto requiere una ruta POSIX completa, extraer la ubicación del archivo como tipo alias (?) y convertirlo a POSIX, y secuenciar la operación Finder -> Numbers para que el script se ralentizara lo suficiente e hiciera suficiente comprobación de que el documento estaba abierto para que no se colgara cada vez. Esto es lo que terminé (por favor, perdona mi probablemente mala confirmación del proceso y la falta de manejo de errores):

tell application "Finder"
set theSelection to selection
repeat with oneItem in theSelection     (*repeat the entire export process for 1 document at a time*)
    set finderLocation to oneItem as text
    set nameOfDocument to name of oneItem
    open oneItem

    tell application "Numbers"
        set idx to 0     (*wait until Numbers is open with a document*)
        repeat until (exists document nameOfDocument)
            delay 0.1
            set idx to idx + 1
            if idx > 1000 then quit
        end repeat

        set idx to 0     (*wait target document is at the front*)
        set pagesLocation to file of front document as text
        repeat until finderLocation = pagesLocation
            delay 0.1
            set pagesLocation to file of front document as text
            set idx to idx + 1
            if idx > 1000 then quit
        end repeat

        set exportFile to file of front document     (*get file location of document as file type*)
    end tell

    (*change file path for use when saving: convert file type to POSIX type, replace .numbers ext with .pdf, remove leading '/'*)
    set exportFile to POSIX path of exportFile
    set exportFile to text 1 thru -8 of exportFile
    set exportFile to exportFile & "pdf"
    set exportFileCharCount to count characters of exportFile
    set exportFile to text 2 thru exportFileCharCount of exportFile

    activate application "Numbers"

    delay 0.2

    tell application "System Events" to tell application process "Numbers"

        (*export whole document to pdf with settings*)
        click menu item 1 of menu 1 of menu item "Export To" of menu 1 of menu bar item "File" of menu bar 1

        tell sheet 1 of window 1
            click radio button "Use print settings" of radio group 1
            click pop up button 1
            click menu item "Best" of menu 1 of pop up button 1
            click button "Next…"
            delay 1
            tell application "System Events" to keystroke "/"     (*type leading '/' in order to trigger the ability to type any arbitrary location to save to*)
            delay 1
            tell application "System Events" to keystroke exportFile & return     (*type the rest of the target file location in POSIX and accept entry*)
            delay 0.5
            click button "Export"
        end tell

    end tell
    tell application "Numbers" to close front document without saving
end repeat
end tell

0voto

user3439894 Puntos 5883

Como mencioné en un comentario al OP... Si el propiedades no existen en el diccionario, entonces probablemente tendrá que utilizar Eventos del sistema .

Lo siguiente ejemplo AppleScript código se puede utilizar para implementar un Guiones de interfaz de usuario solución aunque no sea su primera opción:

activate application "Numbers"

delay 0.2

tell application "System Events" to tell application process "Numbers"
    click menu item 1 of menu 1 of menu item "Export To" of ¬
        menu 1 of menu bar item "File" of menu bar 1
    tell sheet 1 of window 1
        click radio button "Use print settings" of radio group 1
        click pop up button 1
        click menu item "Best" of menu 1 of pop up button 1
        click button "Next…"
        delay 0.5
        click pop up button 1
        click menu item "Documents" of menu 1 of pop up button 1
        click button "Export"
    end tell
end tell

Tenga en cuenta que como actualmente codificado asume que tiene un documento ya abierto en Números y lo activará utilizando un atajo de teclado por uno de los muchos medios disponibles, que incluyen aplicaciones de terceros.


Nota: El <em>ejemplo </em><strong>AppleScript </strong><em>código </em>es sólo eso y no contiene ningún <em>tratamiento de errores </em>según corresponda. Corresponde al usuario añadir cualquier <em>tratamiento de errores </em>como sea apropiado, necesario o deseado. Eche un vistazo a la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129232" rel="nofollow noreferrer"><strong>pruebe con </strong></a><em>declaración </em>y <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_control_statements.html#//apple_ref/doc/uid/TP40000983-CH6g-129657" rel="nofollow noreferrer"><strong>error </strong></a><em>declaración </em>en el <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guía del lenguaje AppleScript </strong></a>. Véase también, <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_error_xmpls.html#//apple_ref/doc/uid/TP40000983-CH221-SW1" rel="nofollow noreferrer"><strong>Trabajar con errores </strong></a>. Además, el uso de la <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_cmds.html#//apple_ref/doc/uid/TP40000983-CH216-SW10" rel="nofollow noreferrer">retraso </a>puede ser necesario entre algunos <em>eventos </em>en su caso, por ejemplo <code>delay 0.5</code> con el <em>valor </em>de la <em>retraso </em>ajustado apropiadamente.

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