Utiliser AppleScript pour convertir par lots des fichiers .pages au format PDF

4

J'ai besoin de convertir environ 100 documents .pages au format pdf ou docx. Avec le script AppleScript ci-dessous, je peux ouvrir des documents .pages à partir du dossier que je sélectionne. Cependant, je reçois le message d'erreur suivant lors d'une tentative d'exportation.

Question: Quelle est la cause de l'erreur et comment puis-je la réparer?

Message d'erreur avec informations personnelles remplacées:

erreur "Les pages ont une erreur: Impossible de créer un alias \" Macintosh HD: Utilisateurs: Chemin: vers: Fichier: foo.pages \ "dans le type de document." numéro -1700 de l'alias "Macintosh HD: Utilisateurs: Chemin d'accès: à: Fichier: foo.pages." se documenter

Ligne de code générant l'erreur:

export this_file to exportFileName as PDF

Scénario:

set exportFileExtension to "pdf"
set this_folder to (choose folder with prompt "Pick the folder containing the files to process:") as string
tell application "System Events"
    set these_files to every file of folder this_folder
end tell
repeat with i from 1 to the count of these_files
    set this_file to (item i of these_files as alias)
    set this_info to info for this_file
    tell application "Finder"
        set {fType, nExt} to ({file type, name extension} of file this_file)
        set documentName to the name of this_file
        set exportFileName to documentName & "." & exportFileExtension
    end tell
    if nExt contains "pages" then
        tell application "Pages"
            open this_file
            export this_file to exportFileName as PDF
            close saving no
        end tell
    end if
end repeat

### Mise à jour ###: J'ai ajouté ce script à github dans l'espoir qu'il profite à d'autres utilisateurs car il continue à être amélioré. Contributions appréciées.

Brian Wilson
la source
Oui, en effet :) Jamais touché AppleScript avant le copier / coller majeur de multiples sources présenté ici. Je n'utilise pas fType, mais j'utilise nExt. puis-je juste set nExt to (name extension of file this_file)? Concernant les conventions de nommage, convenu. Cela provient des multiples sources que j'ai copiées. Je vais nettoyer ça. Je vous remercie.
BrianWilson

Réponses:

2

Remplacez la ligne de code générant l'erreur par ce qui suit:

export front document to file (this_folder & exportFileName) as PDF

Il y avait deux problèmes ici:

  • export prend un document, vous devez donc lui transmettre le document tel qu’il a été ouvert par Pages.
  • Vous avez indiqué le nom du fichier, mais pas un dossier contenant, pour le mettre sous ce nom. Concattez-le donc avec le chemin du dossier afin que Pages sache où exporter.
grg
la source
Je vous remercie. J'ai pu exporter avec succès en utilisant les modifications que vous proposez. Cependant, mon code ouvre les 100 fichiers avant leur exécution et ne les ferme pas.
BrianWilson
1
@BrianWilson, Re: votre commentaire ... changer close saving nopourclose front document saving no
user3439894
hmm. Maintenant , set this_file to (item i of these_files as alias)est provoque message d'erreur: error "Can’t make «class cpkg» \"Macintosh HD:Users:Path:to:file.pages:\" of application \"System Events\" into type alias." number -1700 from «class cpkg» "Macintosh HD:Users:Path:to:file.pages:" to alias
Brian Wilson
Merci de votre aide pour répondre aux questions initiales avec des relances. Le code est toujours très bogué, mais le problème initial a été résolu. En tant que service à l'humanité, je mets le script sur github. link
BrianWilson
Voici un meilleur lien vers github . J'ai inclus un fichier texte, il n'est donc pas nécessaire de télécharger le fichier .scpt pour voir ce qui se passe.
BrianWilson