IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Applescript ou automator pour fichier word
Options
guichez
posté 16 Nov 2006, 17:43
Message #1


Nouveau Membre


Groupe : Membres
Messages : 10
Inscrit : 28 Jul 2005
Membre no 43 137



Bonjour à tous, je suis à la recherche d'une solution qui me permettrait de convertir un fichier word en pdf comme le permet aujourd'hui l'option d'impression "Enregistrer en PDF..."
Evidemment, je souhaiterais que cette fonctionnalité se fasse automatiquement via un applescript.
Un exemple d'apple ("Convert To PDF.scpt") permet de convertir tout type de fichiers compatible "Jpg, Tiff, Rtf" en pdf, le script fonctionne très bien mais dès que j'essaye de l'appliquer à un document word, ça ne marche pas. J'ai donc essayé de modifier le script lui-même et j'ai vu qu'il y avait une liste de documents possibles :

property type_list : {"JPEG", "GIFf", "PICT", "TIFF", "PDF", "TEXT"}
property extension_list : {"jpg", "gif", "pct", "tif", "pdf", "rtf"}


Donc, je me suis dit, je vais rajouter le type "WBDN" ou "DOC", ou "W8BN" correspondant au fichier word et j'ai lancé le script mais toujours rien (avec les 3 types que j'ai mis).
Donc je me retrouve bloquer et je n'arrive pas à convertir un fichier word en pdf via applescript !!
Il doit bien exister quelque chose pour faire ça vu que manuellement, on peut le faire via Word !!

Ca m'étonne beaucoup et je suis bloqué donc si quelqu'un peut m'aider, ça serait bien sympa

merci d'avance
@+
Olivier
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 17 Nov 2006, 02:35
Message #2





Guests






Bonsoir smile.gif

Ce n'est pas possible, le script converti que les fichiers dont le type est dans cette liste {"JPEG", "GIFf", "PICT", "TIFF", "PDF", "TEXT"}, le format de Word est propriétaire à Microsoft.

Mais tu peux le faire en GUI scripting. laugh.gif
Il faut cocher le bouton "activer l'accès pour les périphériques d'aide" dans les préférences système de "Accès Universel"
Le GUI scripting à des inconvénient, il faut que l'application soit au premier plan, et tu ne pourras pas utiliser le clavier et la souris durant l'exécution du script, sinon ça ne fonctionnera pas.

Voici un script qui fonctionne sur Mac OS X 10.4 avec Word d'Office 2004 ou sur Word d'Office X.
CODE

set destinationfolder to alias "Disque1:New Word PDF:"
set ce_fichier to alias "Disque1:Users:jack:Desktop:Hello world.doc"
tell application "Microsoft Word" to open ce_fichier -- ouvre un fichier

-- enleve l'extension originale et ajoute  l'extension ".pdf"
tell (info for ce_fichier) to if name extension is not "" then
    set thisName to text 1 thru -((length of name extension) + 2) of name & ".pdf"
else
    set thisName to name & ".pdf"
end if

-- vérifie si le nom existe sur le bureau et dans le dossier destinationfolder
--si oui, il ajoute un nombre au début du nom
set thisName to verifieNom(thisName, destinationfolder)

saveasPDF(thisName) -- enregistre sur le bureau

-- déplace le fichier PDF dans le dossier destination
tell application "Finder" to move file thisName to destinationfolder



on saveasPDF(nom) -- Gui scripting
    tell application "System Events" to tell application process "Microsoft Word"
        set frontmost to true
        keystroke "p" using command down
        repeat until (exists window "Print")
            delay 0.3
        end repeat
        repeat 18 times
            keystroke tab
        end repeat
        keystroke space
        delay 0.3
        keystroke (ASCII character 31)
        keystroke return
        repeat until (exists window "Save")
            delay 0.3
        end repeat
        keystroke nom
        keystroke tab
        keystroke "d" using command down
        repeat until not (exists window "Save")
            keystroke (ASCII character 13)
            delay 0.3
        end repeat
    end tell
end saveasPDF

on verifieNom(this_name, This_folder)
    set these_Names to list folder (path to desktop) -- liste des noms des éléments sur le bureau
    set {List_Names, N, x} to {list folder This_folder, this_name, 0}
    repeat while N is in these_Names or N is in List_Names --repete jusqu'a le nom (n)  ne soit pas dans les deux liste de noms
        set x to x + 1
        set N to "" & x & "- " & this_name
    end repeat
    return N
end verifieNom


