Automator : Page -> PDF

Gwen

iModo
Modérateur
Club iGen
Bonjour.

Je cherche à faire un script qui selon moi est assez simple, mais je ne sais pas trop me servir d'automator.

Avez vous une idée comment automatiser cela lorsque je glisse un fichier Page ou un lot de fichiers, cela me les exporte automatiquement en PDF vers un dossier distinct ?

Merci de votre aide.
 
Bonjour,

Je pense qu'Automator seul ne permet pas de faire ce que tu cherches.
Il faut passer par exemple par un Applescript (tu peux chercher sur internet, tu trouveras des bases, sinon je suis sûr que quelqu'un pourra t'aider).
(nota : l'applescript peut éventuellement être intégré dans un flux Automator ou utilisé seul)

Alternative ? j'ai trouvé ce lien qui permet de définir un raccourci que tu peux utiliser après avoir sélectionné un ou plusieurs documents.

Cordialement,
Nicolas
 
  • J’aime
Réactions: Gwen
[Selon le modèle de ton imprimante, tu peux placer une icone de son gestionnaire dans le Dock et larguer les fichiers dessus…

C'est ce que je fais avec une HP Laserjet 4000 du siècle dernier.]

Edit : Désolé, me trompant sur l'objet de ta demande, je disais des bêtises…

Cela dit, tu pourrais t'en inspirer.
 
  • J’aime
Réactions: Gwen
Déjà, je viens de comprendre la différence entre Automator et AppleScript.

J'ai trouvé la fonction Export vers PDF dans Apple script mais ne sais pas encore comment définir les fichiers, car cela relève de la gymnastique intellectuelle lie a la programmation que je n'ai pas (encore).

Je vais donc explorer cette piste.

Mais je vais aussi explorer la piste de l'imprimante, car c'est une excellente idée.

ÉDIT : J'ai trouvé une page avec un script tout prêt et bien trop complet pour moi. Mon souci est maintenant de créer un raccourci qui me permette de glisser des fichiers pages dessus et un dossier de destination.

ÉDIT BIS : J'ai testé l'imprimante et ça ne fonctionne pas, il faut que je reste en face de la machine pour appuyer sur les boutons, et j'ai 1700 fichiers convertir, donc ce n'est pas jouable malheureusement.
 
Dernière édition:
tu peux essayer ce petit applescript ci-dessous.

tu le copies dans l'éditeur de script

Tu l' exécutes :
-- il te demande de choisir le dossier dans lequel sont tes documents "pages"
-- il te demande de choisir le dossier dans lequel il enregistrera ces documents au format PDF
-- il parcourt le dossier d'origine et ses sous dossiers et exporte tous les documents qu'ils trouve du format pages au format pdf.
j'espère que cela pourra t'aider...

tell application "Finder"
set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à exporter en PDF"
set chemincible to choose folder with prompt "Sélectionnez le dossier cible"

my inspecter(cheminsource, chemincible)
end tell

on inspecter(source, cible)
tell application "Finder"
-- traitement des fichiers :

set les_fichiers to files of source
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
tell application "Finder"
set lefichier to chaque_fichier as string
set nom to name of chaque_fichier -- recupere le nom du fichier
set extens to document file nom in source --recupere l extension du fichier
set lextension to name extension of extens

if lextension = "pages" then

set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur

set sortie to cible & ancien_nom & ".pdf" as string -- défini le chemin de sortie

tell application "Pages"
open file lefichier -- ouvre le fichier dans pages


export document nom to file sortie as PDF --exporte en PDF

close document nom --ferme le fichier
end tell
end if

end tell
end repeat
-- traitement des dossiers :
set les_dossiers to folders of source
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
  • J’aime
Réactions: Gwen
Déjà, merci beaucoup pour ce script.

ça marche pour le premier fichier puis dès le second ça affiche :

error "Erreur dans Pages : Il est impossible d’obtenir document \"F07052641.pages\"." number -1728 from document "F07052641.pages"


Et ce quels que soient le dossier ou les fichiers. J'ai tenté de supprimer le fichier "F07052641.pages" et ça a bloqué sur le suivant de la liste.

Une idée ?
 
Dernière édition:
Non pas d'idée , vu d'ici!
j' essai chez moi un dossier qui à 10 fichiers pages et 3 fichiers jpg, les fichiers pages sont bien exportés sans problèmes.

Je viens de comprendre ! cela arrive si le fichiers original n'a pas l'extension "pages" ou si l'extension est masquée.
 
  • J’aime
Réactions: Gwen
Exactement, je venais d'arriver à la même conclusion. Cette fois-ci, ça a marché en forçant l'affichage de l'extension.

Merci beaucoup. Ça m'a pris du temps, mais beaucoup moins que si j'avais du faire les fichiers un par un a la main.
 
Je venais de rajouter le forçage de l'affichage de l'extension.

Je joins quand même le code cela pourra servir à quelqu'un !

tell application "Finder"
set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à exporter en PDF"
set chemincible to choose folder with prompt "Sélectionnez le dossier cible"

my inspecter(cheminsource, chemincible)
end tell

on inspecter(source, cible)
tell application "Finder"
-- traitement des fichiers :

set les_fichiers to files of source
repeat with chaque_fichier in les_fichiers
-- traitement d'un fichier
tell application "Finder"
set lefichier to chaque_fichier
set nom to name of chaque_fichier -- recupere le nom du fichier
set extens to document file nom in source --recupere l extension du fichier
set lextension to name extension of extens

if lextension = "pages" then

set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
set elements to text items of nom
set nomcourt to (items 1 thru -2 of elements) as string
set ancien_nom to nomcourt
set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur

set sortie to cible & ancien_nom & ".pdf" as string --défini le chemin de sortie


set extension hidden of lefichier to false -- force affichage de l'extension
set lefichier to chaque_fichier as string

tell application "Pages"
open file lefichier -- ouvre le fichier dans pages


export document nom to file sortie as PDF --exporte en PDF

close document nom --ferme le fichier
end tell
end if

end tell
end repeat
-- traitement des dossiers :
set les_dossiers to folders of source
repeat with chaque_dossier in les_dossiers
-- traitement d'un dossier
my inspecter(chaque_dossier)
end repeat
end tell
end inspecter
tell application "Finder"
(display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
  • J’aime
Réactions: daffyb et Gwen