1 votos

AppleScript para realizar acciones al texto en un nuevo documento de TextEdit

Necesito hacer un AppleScript que crear un nuevo archivo TextEdit , escriba cualquier texto al azar Entonces aparecerá una tabla y le da dos opciones para elegir la fuente de ese texto , entonces lo mismo con el color , guardar el archivo en el escritorio y cerrar TextEdit . Esto es lo que tengo hasta ahora, pero llegué al final de mis conocimientos:

tell application "TextEdit"
    activate
    make new document with properties {text:"XDXDXD"}
    set theDesktopPath to the path to the desktop folder as text
    tell front document
        set font to "Comic Sans MS"
        set size to 40
        set its color to {65535, 0, 0}
    end tell
end tell

No estoy seguro de cómo decir lo que no está funcionando desde el script anterior. Puedes ayudar a completar el script?

2voto

Darth_Vader Puntos 138

Esto es lo que he escrito basándome en lo que se publicó como muestra. Primero puse el nombre del archivo y la ruta del archivo del documento a crear:

set filename to "test.txt"
set filePath to path to desktop

Escribí un diálogo de visualización que solicita un salto de línea con un tiempo de espera y una validación vaga:

try
    set enteredText to (display dialog "What is your text?" default answer linefeed with title scriptTitle giving up after 40)
    if button returned of result = "" or gave up of result = true then error number -128
    set enteredText to text returned of enteredText
on error
    return display notification "Script cancelled" with title scriptTitle
end try

Después de introducir el texto, le digo a TextEdit que manipule el texto basándose en lo que ha suministrado y lo guarde en un archivo en el escritorio:

tell application "TextEdit"
    activate
    set theDoc to make new document with properties {text:enteredText}
    tell theDoc
        set the color of every word to {65535, 0, 0}
        set size to 29
        try
            set font of theDoc to "Comic Sans MS"
        on error
            set font of theDoc to "Times"
        end try
        save in file ((filePath as text) & filename)
    end tell
end tell

El código completo del script:

use AppleScript version "2.4" -- Yosemite (10.10) or later
use scripting additions

(*
    Date: 18-12-20
    Developer: r2d2
    Purpose: prompt for text, manipulate in TextEdit and save to file.
    Version: 1.1
    Name: textedit_experiment.scpt
*)

set filename to "test.txt"
set filePath to path to desktop
set scriptTitle to "r2d2 TextEdit script"

try
    set enteredText to (display dialog "What is your text?" default answer linefeed with title scriptTitle giving up after 40)
    if button returned of result = "" or gave up of result = true then error number -128
    set enteredText to text returned of enteredText
on error
    return display notification "Script cancelled" with title scriptTitle
end try

tell application "TextEdit"
    activate
    set theDoc to make new document with properties {text:enteredText}
    tell theDoc
        set the color of every word to {65535, 0, 0}
        set size to 29
        try
            set font of theDoc to "Comic Sans MS"
        on error
            set font of theDoc to "Times"
        end try
        save in file ((filePath as text) & filename)
    end tell
end tell
return display notification "Script COMPLETED" with title scriptTitle

El script tal y como está es una base y hay muchas otras formas de validación y mejoras que se pueden hacer como la existencia de archivos, las pruebas de retorno de texto o las pruebas de diálogo pero quería responder a la pregunta.


Editar:

Código para el TextEdit decir modificado para incluir el cierre del documento, el texto pasado es codificado duro como foobar :

tell application "TextEdit"
    activate
    set theDoc to make new document with properties {text:"foobar"}

    tell theDoc
        set the color of every word to {65535, 0, 0}
        set size to 29
        try
            set font of theDoc to "Comic Sans MS"
        on error
            set font of theDoc to "Times"
        end try
        save in file ((filePath as text) & filename)
    end tell

    set theDoc to front window
    try
        close theDoc
    on error
        display notification "Didn't close document"
    end try
end tell

Captura de pantalla del diálogo:

enter image description here

Capturas de pantalla del bloque tell codificado arriba y del archivo RTF reabierto:

enter image description here

Código modificado para llevar el texto pasado al diálogo y el RTF abierto:

enter image description here

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