1 votes

Définir un texte coloré et l'envoyer dans le presse-papiers

Ceci est probablement très facile, mais toutes les solutions que j'ai trouvées étaient dirigées vers des applications spécifiques.

Au travail, nous utilisons un système en ligne dans le navigateur et je me retrouve tous les jours à définir la couleur de mes messages en utilisant la souris, ce qui est très ennuyeux. J'ai juste besoin d'entrer quelque chose comme :

[green] Le fichier a été approuvé. [/green] <-- ceci est juste à titre d'illustration car ce champ de question n'a pas de couleurs. Ces balises n'ont aucun effet sur le système.

ou

[red] Le fichier a été refusé. [/red].

Comme le système est en ligne, je ne peux pas utiliser des commandes directes pour définir la couleur du texte comme nous le ferions en utilisant TextEdit ou tout autre éditeur réel. Je me demande donc s'il existe un moyen de définir la couleur du texte via Applescript (Service Automator) et de l'envoyer dans le presse-papiers car je sais que le navigateur collera le texte formaté avec la bonne couleur.

Toute autre solution de contournement sera appréciée.

1voto

user3439894 Points 52496

Comme je n'ai pas accès à l'application Web que vous utilisez, je ne peux vraiment pas tester si cela fonctionnera pour vous.

Le exemple AppleScript code, présenté ci-dessous, avec des tests limités fonctionne pour moi tel que codé sous macOS High Sierra.

Vue d'ensemble : Obtient le texte sélectionné dans Google Chrome et le place sur le presse-papiers dans la couleur choisie en tant que HTML données, et le colle de nouveau sur le texte sélectionné.1

Il utilise un Automator Service, configuré pour Le service reçoit le texte sélectionné texte dans Google Chrome, avec [] Le résultat remplace le texte sélectionné décoché, auquel un raccourci clavier a été assigné dans Préférences Système > Clavier > Raccourcis > Services comme : C

Le Automator Service utilise une exécution AppleScript action avec le code par défaut entièrement remplacé par le exemple AppleScript code.

Utilisation : Après avoir sélectionné du texte dans Google Chrome et appuyé sur C, une boîte de dialogue choisir dans la liste s'affiche où vous pouvez sélectionner la couleur à appliquer au texte sélectionné sur le presse-papiers. Vous n'avez pas besoin d'utiliser la souris, juste des frappes de clavier, par exemple G-Entrée pour vert, O-Entrée pour orange et R-Entrée pour rouge, ou Échap pour annuler l'action.

À ce stade, si tout fonctionne comme il faut, le texte sélectionné aura été remplacé par le texte coloré du presse-papiers.1 (Vous devrez lui laisser une seconde pour que le service se termine.)

Oui, c'est quelques frappes de clavier, mais une fois à l'aise avec cela, je crois que cela deviendra naturel et sera plus rapide que de devoir atteindre la souris, etc.

Les précautions habituelles peuvent s'appliquer à l'utilisation de ceci dans : Préférences Système > Sécurité & Confidentialité > Confidentialité > Accessibilité

1Remarquez également que le <em>texte</em> contenant le <em>texte sélectionné</em> doit permettre de coller le même type de données de classe HTML et la structure qui ont été placées sur le presse-papiers tels qu'indiqués dans les commentaires de la question originale en réponse aux questions que j'ai posées, sinon cela ne fonctionnera pas tel que codé.


Exemple AppleScript code :

--  # Couleur HTML verte : #27ae60     '23323761653630'
--  # Couleur HTML orange : #e67e22;       '23653637653232'
--  # Couleur HTML rouge : #d35400       '23643335343030'
--  # commande sed 'placeholder'     '706C616365686F6C646572'

propriété myBrowser : "Google Chrome"