PS : J'ai la version en Anglais d'Office : remplacer dans le script les mots "Print" and "Save" par le nom de la fenêtre de votre version, probablement "Imprimer" et "Enregistrer" wink.gif
Go to the top of the page
 
+Quote Post
guichez
posté 17 Nov 2006, 12:33
Message #3


Nouveau Membre


Groupe : Membres
Messages : 10
Inscrit : 28 Jul 2005
Membre no 43 137



Salut, et merci pour ton aide
Je n'arriver pas à faire fonctionner ton script, j'ai un message d'erreur.
Donc j'ai simplifier énormément les traitements pour voir si ça marchait quand même !! Pour être sûr que ça fonctionne, j'ai fait la même chose avec un fichier text sous TextEdit : Voici mon code :


tell application "Finder" to set Word_File to file "Documents:note.txt" of home
tell application "Finder" to set destinationfolder to folder "Documents:" of home
tell Word_File to if name extension is not "" then
set Pdf_File to name & ".pdf"
else
set Pdf_File to name & ".pdf"
end if
tell application "TextEdit" to open Word_File
tell application "System Events" to tell process "TextEdit"
set frontmost to true
keystroke "p" using command down
end tell

J'ai eu plantage continuel sur "using command down" !! L'erreur qui apparaît est une syntax error : "fin de ligne, etc. prévu mais identificateur trouvé."

Pourtant, l'option d'accès universel est bien coché !! J'y comprend rien, pourquoi ça ne marche pas ce truc là? Si je l'enlève, ça me tape un "P" sur TextEdit (ainsi que sous Word) mais ça ne m'effectue pas ce que je veux !!


Je me suis dit, doit bien y avoir une commande print donc au lieu de faire "Open Word_File", J'ai fait "Print Word_File" mais derrière impossible de commander la fenetre d'impression pour la faire aller sur l'enregistrement en PDF" !!

Je nage un peu là !!
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 17 Nov 2006, 20:56
Message #4





Guests






Quel est la version de ton Mac OS ?
Go to the top of the page
 
+Quote Post
guichez
posté 20 Nov 2006, 09:47
Message #5


Nouveau Membre


Groupe : Membres
Messages : 10
Inscrit : 28 Jul 2005
Membre no 43 137



Je suis en 10.4.7 mais je n'ai pas fait la mise à jour en 10.4.8 car visiblement, y'avait des bugs dessus donc c'est surement pour ça que ça merde car j'ai vu sur le forum qu'il y avait des soucis avec l'applescript du Mac os 10.4.7

En tout cas, j'ai réussi après acharnement à trouver une solution qui fonctionne sur mon mac !! La solution n'est pas encore optimisé mais ma partie de test fonctionne impeccablement. Après, il y a surement des réglages à faire au niveau de la simulation des tab ou des return mais sinon, ça fonctionne. Pour ceux que ça intéresse voici une partie qui fonctionne sans optimisation :
Go to the top of the page
 
+Quote Post
JPM01
posté 29 Aug 2008, 06:07
Message #6


Adepte de Macbidouille
*

Groupe : Membres
Messages : 198
Inscrit : 10 Jul 2007
Membre no 90 329



Bonjour
Je reprends ce post vieux de 2 ans: en 10.5, y a-t-il une amélioration qui permette cette manip, càd obtenir un pdf à partir d'un doc. texte quelconque, sans passer par l'impression ?
Merci.
Go to the top of the page
 
+Quote Post
JPM01
posté 29 Aug 2008, 12:46
Message #7


Adepte de Macbidouille
*

Groupe : Membres
Messages : 198
Inscrit : 10 Jul 2007
Membre no 90 329



