0 votes

Besoin d'aide pour ajuster l'automatisation AppleScript pour la conversion de .pages en .docx ?

Comment ajuster ce script pour me permettre de choisir les fichiers ? no dans un dossier "pages seulement", et à la place de multiples fichiers "libres" ?

Le mot clé est "célibataire". Je ne suis en aucun cas un expert en codage, mais j'ai récemment appris à utiliser Automator, qui s'est révélé incroyablement utile pour convertir des images PNG en .ICNS.

J'envoyais à un camarade de classe un dossier contenant mes notes pour un cours et je me suis rendu compte qu'il avait un PC et moi un Mac, et que je devais donc convertir les pages des documents en .docx pour qu'il puisse les ouvrir. Il y a beaucoup d'autres cas où cela est nécessaire. J'ai fait quelques recherches en ligne et j'ai créé une action rapide qui fonctionne ! Je l'ai testée plusieurs fois et c'est presque exactement ce dont j'ai besoin.

Le seul problème est que cela ne fonctionne que si tous les documents se trouvent dans un dossier séparé de seulement et je souhaite trouver un moyen de contourner ce problème. Si je pouvais sélectionner plusieurs documents pages à la fois sans les placer d'abord dans un dossier séparé, ce serait génial !

Quick Action Automation

Voici le script que j'utilise :

    --Select from where you will pick up the pages files
    set theSourceFolder to choose folder with prompt "Select folder with original pages files :"
    --Do it
    tell application "Finder"
        set theNames to name of files of theSourceFolder ¬
            whose name extension is "pages"
    end tell

    --Select where the files will go
    set theDestinationFolder to choose folder with prompt "Select folder where files will go :"

    -- How many files to export
    set item_count to (get count of items in theNames)

    --Get files and export them
    repeat with i from 1 to item_count

        set current_file to item i of theNames -- get a file
        set lean_file to text 1 thru -7 of current_file & ".docx" -- change the originalfile (.pages) to a .MS Word name
        set out_file to (theDestinationFolder as Unicode text) & (lean_file) -- get the fully qualified output name
        set in_file to (theSourceFolder as Unicode text) & (current_file) -- get the fully qualified input file name

        tell application "Pages"
            set mydoc to open file in_file -- open input file in Pages
            export mydoc to file out_file as Microsoft Word --do the exporting
            close mydoc saving no -- close the original file without saving
        end tell

    end repeat

    return input
end run 

Je pense que je dois changer "theSourceFolder" en peut-être "theSourceFile" ? mais je suis aussi presque sûr que le script est plus complexe que ce que je comprends et j'ai le sentiment que si j'essaie de le bricoler, je vais tout gâcher.

éditer :

aussi si je pouvais simplement sélectionner le fichier dans le finder sans la fenêtre pop-up qui m'invite à sélectionner un fichier ce serait encore mieux !

Merci d'avance pour votre aide !

1voto

wch1zpink Points 6067

Ce code AppleScript prend les fichiers actuellement sélectionnés dans la fenêtre principale du Finder, passe en revue chaque élément un par un, et seulement si le fichier est un document ".pages", un double est exporté sous forme de document Microsoft Word.

Vous pouvez jouer avec le code si vous préférez avoir la possibilité de choisir le dossier de sortie dans lequel les fichiers exportés seront enregistrés. Sinon, les fichiers exportés seront enregistrés dans le même dossier que les fichiers originaux.

tell application "Finder" to set inputFiles to selection as alias list

repeat with i from 1 to count of inputFiles
    set thisFile to item i of inputFiles
    tell application "Finder"
        set fileName to name of thisFile
        set nameExtension to name extension of thisFile
        tell current application to set theOffset ¬
            to offset of nameExtension in fileName
        set baseName to text (theOffset - 1) thru 1 of fileName
        set outputFolder to container of thisFile as text
    end tell
    if nameExtension is "pages" then
        tell application "Pages"
            set myDoc to open thisFile
            export myDoc to file ((outputFolder & baseName) ¬
                & "docx" as text) as Microsoft Word
            close myDoc saving no
        end tell
    end if
end repeat

Attention : ce code écrasera tous les fichiers .docx portant le même nom qui existent actuellement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X