Résolu Convertir plusieurs .pages en .pdf

Bonjour,
@ o_gust_1

Pas de problème.
Mais les fichiers word obtenus risque d'avoir quelques éléments non pris en compte, suivant la complexité du fichier pages.
Donc bien vérifier avant d'effacer les originaux.
Je te met le script modifié.
Au lancement, le script te demande de choisir le dossier contenant les fichiers "pages" puis de choisir un dossier pour la réception des fichiers "Word".

Dis moi si çà fonctionne chez toi.

Bloc de code:
tell application "Finder"
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à exporter en Word docx"
    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 & ".docx" 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 Microsoft Word --exporte en docx
                     
                        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
Bonjour Zeltron54 !
Je désespère de pouvoir transformer 2000 fichiers .doc et .docx en .pdf . Quand j'ai trouvé ton script je me suis dit "youpi c'est gagné!" mais en fait il y a visiblement une erreur. Pour Info je suis sur mac et mes fichiers sont en extension word mais sont censés s'ouvrir avec pages . Et je pense que c'est ça le souci qui fait bugger le script ?
Voilà le message d'erreur qui apparait :
error "Erreur dans Pages : Il est impossible d’obtenir document \"A ma place.doc\"." number -1728 from document "A ma place.doc"
En fait il ouvre bien le premier fichier de mon dossier avec Pages pourtant, mais après il bloque pour la suite....
Si jamais tu as une idée tu sauverais ma journée ;-)
Et Joyeux Noël !
Lucie
 
Bonjour,

Peux-tu préciser exactement ce que tu veux faire ?
Tes fichiers sont des .doc et .docx ou des fichiers .pages ?
Possèdes-tu les logiciels word et ou pages ?
Tes fichiers .doc et docx s'ouvrent par défaut avec word ou avec pages ?

avec ces éléments je pottai essayer de voir le problème... ;)
 
Bonsoir,
En regardant la citation dans ton post, il me semble que ru n’utilises pas le bon script, celui là sert à transformer des fichiers .pages en fichiers .word.

Dis ce que tu veux faire exactement ! Et donnes les infos demandées, je pourrais te faire le script pour tes besoins !
 
Bonjour "aymerico9"
Un petit script devrait faire ça !
- Ouvrir "éditeur de script"
-Copier - Coller le script ci dessous
-mettre tous les document pages à transformer dans un dossier
-Créer un dossier vide pour récupérer les documents en PDF
- lancer le script
-Au lancement le script te demande de localiser le dossier contenant les doc pages, puis localiser le dossier cible pour réception des pdf . Il suffit de patienter jusqu' a ce qu'il te prévienne qu'il a terminé.
C'est tout !

Bloc de code:
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
Merci beaucoup Zeltron54 ça fonctionne :)

Je pousse le bouchon un petit peu plus loin :
Maintenant que j'ai les PDF j'aimerais les convertir en JPEG (l'idée de départ était de convertir XXX .pages en XXX .jpeg).
J'ai repris ton script et j'ai modifié (sans rien y connaitre) ce qui me semblait pertinent : ça ne fonctionne pas.

Je suppose que l'application à appeler (pour PDF->JPEG) n'est pas "Pages" mais "Preview" (Aperçu). Mais lorsque je modifie ça il me dit que cette ligne (à ma sauce:siffle:) pose problème :
"export document nom to file sortie as JPG" (l'éditeur de script râle sur le mot que j'ai souligné)

Je veux bien un mini coup de main
 
@zags
Bonjour,

Les pdf que tu as obtenu peuvent avoir plusieurs pages, donc il faut rendre chaque page du pdf en un fichiers jpg.
Pour çà le plus simple est de le faire avec automator.
les actions: (voir ci-dessous)
  • Demander les éléments du finder --> Type dossier
  • Obtenir le contenu de dossier
  • Rendre comme images les pages de documents PDF (laisser les valeurs par défaut)
  • Nouveau dossier (mettre un nom exemple "sortie" et son emplacemnt exemple "bureau")
  • Renommer les éléments du finder --> rendre séquentiel

Un clic sur le triangle exécuter en haut à droite, lance le script qui te demande de sélectionner le dossier contenant les pdf à transformer en JPG.
Un dossier nommé sortie-01 est créer sur ton bureau avec chaque page des pdf en JPG.

Il te restera peut à être à renommer tes fichiers à ta convenance ...

J'attends ton retour !

Capture d’écran 2023-03-25 à 14.41.27.png
 
@zags
Bonjour,

Les pdf que tu as obtenu peuvent avoir plusieurs pages, donc il faut rendre chaque page du pdf en un fichiers jpg.
Pour çà le plus simple est de le faire avec automator.
les actions: (voir ci-dessous)
  • Demander les éléments du finder --> Type dossier
  • Obtenir le contenu de dossier
  • Rendre comme images les pages de documents PDF (laisser les valeurs par défaut)
  • Nouveau dossier (mettre un nom exemple "sortie" et son emplacemnt exemple "bureau")
  • Renommer les éléments du finder --> rendre séquentiel

Un clic sur le triangle exécuter en haut à droite, lance le script qui te demande de sélectionner le dossier contenant les pdf à transformer en JPG.
Un dossier nommé sortie-01 est créer sur ton bureau avec chaque page des pdf en JPG.

Il te restera peut à être à renommer tes fichiers à ta convenance ...

J'attends ton retour !

Voir la pièce jointe 277855
Parfait !
Merci beaucoup :)

(j'avoue, ça n'a pas marché du premier coup, mais le problème venait de moi. Je me suis appliqué et ça a fonctionné. Super :) )
 
Content pour toi !
 
Pour convertir mes PDF en JPEG, j'utilise l'excellent Graphic Converter qui me fait ça en lot et pour chaque page. Ce n'est pas un script, mais ça peut servir à une personne qui possède déjà ce logiciel et qui ne voudrait pas se lancer dans l'automatisation de cette tâche via le Finder.

Et surtout, merci zeltron54 pour le script transformant les fichiers Pages en PDF, cela m’est fort utile.
 
Dernière édition:
Voilà pour la version pages vers pdf.


Bloc de code:
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
                    set extension hidden of alias lefichier to true -- masque l extension du fichier source
                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
Et coo=mment se sert-on de ces script ? Avec Apple Script ? Merci !
 
Bonjour,

@tayaoutn

Et coo=mment se sert-on de ces script ? Avec Apple Script ? Merci !


Pour utiliser le script:
Ouvrir Editeur de script qui se trouve dans Application—>Utilitaires
Clic sur le bouton “Nouveau document” en bas à gauche
Dans la fenêtre qui s’ouvre faire un copier coller du script.
Cliquer sur exécuter en haut à gauche
Le script te demande de sélectionner le dossier contenant les fichiers "pages" à exporter en "PDF"
Puis il te demande de sélectionner un dossier dans lequel seront exporter les fichiers au format "PDF"

Tous les fichiers "Pages" du dossier et de tous les sous-dossiers seront exporter au format "PDF"
Lorsque le travail est terminé il te met un message à l'écran.