Je crois que je vais oser :-)
Qq1 saurait-il faire un script shell, à intégrer ensuite dans automator, permettant de convertir un doc texte quelconque, en pdf, par l'intermédiaire de l'impression ? (enregistrer au format pdf, du dialogue d'impression).
J'ai bien essayé via automator en enregistrant mes actions, mais le résultat est inconstant, et en plus, automator garde la main pendant toute la séquence ce qui fait perdre le temps gagné.
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 29 Aug 2008, 16:02
Message #8





Guests






Bonjour,
CITATION(JPM01 @ 29 Aug 2008, 06:07) [snapback]2776466[/snapback]

Bonjour
Je reprends ce post vieux de 2 ans: en 10.5, y a-t-il une amélioration qui permette cette manip, càd obtenir un pdf à partir d'un doc. texte quelconque, sans passer par l'impression ?
Merci.


Oui, c'est possible en AppleScript avec la commande save dans Word de "Microsoft Office 2008 "
Go to the top of the page
 
+Quote Post
JPM01
posté 30 Aug 2008, 09:56
Message #9


Adepte de Macbidouille
*

Groupe : Membres
Messages : 198
Inscrit : 10 Jul 2007
Membre no 90 329



Grâce à JackJr300, le processus automator de conversion d'un fichier texte en pdf fonctionne.
Pour en revenir au sujet du post, il se trouve que si on change l'extension .doc en .txt, le processus fonctionne et convertit en pdf. Or, le génial automator contient un process qui permet de renommer un fichier; il suffit donc de lui demander de rajouter l'extension txt au-dit fichier.
Je récapitule:
- par automator on sélectionne le dossier A contenant des fichiers en .doc, automator rajoute .txt et le process de conversion en pdf est lancé. Jusque là tout fonctionne.
Le problème: le dossier A qui reçoit les fichiers en .doc se retrouve avec un fichier en .txt ET un fichierr en .pdf.
L'idéal serait que le dossier A contienne seulement le document final en pdf.
Je n'arrive pas à extraire le fichier txt pour l'eenvoyer à la poubelle.
Le but ultime de l'opération est d'automatiser la conversion en pdf et l'envoi dans un autre dossier de tout document .doc déposé dans ce dossier (en affectant par exemple, le processus automator aux actions de dossier du dossier A).
J'espère que c'est asez clair :-)
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 30 Aug 2008, 16:32
Message #10





Guests






Bonjour, smile.gif

CITATION(JPM01 @ 30 Aug 2008, 09:56) [snapback]2777717[/snapback]

Le problème: le dossier A qui reçoit les fichiers en .doc se retrouve avec un fichier en .txt ET un fichierr en .pdf.
L'idéal serait que le dossier A contienne seulement le document final en pdf.
Je n'arrive pas à extraire le fichier txt pour l'eenvoyer à la poubelle.
Le but ultime de l'opération est d'automatiser la conversion en pdf et l'envoi dans un autre dossier de tout document .doc déposé dans ce dossier (en affectant par exemple, le processus automator aux actions de dossier du dossier A).
J'espère que c'est asez clair :-)
Si tu veux faire une action de dossier, il faut modifier le script, parce que tu aurais eu une boucle infinie avec le premier fichier PDF créé.
Tu aurais eu une boucle infinie aussi avec l'action "Renommer les éléments du Finder".
Parce que si on renomme un fichier dans une action de dossier, l'action de dossier le considère comme un nouveau fichier.

Donc, il faut enlever le type PDF et l'extension pdf des listes (property type_list et extension_list) et supprimer l'action "Renommer les éléments du Finder" dans Automator.

J'ai enlevé le traitement des dossiers dans le script, inutile pour ton cas parce que tu ne déposes que des fichiers ".doc" dans le dossier.
Donc, le script renommes fichiers ".doc" avec ".txt" , cela va éviter à l'action de dossier de traiter le même fichier, puisqu’il va être renommé dans la corbeille.

Voici le script modifié.
CODE

property type_list : {"JPEG", "GIFf", "PICT", "TIFF", "TEXT"}
property extension_list : {"jpg", "gif", "pct", "tif", "rtf", "txt", "doc"}

on run {input, parameters}
    repeat with this_item in input
        if class of this_item is not alias then set this_item to (this_item as string) as alias
        set {is_folder, is_alias, t_type, t_ext} to {folder, alias, file type, name extension} of (info for this_item without size)
        if not is_folder then if t_ext is in extension_list or not is_alias and t_type is in type_list then
            my processFile(this_item, t_ext)
        end if
    end repeat
    return input
end run


on processFile(F, t_ext)
    set new_F to POSIX path of F
    tell application "Finder" to delete F -- déplace le fichier dans la corbeille
    set t_file to POSIX path of F -- récupere le chemin du fichier placé dans la corbeille
    
    if t_ext is not missing value then
        set new_F to (text 1 thru -((length of t_ext) + 1) of new_F) & "pdf" -- remplace l'extension par pdf,  au lieu d'avoir  ex : ".doc.pdf"
        if t_ext is "doc" then -- document Word
            do shell script "/bin/mv -f " & quoted form of t_file & space & quoted form of (t_file & ".txt") -- renomme avec l'extension .txt
            set t_file to t_file & ".txt"
        end if
    else
        set new_F to new_F & ".pdf" -- ajoute ".pdf", ce fichier n'avait pas d'extension
    end if
    try
        do shell script "/System/Library/Printers/Libraries/./convert " & "-f " & "\"" & t_file & "\"" & " -o " & "\"" & new_F & "\"" & " -j \"application/pdf\" -D"
    end try
