Résolu Convertir plusieurs .pages en .pdf

aymerico9

Membre enregistré
2 Janvier 2018
3
1
28
Bonjour à tous,

J'ai un petit souci pratique concernant Mac. J'ai des fichiers en .pages sur mon Macbook Unibody (Yosemite 10.10) et j'aimerais les lire sur une tablette Android. J'ai tenté plusieurs "Drive" type One, Google, Dropbox etc.. aucun ne lis ces fichiers Pages (version 5).

J'ai donc choisi l'option de convertir tout ces fichiers en .pdf puis de les lire sur un de ces drive ensuite.

Problème : on ne peut exporter plusieurs fichiers simultanément en PDF. Et ça serait un peu fastidieux de les ouvrir tous un à un > fichier > exporter > PDF...

Je sais qu'il est possible avec le Terminal de créer un dossier sur le bureau dans lequel on viendrait glisser-déposer des fichiers .pages et se convertissent en .pdf. Mais cela dépasse mes capacités informatiques.

Merci d'avance à celui/celle/ceux qui m'aideront !

Aymeric



Note de la modération: pas trop de rapport avec les portables Mac, je déplace dans le forum adéquat.
 
Dernière édition par un modérateur:

aymerico9

Membre enregistré
2 Janvier 2018
3
1
28
Merci à vous.

alors j'ai installé VipRiser. Mais apparement il faut acheter "VipRiser PDF Ops" pour pouvoir convertir des PDF... 9,99€ dans l'App Store.

Sinon pour Automar j'ai suivi le truc et il me dit qu'il y a une erreur dans le script...
 

melaure

Chasseur de Bobos
Club MacG
24 Octobre 2001
24 901
1 756
52
Le Grand Lyon
Et un document vierge pages dans lequel tu copies/colles tous les autres ?
 

zeltron54

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

aymerico9

Membre enregistré
2 Janvier 2018
3
1
28
Merci beaucoup @zeltron54 !!! Je viens de tester ta méthode et ça marche niquel c'est parfait.
En quelques secondes tous les fichiers s'ouvrent, se referment et se retrouvent en pdf dans notre dossier cible !

Pour les futurs galériens comme moi : pas réussi à faire marcher les deux autres méthodes VipRiser & Automator.

Merci encore à tous !
 
  • J’aime
Réactions: melaure

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 657
418
Lorraine
content pour toi ! bonne journée et bonne année...
 

melaure

Chasseur de Bobos
Club MacG
24 Octobre 2001
24 901
1 756
52
Le Grand Lyon
Joli cours d'Apple Script au passage ! :D
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 657
418
Lorraine
Suite à une demande par "conversations" pour adapter le script à la conversion de fichiers ".Docx" dans microsoft Word 2011 en PDF je poste le script modifié

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 = "docx" 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 "Microsoft Word"
                        open file lefichier -- ouvre le fichier dans Word
                       
                        set theActiveDoc to the active document
                        save as theActiveDoc file format format PDF file name sortie
                       
                        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: baron

melaure

Chasseur de Bobos
Club MacG
24 Octobre 2001
24 901
1 756
52
Le Grand Lyon
Bientôt la version pour les .docxx ? :D :D :D
 

bargio

Membre actif
26 Juin 2003
136
2
45
Avignon, France
www.sousbock-fr.com
Bonjour, je viens juste pour remercier ! Merci Zeltron54, ton script m'a fait gagner un temps incroyable !
J'en profite pour poser une question si jamais quelqu'un suit encore ce fil : lorsqu'on fait la conversion en pdf "manuellement" dans pages, on a une option pour la qualité des images. Est-ce que c'est pris en compte dans le script ou est-ce que c'est automatisé ? Si oui, on sait quelle est la qualité par défaut ?
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 657
418
Lorraine
Bonjour bargio,

Content que mon petit script te rende service.

Pour la qualité d'export celle utilisée est celle par défaut qui doit être (bonne-- Good)
Pour modifier dans le script, en précisant notre besoin, il faut modifier le ligne:
Bloc de code:
export document nom to file sortie as PDF
en ajoutant la qualité désirée exemple pour (supérieure -- Better)
Bloc de code:
export document nom to file sortie as PDF with properties {image quality:Better}
Ou pour (optimale -- Best)
Bloc de code:
export document nom to file sortie as PDF with properties {image quality:Best}

Voilà, Il ne te reste plus qu'a modifier la ligne à ta convenance.
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 657
418
Lorraine
content pour toi !
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 657
418
Lorraine
@michtbk
Content pour toi ! Si ça a pu te rendre service...
 
Dernière édition par un modérateur:

o_gust_1

Membre enregistré
10 Février 2021
4
0
36
Bonjour Zeltron54
est-il possible de modifier les lignes correspondantes pour une conversion d'un lot de fichiers de formats .pages vers un format .docx?
 

o_gust_1

Membre enregistré
10 Février 2021
4
0
36
Bonjour Zeltron54
est-il possible de modifier les lignes correspondantes pour une conversion d'un lot de fichiers de formats .pages vers un format .docx?
Ok en fait j'ai essayer ça ne marche pas... en même temps je suis pas très doué avec ces trucs donc ça ne m'étonne pas.
Serait-il possible d'avoir un script pour convertir des fichiers .pages en fichiers .docx??
j'ai 3000 fichiers à convertir ça me sauverait la vie!!!
 

zeltron54

Membre expert
Club MacG
29 Mars 2008
2 657
418
Lorraine
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
 
Dernière édition: