quarkxpress - Automatiser rechercher/remplacer |
Bienvenue invité ( Connexion | Inscription )
quarkxpress - Automatiser rechercher/remplacer |
30 May 2018, 07:41
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 6 Inscrit : 30 May 2018 Membre no 205 028 |
Bonjour,
Nouveau sur ce forum, je viens demander de l'aide pour la création d'un script pour Quarkxpress. Je travaille dans un petit journal local, et je perds un temps fou sur certaines parties, comme le programme tv. J'ai fait des recherches sur l'applescript, mais avec mon faible niveau de programmation, pas évident En fait, je dispose d'un pdf comme ceci : 07.00 Nom de l'émission 1 qui MAG Je voudrais que mon script fasse 4 actions : 1) Appliquer un style 2) Mettre en gras les horaires 3) Supprimer les sauts de lignes 4) Supprimer certains mots qui apparaissent en fin de ligne, comme ici "MAG" et "DOC" Pour l'action 4, j'ai commencé à faire ce script qui fonctionne plutôt bien : tell application "QuarkXPress" Malheureusement, si le nom d'une émission comporte le mot "mag" (exemple: "07.30 Magasin de légumes MAG"), il va me supprimer les deux "mag". Comment définir que je ne veux que les "MAG" en fin de ligne ? Je vous remercie d'avance pour votre précieuse aide ! |
|
|
30 May 2018, 14:55
Message
#2
|
|
Nouveau Membre Groupe : Membres Messages : 6 Inscrit : 30 May 2018 Membre no 205 028 |
Bon du coup, j'ai avancé un peu, j'ai réussi à faire supprimer les fins de paragraphes pour que tout fasse un gros bloc :
CODE tell application "QuarkXPress" tell document 1 delete (text of every text of every story where it is "MAG ") end tell tell document 1 set text of every text of every story where it is " " to " " end tell end tell Maintenant, il faut que je mette les 5 premiers caractères de chaque ligne (ex:18.00) en gras. Au boulot, ils appliquent une certaine police, en medium au lieu de regular. J'ai réussi à mettre en gras simple avec ce bout de code (mais que pour la première ligne, je ne sais pas comment utiliser la fonction Repeat pour chaque ligne) : CODE tell application "QuarkXPress" tell document 1 set style of character 1 of text box 1 to bold set style of character 2 of text box 1 to bold set style of character 3 of text box 1 to bold set style of character 4 of text box 1 to bold set style of character 5 of text box 1 to bold end tell end tell Mettre en gras ok, mais changer la font, impossible D'après ce que j'ai trouvé sur le web, ça devrait être quelque chose du genre : CODE tell application "QuarkXPress" tell document 1 set fontname of text of every text of every story to "Formata-Bold" end tell end tell Mais malheureusement, il me sort toujours une erreur Ce message a été modifié par jjalias - 30 May 2018, 14:55. |
|
|
30 May 2018, 17:10
Message
#3
|
|
Macbidouilleur d'Or ! Groupe : Modérateurs Messages : 19 561 Inscrit : 22 Jul 2004 Lieu : Louvain-la-Neuve (Gaule Gelbique) Membre no 21 291 |
Bonjour et bienvenue !
Pour ma part, je n'utilise pas Quark XPress et ne pourrais vraiment pas t'aider directement mais il serait utile pour d'autres de préciser la version utilisée… Par ailleurs, ce qui peut être pratique : dans le Finder, tu saisis l'icône d'XPress et tu la lâches sur celle de l'Editeur AppleScript (dans le dossier Utilitaires) : tu obtiens une fenêtre qui reprend et détaille toutes les commandes AppleScript supportées par XPress. Pour les cinq premiers caractères de chaque ligne, il est normal que tu n'y arrives plus après avoir supprimé les retours à la ligne ; commence par changer leur police en recherchant les cinq caractères après le saut de ligne, puis ensuite seulement tu supprimeras les sauts de ligne. Enfin, regarde aussi si XPress ne supporte pas les expressions régulières (Recherche GREP ou Styles GREP). Avec InDesign en tout cas, c'est ainsi que je te dirais de procéder… P.S. Il semble qu'avec XPress, il y ait des « styles conditionnels » qui s'en approchent : • http://www.ludovic-martin.com/2011/04/quar...t-approuve.html -------------------- ¶ MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS 12.6 “Monterey” ¶ MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8 ¶ Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C ¶ B-Box 3 + HP LaserJet 4000 N
¶ La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même. … Les corsaires mettent en berne… |
|
|
31 May 2018, 09:39
Message
#4
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 757 Inscrit : 9 Aug 2006 Lieu : Ici, pourquoi ? Membre no 65 624 |
Les styles conditionnels vont effectivement faire ce que tu veux pour la mise sous style.
Et tu ne dis pas dans quelle version tu travailles. La dernière en date est la 2018, mais perso je travaille encore (pas uniquement) en 9.5. -------------------- Jean-Marie Schwartz
[MacPro Quad-Core Intel Xeon 2,8 GHz • OS 10.10.5 • QuarkXPress 9.5.4.1 et 2017 • Adobe CS5 et CS6 • Linotype FontExplorerX Pro] « A l'école, c'est logique, l'écologie il faudrait l'enseigner : réapprendre la grammaire de l'eau, de l'air ou de la lumière… » (CharlElie Couture, « Les Ours blancs », in Fort Rêveur) |
|
|
31 May 2018, 15:01
Message
#5
|
|
Nouveau Membre Groupe : Membres Messages : 6 Inscrit : 30 May 2018 Membre no 205 028 |
Bonjour et bienvenue ! Pour ma part, je n'utilise pas Quark XPress et ne pourrais vraiment pas t'aider directement mais il serait utile pour d'autres de préciser la version utilisée… Par ailleurs, ce qui peut être pratique : dans le Finder, tu saisis l'icône d'XPress et tu la lâches sur celle de l'Editeur AppleScript (dans le dossier Utilitaires) : tu obtiens une fenêtre qui reprend et détaille toutes les commandes AppleScript supportées par XPress. Pour les cinq premiers caractères de chaque ligne, il est normal que tu n'y arrives plus après avoir supprimé les retours à la ligne ; commence par changer leur police en recherchant les cinq caractères après le saut de ligne, puis ensuite seulement tu supprimeras les sauts de ligne. Enfin, regarde aussi si XPress ne supporte pas les expressions régulières (Recherche GREP ou Styles GREP). Avec InDesign en tout cas, c'est ainsi que je te dirais de procéder… P.S. Il semble qu'avec XPress, il y ait des « styles conditionnels » qui s'en approchent : • http://www.ludovic-martin.com/2011/04/quar...t-approuve.html Merci pour ta réponse Malheureusement, Xpress ne gère pas les expressions régulières (ça aurait été tellement plus simple ) Effectivement, pour les 5 premiers caractères, j'ai bien mis ce bout de code avant le premier pour que ça marche. J'ai un peu avancé, j'arrive à mettre les 5 premiers caractères en gras avec "set style" (solution provisoire), changer la taille avec "set size", mais changer la police, impossible ! J'ai beau regardé sur plein de forums en anglais, mais je dois sûrement disposer d'une commande fausse (set font, set fontname, set font name, etc...). Voilà le bout de code que j'ai pour l'instant : CODE tell application "QuarkXPress" tell document 1 set numParagraphs to (count paragraphs of text of every text of every story) set paragraphNum to 1 repeat while paragraphNum ≤ numParagraphs set style of character 1 of every paragraph of text of every text of every story to bold set style of character 2 of every paragraph of text of every text of every story to bold set style of character 3 of every paragraph of text of every text of every story to bold set style of character 4 of every paragraph of text of every text of every story to bold set style of character 5 of every paragraph of text of every text of every story to bold set paragraphNum to paragraphNum + 1 end repeat end tell tell document 1 set text of every text of every story where it is "MAG " to "- " set text of every text of every story where it is "DOC " to "- " set text of every text of every story where it is "MUSIQUE " to "- " set text of every text of every story where it is "DIRECT " to "- " set text of every text of every story where it is "DIV " to "- " set text of every text of every story where it is "Conf " to "- " set text of every text of every story where it is " " to " - " end tell end tell |
|
|
1 Jun 2018, 09:09
Message
#6
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 757 Inscrit : 9 Aug 2006 Lieu : Ici, pourquoi ? Membre no 65 624 |
Pour appliquer une police, c'est
Code set font to "Helvetica" par exemple.Plutôt que d'avoir 5 lignes avec Code set style of character… tu peux le faire en une seule : Code set style of character 1 thru 5 to… Il y a une boucle inutile : si tu appliques un style aux caractères 1 à 5 de tous les paragraphes de toutes les stories, il n'y a pas de raison de vouloir mettre à l'intérieur d'une boucle. C'est fait une fois pour toutes. Tu peux également remplacer la série de remplacements de texte en rassemblant dans un ensemble tout ce que tu veux changer (par exemple, Code set Texte_a_remplacer to {"MAG","DOC","MUSIQUE","DIRECT","DIV"} ), puis dans une boucle opérer tes changements : par exemple,Code tell document 1 repeat with i from 1 to length of Texte_a_remplacer set (every text of every story where it is (item i of Texte_a_remplacer)) to "- " end repeat end tell De la sorte, si tu as un ajout à faire, tu n'as pas besoin d'ajouter une ligne, mais juste le texte dans l'ensemble. Et si tu devais remplacer du texte en fonction de celui-ci (par exemple, remplacer MAG par Magazine, DOC par Documentaire, etc.), il te suffirait de jouer avec deux listes correpondantes. -------------------- Jean-Marie Schwartz
[MacPro Quad-Core Intel Xeon 2,8 GHz • OS 10.10.5 • QuarkXPress 9.5.4.1 et 2017 • Adobe CS5 et CS6 • Linotype FontExplorerX Pro] « A l'école, c'est logique, l'écologie il faudrait l'enseigner : réapprendre la grammaire de l'eau, de l'air ou de la lumière… » (CharlElie Couture, « Les Ours blancs », in Fort Rêveur) |
|
|
1 Jun 2018, 09:57
Message
#7
|
|
Nouveau Membre Groupe : Membres Messages : 6 Inscrit : 30 May 2018 Membre no 205 028 |
Pour appliquer une police, c'est Code set font to "Helvetica" par exemple.Plutôt que d'avoir 5 lignes avec Code set style of character… tu peux le faire en une seule : Code set style of character 1 thru 5 to… Il y a une boucle inutile : si tu appliques un style aux caractères 1 à 5 de tous les paragraphes de toutes les stories, il n'y a pas de raison de vouloir mettre à l'intérieur d'une boucle. C'est fait une fois pour toutes. Tu peux également remplacer la série de remplacements de texte en rassemblant dans un ensemble tout ce que tu veux changer (par exemple, Code set Texte_a_remplacer to {"MAG","DOC","MUSIQUE","DIRECT","DIV"} ), puis dans une boucle opérer tes changements : par exemple,Code tell document 1 repeat with i from 1 to length of Texte_a_remplacer set (every text of every story where it is (item i of Texte_a_remplacer)) to "- " end repeat end tell De la sorte, si tu as un ajout à faire, tu n'as pas besoin d'ajouter une ligne, mais juste le texte dans l'ensemble. Et si tu devais remplacer du texte en fonction de celui-ci (par exemple, remplacer MAG par Magazine, DOC par Documentaire, etc.), il te suffirait de jouer avec deux listes correpondantes. Wow, merci beaucoup pour cette réponse si complète ! 1) Pour le "set font to "Helvetica", j'avais trouvé ça sur le web, mais ça ne passe pas, je ne sais pas pq Exemple : CODE set font of every paragraph of text of every text of every story to "Formata-Medium" Message d'erreur : "Erreur dans QuarkXPress : Le type de certaines données est incorrect." ou CODE set font to "Formata-Medium" Message d'erreur : "Erreur dans QuarkXPress : Il est impossible de régler font of document 1 à "Formata-Medium"." (je précise que j'ai bien récupéré le nom Postcript de la police dans le livre des polices. 2) Pour la technique de réduire à 1 ligne les 5 lignes de codes pour mettre les 5 premiers caractères en gras, j'avais aussi essayé la méthode que tu dis, mais pareil, j'ai à chaque fois un message d'erreur : "Erreur dans QuarkXPress : Il est impossible de régler style of characters 1 thru 5 of every paragraph of every text of every text of every story of document 1 à bold." Mais en 5 lignes, il marche parfaitement 3) Pour le "set Texte_a_remplacer to {"MAG","DOC","MUSIQUE","DIRECT","DIV"}", je vais essayer ça, et je te dirais si ça marche. C'est vrai que ça a l'air beaucoup plus propre, rapide et efficace. Encore une fois merci pour ton aide !! Ps: j'ai la version 9.5.4.1 de QuarkXpress |
|
|
4 Jun 2018, 10:15
Message
#8
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 757 Inscrit : 9 Aug 2006 Lieu : Ici, pourquoi ? Membre no 65 624 |
Attention, le langage AppleScript est très précis et il s'agit absolument d'associer les actions aux bons destinataires.
Si tu as : Code Message d'erreur : "Erreur dans QuarkXPress : Il est impossible de régler font of document 1 à "Formata-Medium"." , c'est qu'une police ne peut pas être appliquée au document en tant que tel, mais au texte seulement. Tu dois donc "dire" au bon élément ce que tu veux faire, en l'occurrence insérer un bloc Code tell story 1 of current box , par exemple, ou plutôt, comme tu veux modifier toutes les occurrences dans tous les blocs de texte : Code set font of every text of every story to "Formata-Medium" .2) Code "Erreur dans QuarkXPress : Il est impossible de régler style of characters 1 thru 5 of every paragraph of every text of every text of every story of document 1 à bold." Idem : un style de caractère est appliqué à du texte, lui-même étant un élément d'une story, élément d'un document, donc il faudrait simplifier comme ceci : Code set style of characters 1 thru 5 of every story to bold. (ici, j'ai supprimé of document 1 parce qu'on se trouve déjà dans un bloc tell document 1.Tiens-nous au courant. P.-S. — Bien que le forum ne soit plus vraiment actif, tu trouveras beaucoup de bons conseils sur Publi-Script. C'est en anglais, mais je suppose et j'espère que tu comprends cette langue (ça aide énormément pour l'AppleScript). P.-S. 2 — Ci-joint une visualisation de la hiérarchie des éléments (screenshot du Dictionnaire de QuarkXPress 2017 dans Script Debugger). Ce message a été modifié par CMJS - 4 Jun 2018, 10:18.
Fichier(s) joint(s)
-------------------- Jean-Marie Schwartz
[MacPro Quad-Core Intel Xeon 2,8 GHz • OS 10.10.5 • QuarkXPress 9.5.4.1 et 2017 • Adobe CS5 et CS6 • Linotype FontExplorerX Pro] « A l'école, c'est logique, l'écologie il faudrait l'enseigner : réapprendre la grammaire de l'eau, de l'air ou de la lumière… » (CharlElie Couture, « Les Ours blancs », in Fort Rêveur) |
|
|
6 Jun 2018, 09:52
Message
#9
|
|
Nouveau Membre Groupe : Membres Messages : 6 Inscrit : 30 May 2018 Membre no 205 028 |
Merci pour ta réponse.
Malheureusement, ça ne marche toujours pas. Regarde ce petit bout de code : CODE tell application "QuarkXPress" tell document 1 tell every text of current box set size to 8 set font to "Formata-Medium" end tell end tell end tell Le "set size to 8" fonctionne bien. Le "set font to "Formata-Medium" me retourne : CODE tell application "QuarkXPress" set size of every text of current box of document 1 to 8 set font of every text of current box of document 1 to "Formata-Medium" --> error number -1703 Résultat : error "Erreur dans QuarkXPress : Le type de certaines données est incorrect." number -1703 to item Je n'arrive vraiment pas à comprendre le problème |
|
|
6 Jun 2018, 13:05
Message
#10
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 164 Inscrit : 31 Oct 2003 Membre no 11 118 |
Et si au lieu de changer la police et la taille, tu changeais la feuille de style ?
-------------------- |
|
|
6 Jun 2018, 16:57
Message
#11
|
|
Nouveau Membre Groupe : Membres Messages : 6 Inscrit : 30 May 2018 Membre no 205 028 |
Et si au lieu de changer la police et la taille, tu changeais la feuille de style ? J'ai aussi essayé, mais j'ai aussi un message d'erreur à chaque fois Je t'aurais bien donné le code que j'ai essayé pour changer le style, mais c'est sur l'ordi du boulot, je te l'écris demain |
|
|
8 Jun 2018, 08:40
Message
#12
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 757 Inscrit : 9 Aug 2006 Lieu : Ici, pourquoi ? Membre no 65 624 |
Malheureusement, ça ne marche toujours pas. Regarde ce petit bout de code : CODE tell application "QuarkXPress" tell document 1 tell every text of current box set size to 8 set font to "Formata-Medium" end tell end tell end tell C'est parce que tu ne t'adresses pas correctement à l'objet texte (non-respect de la hiérarchie des éléments). Le texte ne fait pas partie des "box", mais des stories. Donc, essaie plutôt ceci : CODE tell application "QuarkXPress" tell document 1 tell every text of story 1 of current box set size to 8 set font to "Formata-Medium" end tell end tell end tell EDIT : Pour t'aider à mieux comprendre, je te donne des saisies d'écran de Script Debugger (vues du Dictionnaire de l'application > text). J'espère que cela t'aidera à mieux comprendre et visualiser la question de la hiérarchie des éléments (Where used). Sinon, dis-moi. Ce message a été modifié par CMJS - 8 Jun 2018, 09:20.
Fichier(s) joint(s)
Capture_d_____cran_2018_06_08____10.16.21.png ( 88.89 Ko )
Nombre de téléchargements : 2
Capture_d_____cran_2018_06_08____10.16.04.png ( 207.99 Ko ) Nombre de téléchargements : 1 Capture_d_____cran_2018_06_08____10.15.27.png ( 20.84 Ko ) Nombre de téléchargements : 3 -------------------- Jean-Marie Schwartz
[MacPro Quad-Core Intel Xeon 2,8 GHz • OS 10.10.5 • QuarkXPress 9.5.4.1 et 2017 • Adobe CS5 et CS6 • Linotype FontExplorerX Pro] « A l'école, c'est logique, l'écologie il faudrait l'enseigner : réapprendre la grammaire de l'eau, de l'air ou de la lumière… » (CharlElie Couture, « Les Ours blancs », in Fort Rêveur) |
|
|
Nous sommes le : 20th September 2024 - 22:11 |