end processFile



L'option "-D" de /System/Library/Printers/Libraries/./convert supprime le fichier traité du disque, si tu ne veut pas l'effacer mais le laisser dans la corbeille ,il suffit d'enlever l'option dans la ligne de commande.
Comme ceci. wink.gif
CODE
do shell script "/System/Library/Printers/Libraries/./convert " & "-f " & "\"" & t_file & "\"" & " -o " & "\"" & new_F & "\"" & " -j \"application/pdf\""


Ce message a été modifié par JackJr300 - 30 Aug 2008, 22:26.
Go to the top of the page
 
+Quote Post
JPM01
posté 31 Aug 2008, 07:16
Message #11


Adepte de Macbidouille
*

Groupe : Membres
Messages : 198
Inscrit : 10 Jul 2007
Membre no 90 329



Bonjour
Le script refuse d'être compilé au prétexte que: "erreur syntaxe expression prévue mais "#" trouvé " dans [color=#00066].
Par ailleurs, si le fait de vouloir en faire une action de dossiers complique beaucoup le problème, on peut en rester à une application automator à lancer en cas de besoin, ce sera déjà très bien.
Merci pour tout.
Go to the top of the page
 
+Quote Post
Guest_JackJr300_*
posté 31 Aug 2008, 14:15
Message #12





Guests






Bonjour,
CITATION(JPM01 @ 31 Aug 2008, 07:16) [snapback]2778454[/snapback]

Bonjour
Le script refuse d'être compilé au prétexte que: "erreur syntaxe expression prévue mais "#" trouvé " .
J'avais probablement cliqué sur le (bbcode couleur) par erreur.
Mais, je l'avais corrigé hier soir.

CITATION(JPM01 @ 31 Aug 2008, 07:16) [snapback]2778454[/snapback]

Par ailleurs, si le fait de vouloir en faire une action de dossiers complique beaucoup le problème, on peut en rester à une application automator à lancer en cas de besoin, ce sera déjà très bien.
Le script du message 10 va fonctionner sans problème, que ce soit dans une action de dossier ou autres.


Ce qu'il ne faut pas faire avec une action de dossier, c'est d'avoir une action Automator qui renomme les fichiers dans le même dossier,
ou une action Automator ou un script qui créeront des nouveaux fichiers dans le même dossier qui vont être traités une nouvelle fois.

Par exemple : le script créé un fichier PDF, l'action de dossier remet en paramètre le PDF qui vient d'être créé.
Mais, en enlevant le type "PDF " et l'extension "pdf" dans les listes des fichiers acceptés dans le script, il ne traitera pas les fichiers PDF créés par ce script.
Go to the top of the page
 
+Quote Post
JPM01
posté 1 Sep 2008, 06:19
Message #13


Adepte de Macbidouille
*

Groupe : Membres
Messages : 198
Inscrit : 10 Jul 2007
Membre no 90 329



Tout fonctionne parfaitement, chapeau !!
J'ai affecté ce script à une action de dossier et tout roule.
Merci mille fois, voilà des Km-souris encore réduits !
Go to the top of the page
 
+Quote Post
Meabilis
posté 19 Feb 2009, 17:44
Message #14


Nouveau Membre


Groupe : Membres
Messages : 4
Inscrit : 1 Oct 2007
Membre no 96 031



Bonjour,

j'essaye de me servir de ce script pour fabriquer facilement un pdf à partir d'un document word, mais je n'y arrive pas. Voilà ce que j'ai fait :

1- j'ouvre l'utilitaire de script
2- je copie et colle dans la fenêtre le contenu du script du message de JackJr300
3- j'enregistre le script quelque part sur mon disque dur
4- j'affecte à un dossier ce script en ayant préalablement activé les actions de dossiers
5- je balance un fichier word dans mon dossier
6- aucune action ne se produit

J'ai sinon essayé de passer par automator.

J'ai créé un module pour sélectionner un fichier et un module de script (voi PJ)

Dans ce cas, un fichier pdf est bien créé, mais il fait zéro ko et quand je veux l'ouvrir on me dit qu'il est corrompu...