propriété greenHTML : «données HTML3C6D65746120636861727365743D277574662D38273E3C7370616E207374796C653D22636F6F723A233030666630303B223E706C616365686F6C6465723C2F7370616E3E0A»
propriété orangeHTML : «données HTML3C6D65746120636861727365743D277574662D38273E3C7370616E207374796C653D22636F6F723A236536376532323B223E706C616365686F6C6465723C2F7370616E3E0A»
propriété redHTML : «données HTML3C6D65746120636861727365743D277574662D38273E3C7370616E207374796C653D22636F6F723A236433353430303B223E706C616365686F6C6465723C2F7370616E3E0A»

propriété tmpHTMLdata : "/private/tmp/tmpHTMLdata"

sur lancer {entrée, paramètres}
    m'activer
    définir le texte sélectionné à l'élément 1 de l'entrée en tant que texte

    définir couleurChoisie à (choisir dans la liste ¬
        {"Vert", "Orange", "Rouge"} avec titre ¬
        "Choix de la couleur" avec invite ¬
        "De quelle couleur faire le texte sélectionné ?") comme texte

    si (couleurChoisie en tant que texte) est "faux" alors
        renvoyer
    sinon si couleurChoisie est "Vert" alors
        mon écrireDansFichier(greenHTML, tmpHTMLdata, vrai)
    sinon si couleurChoisie est "Orange" alors
        mon écrireDansFichier(orangeHTML, tmpHTMLdata, vrai)
    sinon si couleurChoisie est "Rouge" alors
        mon écrireDansFichier(redHTML, tmpHTMLdata, vrai)
    fin si

    exécuter script shell "sed -i '' -e 's|placeholder|" & selectedText & "|' " & forme citée de tmpHTMLdata
    définir le presse-papiers à (lire tmpHTMLdata comme «classe HTML»)
    délai 0.25
    dire à l'application myBrowser de s'activer
    délai 0.25
    dire à l'application "System Events" de taper "v" en utilisant la touche de commande
fin lancer

sur écrireDansFichier(lesDonnées, leFichier, écraserContenuExistants)
    essayer
        définir leFichierOuvert à ouvrir l'accès au fichier POSIX leFichier avec autorisation d'écriture
        si écraserContenuExistingContent est vrai alors définir eof de leFichierOuvert à 0
        écrire lesDonnées dans leFichierOuvert à partir de eof
        fermer l'accès auFichier
    en cas d'erreur eStr nombre eNum
        essayer
            fermer l'accès au fichier leFichier
        fin essayer
        afficher le dialogue eStr & " nombre " & eNum ¬
            boutons {"OK"} bouton par défaut 1 ¬
            avec titre "Erreur d'E/S de fichier..." avec icône stop
        renvoyer
    fin essayer
fin écrireDansFichier

Remarque : Le <em>exemple</em> <strong>AppleScript</strong> <em>code</em> est juste cela et en dehors de toute <em>gestion des erreurs</em> incluse ne contient pas de gestion des erreurs supplémentaire qui pourrait être appropriée. Il incombe à l'utilisateur d'ajouter toute <em>gestion des erreurs</em> qui pourrait être appropriée, nécessaire ou voulue. Consultez l'<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>instruction try</strong></a> et l'<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>instruction error</strong></a> dans le <a href="https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/introduction/ASLR_intro.html" rel="nofollow noreferrer"><strong>Guide de langage AppleScript</strong></a>. Voir également, <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>Travailler avec les erreurs</strong></a>.

0 votes

@Mateus Ribeiro, Si cela ne fonctionne pas avec les données HTML, je peux écrire le code pour une version des données RTF, il suffit de me le faire savoir.

0 votes

Cela fonctionne parfaitement sur Gmail et Google Spreadsheets et IL COLORE le texte pour le presse-papiers, car j'ai pu le coller sur TextEdit. Je vais donc marquer votre réponse comme correcte, même si cela ne fonctionne pas pour moi. Cela peut aider d'autres personnes. Cependant, le système Kambanize restera inexplicablement noir. Peut-être devrions-nous essayer la solution RTF.

0 votes

@Mateus Ribeiro, Oui, j'ai déjà le code mis en place mais j'ai juste besoin d'obtenir le presse-papiers en tant que «classe RTF» pour les couleurs vertes et oranges que vous souhaitez utiliser.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X