Cambiar los textos de los marcadores de posición en las páginas usando AppleScript

3

Tengo una "prueba" del documento de Pages con un cuadro de texto que contiene el texto "Notas al pie". Este texto está marcado como un texto de marcador de posición.

Quiero cambiar este texto usando AppleScript. Esto es lo que tengo hasta ahora:

tell application "Pages"
    activate
    tell document "test"
        tell current page
            set thistext to every text item whose object text contains "Footnotes"
            tell thistext
                tell its object text
                    set every word to mytext
                end tell
            end tell
        end tell
    end tell
end tell

Al ejecutar esto se producirá el siguiente error:

  

error "No se puede obtener el texto del objeto de {elemento de texto 1 de la página 1 de la identificación del documento \" EB865803-005B-4C5D-A740-398B41B767F5 \ "de la aplicación \" Páginas \ "}." número -1728 de «clase pDTx» de {«clase shtx» 1 de «clase cPag» 1 de documento id "EB865803-005B-4C5D-A740-398B41B767F5"}

El editor de scripts también marca las siguientes líneas:

tell its object text
     set every word to mytext
end tell

¿Alguna idea? El objetivo es completar el texto del marcador de posición en esa página con una nota al pie personalizada.

    
pregunta WalterBeiter 24.10.2017 - 10:48

1 respuesta

2

set … to every … establece la variable en una lista. Eso significa que thistext es una lista, por lo que no puede realizar operaciones destinadas a los elementos en la lista en sí. Necesitas un bucle:

repeat with thistext in (every text item whose object text contains "Footnotes")
    …
end repeat

El script completo es:

tell application "Pages"
    activate
    tell document "test"
        tell current page
            repeat with thistext in (every text item whose object text contains "Footnotes")
                tell thistext
                    tell its object text
                        set every word to mytext
                    end tell
                end tell
            end repeat
        end tell
    end tell
end tell
    
respondido por el grg 24.10.2017 - 11:27

Lea otras preguntas en las etiquetas