Quelqu'un peut il me dire ce qui cloche parcequ'àprès deux jours à me prendre la tête sur le sujet, je ne sais plus quoi faire...

merci
Fichier(s) joint(s)
Fichier joint  Image_2.jpg ( 137.58 Ko ) Nombre de téléchargements : 18
 
Go to the top of the page
 
+Quote Post
Meabilis
posté 23 Feb 2009, 13:34
Message #15


Nouveau Membre


Groupe : Membres
Messages : 4
Inscrit : 1 Oct 2007
Membre no 96 031



UP??

j'aimerai vraiment arriver à fabriquer facilement des pdf sans passer par le menu impression sad.gif

quelqu'un sait-il comment faire?

A plus

Go to the top of the page
 
+Quote Post
sucellus
posté 23 Feb 2009, 15:47
Message #16


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 098
Inscrit : 4 Oct 2005
Membre no 47 253



Citation (Meabilis @ 23 Feb 2009, 13:34) *
UP??

j'aimerai vraiment arriver à fabriquer facilement des pdf sans passer par le menu impression sad.gif

quelqu'un sait-il comment faire?

A plus

Bonjour

En AppleScript, le code non compilé doit être placé dans un seul endroit pour être reconnu.

Racine du DD de démarrage/Library/Scripts/Folder Action Scripts.

Sinon l'action de dossier ne peut marcher normalement.

Je présume que tu as bien fait comme ça, donc il faut s'assurer que le code est bien appelé.

@+

Ce message a été modifié par sucellus - 23 Feb 2009, 15:48.


--------------------
Impossible de vous dire mon âge, il change tout le temps.

iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4
Go to the top of the page
 
+Quote Post
Meabilis
posté 23 Feb 2009, 17:17
Message #17


Nouveau Membre


Groupe : Membres
Messages : 4
Inscrit : 1 Oct 2007
Membre no 96 031



Merci sucellus,

j'ai vérifié, mon script est bien au bon endroit. Par contre je l'avais peut-être compilé, donc j'ai recopié et enregistré le contenu sans compilation.
A priori rien ne se passe, pourtant on voit bien un rafraîchissement du dossier.

Texto, le script que j'utilise est le suivant :

property type_list : {"JPEG", "GIFf", "PICT", "TIFF", "TEXT"}
property extension_list : {"jpg", "gif", "pct", "tif", "rtf", "txt", "doc"}

on run {input, parameters}
repeat with this_item in input
if class of this_item is not alias then set this_item to (this_item as string) as alias
set {is_folder, is_alias, t_type, t_ext} to {folder, alias, file type, name extension} of (info for this_item without size)
if not is_folder then if t_ext is in extension_list or not is_alias and t_type is in type_list then
my processFile(this_item, t_ext)
end if
end repeat
return input
end run


on processFile(F, t_ext)
set new_F to POSIX path of F
tell application "Finder" to delete F -- déplace le fichier dans la corbeille
set t_file to POSIX path of F -- récupere le chemin du fichier placé dans la corbeille

if t_ext is not missing value then
set new_F to (text 1 thru -((length of t_ext) + 1) of new_F) & "pdf" -- remplace l'extension par pdf, au lieu d'avoir ex : ".doc.pdf"
if t_ext is "doc" then -- document Word
do shell script "/bin/mv -f " & quoted form of t_file & space & quoted form of (t_file & ".txt") -- renomme avec l'extension .txt
set t_file to t_file & ".txt"
end if
else
set new_F to new_F & ".pdf" -- ajoute ".pdf", ce fichier n'avait pas d'extension
end if
try
do shell script "/System/Library/Printers/Libraries/./convert " & "-f " & "\"" & t_file & "\"" & " -o " & "\"" & new_F & "\"" & " -j \"application/pdf\" -D"
end try
end processFile


Quoi qu'il en soit, je crains que l'utilitaire de conversion ne marche que pour la partie "texte" du fichier word. Alors que je dois aussi transformer des images et des tableaux.

Y a il une autre méthode?

Meabilis

Go to the top of the page
 
+Quote Post
sucellus
posté 23 Feb 2009, 17:30
Message #18


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 098
Inscrit : 4 Oct 2005
Membre no 47 253



Citation (Meabilis @ 23 Feb 2009, 17:17) *
Merci sucellus,

j'ai vérifié, mon script est bien au bon endroit. Par contre je l'avais peut-être compilé, donc j'ai recopié et enregistré le contenu sans compilation.
A priori rien ne se passe, pourtant on voit bien un rafraîchissement du dossier.

