Résolu Convertir plusieurs .pages en .pdf

o_gust_1

Membre enregistré
10 Février 2021
4
0
35
zeltron54,

Un grand merci!
ça a l'air super pratique de savoir maitriser le script!
ça semble marcher, j'ai fait une copie des dossiers pour garder les originaux.
un message d'erreur apparait
mais il semble être en lien avec l'inspection des fichiers ....
Merci pour la réactivitée..
bonne soirée.

"error "{item 1 of {folder \"dossier patient cible Docx\" of folder \"Conversion en wordx\" of folder \"Desktop\" of folder \"augustinnetter\" of folder \"Users\" of startup disk of application \"Finder\"}} ne correspond pas aux paramètres {source, cible} de inspecter." number -1721 partial result «handler inspecter» from {item 1 ofclass cfol» "dossier patient cible Docx" of «class cfol» "Conversion en wordx" of «class cfol» "Desktop" of «class cfol» "augustinnetter" of «class cfol» "Users" of «class sdsk»}}"
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
Curieux !
Tu as bien sélectionné, dans l'ordre en
1 le dossier contenant les fichiers "pages" puis en
2 le dossier vide pour la réception des fichiers convertis?

ces 2 dossiers sont bien en local sur le disque dur (pas sur un disque réseau) ?

Malgré plein de tests, chez moi, pas de problème !!!
Je n'ai pas réussi à reproduire ton erreur !
 
Dernière édition:

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
Bonjour,

Si cela ne fonctionne toujours pas, fait ce test:
1 - créer un dossier sur le bureau , le nommer "lespages" dans ce dossier mettre quelques fichiers ".pages" pour test.
2 - créer un dossier sur le bureau, le nommer "leswords" le laisser sans rien dedans.
3 - lancer le script et choisir lors des demandes en 1 le dosssier "lespages" et en 2 le dossier "leswords".

Voir si là çà fonctionne...
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
@o_gust_1

Bonjour,
Oups ' ! j'ai trouvé le Bug ! le plantage avait lieu si les fichiers .pages étaient dans des sous-dossiers .
C'est corrigé dans cette version...

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, cible)
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 

o_gust_1

Membre enregistré
10 Février 2021
4
0
35
Bonsoir zeltron54,
j'avais effectivement selectionné les dossiers comme vous l'avez expliqué.
j'ai essayé à nouveau ce soir avec le premier script édité mercredi et un nouveau message d'erreur apparaît me disant

"error "Erreur dans Pages : document \"Moreel .pages\" ne comprend pas le message « export »." number -1708 from document "Moreel .pages"

faisant référence je pense à cette ligne duscript " export document nom to file sortie as Microsoft Word --exporte en docx"

du coup là l'opération de conversion ne se fait carrément pas et le fichier reste ouvert sur l'appli pages sur le bureau.
Je vais essayer avec le nouveau script.
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
Bonjour,

Ok, mais avec le nouveau script, celui du #24, le Bug étant corrigé, est-ce que cela fonctionne ?

D'autre par le script met tous les nouveaux fichiers .docx dans un nouveau dossier, si cela pose problème dis le moi, et l'on pourra regarder pour choisir un autre lieu d' enregistrement, par exemple, le dossier d'origine du fichier .pages.
 

Anwynn

Membre enregistré
29 Mars 2021
9
0
37
Bonjour,
Tout d'abord grand merci pour ce script très utile !

Petit souci, après utilisation du script les fichiers sources sont renommés. Ainsi "Jalon 1" est renommé "Jalon 1.pages". Y-a-t-il un moyen de ne pas voir les fichiers source renommés ?
 
Dernière édition par un modérateur:

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
Bonjour,
@Anwynn

Pour masquer les extensions du fichier original, il faut ajouter cette ligne:
set extension hidden of alias lefichier to true

Comme tu ne dis pas quel script tu utilises (pages vers PDF ou pages vers word) je te met ci-dessous le script modifié pour Pages vers Word...

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
                    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, cible)
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 

Anwynn

Membre enregistré
29 Mars 2021
9
0
37
Merci pour cette rapide réponse !
C’était pour le fichier pdf, je vais essayer de rajouter la ligne comme pour la version word.
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
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
 

tiboug

Membre confirmé
14 Août 2003
56
5
Bonjour zeltron54, je viens d'utiliser ton script pour convertir une série de fichiers pages en pdf et je tenais à te remercier pour ce script qui me sauve la vie!
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 349
369
Lorraine
Bonjour,

@tiboug

Merci pour le retour; :)
Content pour toi. ;)
 

Juste11

