IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> apple script iBarcoder, récupérer du texte et insérer dans un QR code
Options
moustikk
posté 26 Dec 2015, 12:30
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 45
Inscrit : 6 Sep 2006
Membre no 67 441



Bonjour,
J’aimerais pour un projet insérer automatiquement le texte d’un email dans un QR code.

Ce QR code, se trouve dans le logiciel : iBarcoder

Ensuite, exporter le fichier créer par iBarcoder (un pdf), l’insérer dans un email et le retourner à une adresse présente dans le même email que le texte.

J’essaye avec apple script, mais je suis rapidement bloqué.
J’arrive à ouvrir iBarcoder, ouvrir un fichier test que j’ai créer (une page avec un datamatrix au centre) mais je ne trouve pas comment modifier le contenu du datamatrix! en fait je ne trouve pas comment s’appelle la variable.

qq pourrait me guider ?
Merci


--------------------
MacBook et Powerbook,G4 quicksilver, PowerBook, iMac, Macbook Pro, ...
Go to the top of the page
 
+Quote Post
PBell
posté 27 Dec 2015, 10:18
Message #2


Macbidouilleur de bronze !
**

Groupe : Membres
Messages : 264
Inscrit : 7 Dec 2013
Lieu : Ile de France
Membre no 188 169



Bonjour,
Ce que tu cherches à faire n'est pas simple car l'application iBarcoder n'est pas scriptable.
Cela signifie que le développeur/éditeur de cette application n'a pas prévu qu'elle puisse être commandée par des scripts.

Le seul moyen de lui faire faire des choses est donc de simuler ce que ferait l'utilisateur devant son clavier et sa souris. Cela s'appelle du GUI scripting.
C'est ce que j'ai fait ci-dessous, mais il faut être conscient des limitations de cette méthode :

1) Elle est strictement dépendante de l'interface utilisateur. Je me suis basé sur une version démo de iBarcoder (version 3.7.8). Si, demain, l'éditeur décide de changer le nom des boutons, des zones de texte, et autres éléments graphiques de la fenêtre principale ou leur comportement, le script risque fort de ne plus fonctionner. Il faudra alors l'adapter à la nouvelle interface !

2) Comme le script simule des clicks et appuis sur des touches, tu ne dois rien faire sur ton mac pendant les quelques secondes de ce script. Sinon, le Mac ne fera pas la différence entre tes clicks/touches et ceux venant du script.

Ces mises en garde faites, j'ai donc fait une routine qui reçoit un texte et renvoi un QRcode dans le presse-papier.
Comme l'application Mail est parfaitement scriptable, le reste est plus facile avec une boucle sur chaque email sélectionné qui réponds et colle le QRcode avant d'envoyer le mail.
J'ai supposé que tu voulais traiter tous les mails que tu as sélectionné, puis tu lances le script.

J'ai mis plein (presque trop) de commentaires pour que tu puisse le modifier à ta guise. Tu dois juste copier tout ce texte dans l'éditeur de script et l'enregistrer sous forme d'application (ou même de service via Automator !). Je te laisse cette dernière partie.

Cordialement

CODE
tell application "Mail" to set MesEmails to selection --tous les emails sélectionnés sont traités en boucle
repeat with unMail in MesEmails
    tell application "Mail" to set MonTexte to (content of unMail) as string --lit le texte de l'email
    
    QRCode(MonTexte) -- converti le texte en QRCode dans le presse papier
    
    tell application "Mail"
        activate
        set MonMessage to reply unMail with opening window -- ouvre une fender de réponse au mail
        repeat until name of front window is (subject of MonMessage)
            delay 0.3
        end repeat
        tell application "System Events" to keystroke "v" using {command down} --colle le presse-papier (=QRCode) dans le corps du mail
        send MonMessage -- envoi du message
    end tell
end repeat



on QRCode(TextQR) -- conversion du texte en QR code (comme iBarcoder n'est pas scriptable, on doit passer via l'interface graphique)
    tell application "iBarcoder" to activate
    tell application "System Events"
        tell process "iBarcoder"
            delay 1
            keystroke "a" using {command down} -- selectionne le code barre existant
            delay 1
            -- click on "propriété de codes à barres" si ce n'est pas déjà sélectionné
            if value of checkbox "Propriétés de codes à barres" of scroll area 1 of window 1 = 0 then
                click checkbox "Propriétés de codes à barres" of scroll area 1 of window 1 -- 1 si checked
            end if
            -- défini le sous menu avec le format QRCode, si ce n'est pas déjà fait
            if value of pop up button 1 of scroll area 1 of window 1 is not "QRCode" then
                click pop up button 1 of scroll area 1 of window 1
                --click menu item 32 of menu 1 of pop up button 1 of scroll area 1 of window 1
                click menu item "QRCode" of menu 1 of pop up button 1 of scroll area 1 of window 1
            end if
            -- met le texte choisi dans la zone QR code
            set value of text area 1 of scroll area 2 of scroll area 1 of window 1 to TextQR
            -- copie du QRCode dans le presse-papier
            keystroke "c" using {command down}
        end tell
    end tell
end QRCode


--------------------
iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8
iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11
Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8
Go to the top of the page
 
+Quote Post
moustikk
posté 27 Dec 2015, 12:08
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 45
Inscrit : 6 Sep 2006
Membre no 67 441



Bonjour,
merci pour ce coup de main! je vais faire qq essais dans les jours qui viennent et je passerai par ici pour te donner des nouvelles!
Tout est très clair! c’est parfait!
Bonne journée


--------------------
MacBook et Powerbook,G4 quicksilver, PowerBook, iMac, Macbook Pro, ...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 28th March 2024 - 16:52