Meabilis


on run {input, parameters} c'est pour Automator (j'utilise pas).

Pour AppleScript c'est plutôt:
on adding folder items to ce_dossier after receiving ce_fichier en action de dossier.

Sur un fichier texte (.txt) ça marche bien.

Word j'utilise pas, alors je ne peut répondre.

Je vais voir si je trouve quelque chose.

@+


--------------------
Impossible de vous dire mon âge, il change tout le temps.

iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4
Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 24 Feb 2009, 05:33
Message #19





Guests






Bonjour,

Citation (Meabilis @ 23 Feb 2009, 11:17) *
Quoi qu'il en soit, je crains que l'utilitaire de conversion ne marche que pour la partie "texte" du fichier word. Alors que je dois aussi transformer des images et des tableaux.

C'est tout à fait ça,


Citation (Meabilis @ 23 Feb 2009, 11:17) *
Y a il une autre méthode?

Oui, voici deux solutions

1- Si tu as "Microsoft Office 2008", c'est possible de le faire avec Word.
Voici un script minimaliste :
Code
on adding folder items to ce_dossier after receiving ces_fichiers
    repeat with un_fichier in ces_fichiers
        set F to un_fichier as string
        if F ends with ".doc" then --traite seulement les fichiers avec l'extension " .doc"
            set fichier_PDF to (text 1 thru -4 of F) & "pdf" -- chemin du pdf
            tell application "Microsoft Word" -- fonctionne sous Word 2008
                launch
                open un_fichier
                save as active document file name fichier_PDF file format format PDF
                close window 1 saving no
            end tell
        end if
    end repeat
end adding folder items to


2- Si tu as iWork 09, c'est possible de le faire avec Pages.
C'est le même script, sauf pour la partie application :
Code
            tell application "Pages"
                launch
                open un_fichier
                save document 1 as "SLDocumentTypePDF" in fichier_PDF
                close window 1 saving no
            end tell


Ce message a été modifié par EricaL** - 24 Feb 2009, 06:06.
Go to the top of the page
 
+Quote Post
Meabilis
posté 24 Feb 2009, 15:49
Message #20


Nouveau Membre


Groupe : Membres
Messages : 4
Inscrit : 1 Oct 2007
Membre no 96 031



Merci pour ton aide EricaL,

malheureusement j'ai office 2004. J'étais au courant qu'avec 2008 c'est possible, il y a même un workflow pour automator.

si de toute façon, je ne peux pas utiliser convert pour les images (qui est en fait cupsfilter) je ne vais pas m'acharner sur cette piste.

J'ai trouvé une demi solution qui consiste à mettre un dossier que j'appelle "pdf" dans le dossier pdf service de ma bibliothèque, ça me fait gagné qq secondes par rapport à l'action de base qui demande de se balader dans l'arborescence et de nommer le fichier. Ensuite je met comme action de dossier mon worflow automator que j'ai créé pour réduire la taille de mon pdf (de 1,5mo je passe à 400ko sans perte perceptible).

Maintenant pour améliorer ça, je vais chercher si je ne peux pas nommer mon fichier pdf du même nom que mon fichier word et voir si de mon dossier pdf je peux le copier dans le dossier ou j'ai mon original en word. mais ça c'est du bonus.

je trouve quand même bizarre qu'il soit si facile de faire du pdf nativement dans os x et qu'il n'existe pas de brique automator autre que celle de word 2008 et consoeur...

jb


Go to the top of the page
 
+Quote Post
jeannot31
posté 1 May 2009, 18:14
Message #21


Nouveau Membre


Groupe : Membres
Messages : 8
Inscrit : 23 Oct 2001
Lieu : Montreuil
Membre no 1 107



Citation (EricaL** @ 24 Feb 2009, 04:33) *
2- Si tu as iWork 09, c'est possible de le faire avec Pages.
C'est le même script, sauf pour la partie application :
Code
            tell application "Pages"
                launch
                open un_fichier
                save document 1 as "SLDocumentTypePDF" in fichier_PDF
                close window 1 saving no
            end tell


désolé de te paraître si nul, mais peux-tu me dire qu'est ce que je dois mettre pour remplacer "in fichier_PDF"
Merci d'avance
JG
Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 2 May 2009, 00:43
Message #22





Guests






Citation (jeannot31 @ 1 May 2009, 13:14) *
désolé de te paraître si nul, mais peux-tu me dire qu'est ce que je dois mettre pour remplacer "in fichier_PDF"
Merci d'avance
JG