Membre enregistré
31 Mai 2021
2
0
28
Japon
Bonjour ou bonsoir,
@zeltron54 un admirateur du Japon.
Votre script m'a été d'une grande aide, et je ne vous en remercierai jamais autant qu'il se puisse.
Je viens à vous un peu gêné mais surtout assez embarrassé car j'ai en effet un nombre assez conséquent de document Numbers à convertir vers Excel. J'ai essayé tant bien que mal de le faire un à un ou encore d'essayer de modifier votre script en y rajoutant Microsoft Excel par exemple mais on ne s'invente pas génie en tentant de changer quelques mots. Je viens vers vous dans l'espoir que vous puissiez nous partager un Script comme vous avez pu le faire auparavant convertissant des fichiers (en grand nombre) mais cette fois-ci non pas de Pages à Word mais de Numbers à Excel.
Dans l'espoir de recevoir de vos nouvelles aux plus vite.
(ps : désolé pour le décalage horaire)

J'ai conscience qu'il ne s'agit pas d'une page concernant Numbers à Excel mais je n'ai malheureusement pas trouvé de "Topic" concernant ce sujet je vous prie de bien vouloir m'excuser d'avoir publié sur une page concernant le logiciels Pages et non en adéquation avec ma demande
 
Dernière édition par un modérateur:

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 262
1 058
Toulouse.cong
faq.office.macintosh.free.fr
Je viens à vous un peu gêné mais surtout assez embarrassé car j'ai en effet un nombre assez conséquent de document Numbers à convertir vers Excel. J'ai essayé tant bien que mal de le faire un à un ou encore d'essayer de modifier votre script en y rajoutant Microsoft Excel par exemple mais on ne s'invente pas génie en tentant de changer quelques mots. Je viens vers vous dans l'espoir que vous puissiez nous partager un Script comme vous avez pu le faire auparavant convertissant des fichiers (en grand nombre) mais cette fois-ci non pas de Pages à Word mais de Numbers à Excel.
En l'absence (momentanée) de Zeltron :coucou:, je me permets de proposer une adaptation de son code ci-dessous. A priori, ça devrait fonctionner sans problème particulier. Sinon, merci de signaler quels problèmes tu rencontres :

Bloc de code:
tell application "Finder"
    set cheminsource to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à exporter en Excel xlsx"
    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 = "numbers" 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 & ".xlsx" 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 "Numbers"
                        open file lefichier -- ouvre le fichier dans Numbers
                        export document nom to file sortie as Microsoft Excel --exporte en xlsx
                        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, cible)
        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: Juste11

Juste11

Membre enregistré
31 Mai 2021
2
0
28
Japon
En l'absence (momentanée) de Zeltron :coucou:, je me permets de proposer une adaptation de son code ci-dessous. A priori, ça devrait fonctionner sans problème particulier.
De prime a bord, Monsieur Aliboron

Je vous prie de bien vouloir recevoir mes plus sincères gratitudes. Je suis actuellement en "cours" de conversion et je ne signale aucun problème jusqu'alors. Du détail comme reconstituer le dossier et ses sous-dossiers et de la mise en forme finale ne sont que minimes comparés à la surcharge de tâches que vous m'épargnez. De ce fait je tiens à vous remercier de plus belle. Vous ne vous rendez pas compte a quel point vous faites gagner du temps et redonnez un second souffle face à l'amont de travail auquel nous pouvons faire face par moment. Merci d'avoir bien voulu m'aider (et ce d'une rapidité spectaculaire malgré un décalage horaire assez conséquent) et merci de partager votre savoir faire.

La communauté Macintosh et en particulier celle d'internet est vraiment formidable, constituée de gens tous aussi formidables. Merci infiniment, je ne sais que ou quoi faire. Comme sans doute constaté, je ne suis pas du tout un expert dans le domaine et donc n'ai en aucun cas la capacité de venir en aide à quiconque, nonobstant je me ferais une joie ou un réel plaisir de vous donner les meilleurs conseils concernant le Japon si je puis me rendre utile de la quelconque manière (traduction etc) Ce n'est pas le forum adéquat et j'en ai conscience et recevoir cette aide sans exprimer ma gratitude en retour me gêne énormément.

Merci du fond du coeur merci de votre aide merci !
 
Dernière édition par un modérateur:

Aliboron

Chercheur de son
Club MacG
1 Janvier 2008
14 262
1 058
Toulouse.cong
faq.office.macintosh.free.fr
merci de votre aide merci !
De rien. C'est surtout à Zeltron54 que ces remerciements s'adressent, je n'ai fait que modifier quelques mots, tout le reste n'est que la reprise directe de son Applescript. Merci quand même pour ces remerciements ! ;)
 
  • J’aime
Réactions: Juste11