Ça dépend de ce que vous voulez faire.

Quel type de script ? ( action de dossier, droplet ou script )
Si c'est script, quels documents seront à traiter ? ( à partir d'une sélection dans le Finder, à partir d'une sélection dans un dialogue, ou à partir d'un document déjà ouvert dans "Pages" )

Où voulez-vous enregistrer le PDF ? ( dans le même dossier que le fichier ".doc" , dans un dossier pré déterminé ou un dossier sélectionné dans un dialogue à chaque fois que le script s'exécute.)

Voici un script qui enregistre les fichiers PDF dans le même dossier que le fichier ".doc", la sélection des fichiers ".doc", se font à partir d'un dialogue.
Code
set ces_fichiers to (choose file with multiple selections allowed without invisibles)

repeat with un_fichier in ces_fichiers
    set F to un_fichier as string
    if F ends with ".doc" then --traite seulement les fichiers avec l'extension " .doc"
        set fichier_PDF to (text 1 thru -4 of F) & "pdf" -- chemin du pdf
        tell application "Pages"
            launch
            open un_fichier
            save document 1 as "SLDocumentTypePDF" in fichier_PDF
            close window 1 saving no
        end tell
    end if
end repeat

Go to the top of the page
 
+Quote Post
fredallcorr
posté 25 Sep 2009, 15:03
Message #23


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 25 Sep 2009
Membre no 142 823



Bonjour, ce fil est passionnant mais d'un bon niveau technique, j'oserais tout de meme une question de béotien je cherche a automatiser la conversion de fichiers doc (word 2008 édition famille) en PDF et par lot (700 fichiers) j'ai essayé avec automator (sans succès) maintenant avec des scripts, mais je suis un grand débutant, j'ai utilisé le dernier script de Erical en remplaçant Pages par Word et en enlevant la conversion de DOC vers TXT mais j'ai le message suivant : error "La variable fichier_PDF n’est pas définie." number -2753 from "fichier_PDF" et un blocage du script,
quelqu'un peut il m'aider d'avance merci.
Fred.

Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 25 Sep 2009, 23:31
Message #24





Guests






Bonjour,

Citation (fredallcorr @ 25 Sep 2009, 10:03) *
j'ai utilisé le dernier script de Erical en remplaçant Pages par Word et en enlevant la conversion de DOC vers TXT mais j'ai le message suivant : error "La variable fichier_PDF n’est pas définie." number -2753 from "fichier_PDF"

Il n'y a pas de conversion de doc en texte, cette ligne modifie l'extension du nouveau fichier, ( .doc est remplacé par .pdf)
Et Word n'utilise pas la même commande (save) que Pages.

Voici le script :
Code
set ces_fichiers to (choose file with multiple selections allowed without invisibles)

repeat with un_fichier in ces_fichiers
    set F to un_fichier as string
    if F ends with ".doc" then --traite seulement les fichiers avec l'extension " .doc"
        set fichier_PDF to (text 1 thru -4 of F) & "pdf" -- chemin du pdf
        tell application "Microsoft Word" -- fonctionne sous Word 2008
            launch
            open un_fichier
            save as active document file name fichier_PDF file format format PDF
            close document 1 saving no
        end tell
    end if
end repeat
Go to the top of the page
 
+Quote Post
fredallcorr
posté 26 Sep 2009, 18:35
Message #25


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 25 Sep 2009
Membre no 142 823



Merci beaucoup Mr Erical, vous m'avez tiré une épine du pied, le script marche très bien et cette petite expérience m'incite à me lancer dans l'apprentissage de cette logique.
Merci encore et bon Week End.
Fred.
Go to the top of the page
 
+Quote Post
Westfalia
posté 28 May 2012, 15:50
Message #26


Nouveau Membre


Groupe : Membres
Messages : 1
Inscrit : 28 May 2012
Membre no 176 768



Bonjour à tou(te)s

Je déterre ce topic car j'ai utilisé ce script pour convertir plusieurs docx en pdf.
J'ai donc remplacé .doc en .docx
Ca fonctionne sauf que ça me génère des fichiers .dpdf
Comment modifier ce script afin de générer des fichiers pdf à partir de fichiers .docx

En vous remerciant

PS: voici le script que j'ai utilisé

set ces_fichiers to (choose file with multiple selections allowed without invisibles)

repeat with un_fichier in ces_fichiers
set F to un_fichier as string
if F ends with ".docx" then --traite seulement les fichiers avec l'extension " .doc"
set fichier_PDF to (text 1 thru -4 of F) & "pdf" -- chemin du pdf
tell application "Microsoft Word" -- fonctionne sous Word 2008
launch
open un_fichier
save as active document file name fichier_PDF file format format PDF
close document 1 saving no
end tell
end if
end repeat
Go to the top of the page
 
+Quote Post
sucellus
posté 29 May 2012, 10:40
Message #27


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 098
Inscrit : 4 Oct 2005
Membre no 47 253



Citation (Westfalia @ 28 May 2012, 16:50) *
Bonjour à tou(te)s

Je déterre ce topic car j'ai utilisé ce script pour convertir plusieurs docx en pdf.
J'ai donc remplacé .doc en .docx
Ca fonctionne sauf que ça me génère des fichiers .dpdf
Comment modifier ce script afin de générer des fichiers pdf à partir de fichiers .docx

En vous remerciant

PS: voici le script que j'ai utilisé

set ces_fichiers to (choose file with multiple selections allowed without invisibles)

repeat with un_fichier in ces_fichiers
set F to un_fichier as string
if F ends with ".docx" then --traite seulement les fichiers avec l'extension " .doc"
set fichier_PDF to (text 1 thru -4 of F) & "pdf" -- chemin du pdf
tell application "Microsoft Word" -- fonctionne sous Word 2008
launch
open un_fichier
save as active document file name fichier_PDF file format format PDF
close document 1 saving no
end tell
end if
end repeat

Bonjour

Tu remplace une extension de 3 caractères par une de 4 caractères.

Donc modifie cette ligne avec un 5 et ça devrais marcher.

Code
set fichier_PDF to (text 1 thru -4 of F) & "pdf"


@+

Ce message a été modifié par sucellus - 29 May 2012, 10:41.


--------------------
Impossible de vous dire mon âge, il change tout le temps.

iMac 27" Intel core i5 3,1 Gh Mémoire vive 16 Go Mountain Lion 10.8.4
Go to the top of the page
 
+Quote Post
p.durand
posté 21 Nov 2016, 13:56
Message #28


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 21 Nov 2016
Membre no 200 362



Bonjour, je remonte ce très vieux sujet, je cherche a transformer des word en pdf, j'utilise ce code

set ces_fichiers to (choose file with multiple selections allowed without invisibles)

repeat with un_fichier in ces_fichiers
set F to un_fichier as string
if F ends with ".doc" then --traite seulement les fichiers avec l'extension " .doc"
set fichier_PDF to (text 1 thru -4 of F) & "pdf" -- chemin du pdf
tell application "Microsoft Word" -- fonctionne sous Word 2011
launch
open un_fichier
save as active document file name fichier_PDF file format format PDF
close document 1 saving no
end tell
end if
end repeat

qui marchait sans soucis vendredi, ce matin quelques bugs, et maintenant il ne fonctionne plus du tout le message est le suivant

error "Erreur dans Microsoft Word : active document ne comprend pas le message « convert »." number -1708 from active document

Il semblerai que les documents ne sont pas convertis (ils sont en .doc) mais vendredi je n'avais pas de soucis, quelqu'un aurait une idée?
Go to the top of the page
 
+Quote Post
PBell
posté 22 Nov 2016, 07:31
Message #29


Macbidouilleur de bronze !
**

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



Bonjour,
Ce script fonctionne toujours. N'aurais tu pas fait une mise à jour de ton système, de Word,...?
Il y a forcément quelque chose de changé depuis vendredi.

De plus, le message d'erreur n'est pas logique : ton script, tel que tu le publies ne demande pas à "active document" un "convert", mais un "save".
Si tu es certain que rien dans ton système ou Word n'a changé, tu peux toujours essayer de recopier ce script:
- ouvre un nouveau doc ScriptEditor vierge
- copie/colle le text de ce script
- compile le nouveau script

Cordialement


--------------------
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
p.durand
posté 22 Nov 2016, 08:58
Message #30


Nouveau Membre


Groupe : Membres
Messages : 2
Inscrit : 21 Nov 2016
Membre no 200 362



J'ai déjà essayer de copier le script dans une nouvelle fenêtre rien a faire, pas de mise a jour a ce que je sache mais je suis au boulot il n'est pas exclut que quelqu'un ai fait une mise a jour quelconque, dans ce cas que dois je modifier pour que le script fonctionne chez moi? Merci
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 : 23rd April 2024 - 23:59