
Nous avons récemment reçu la question suivante :
J'utilise la dernière version de Merlin Project sur Mac et j'ai créé un fichier de projet pour un client. Il m'a demandé un manuel de projet qui puisse être imprimé ou consulté dans Aperçu ou Acrobat Reader. Le manuel de projet doit lister les tâches et les pièces jointes dans une interface Maître-Détail et exporter un ensemble de propriétés prédéfinies qui m'intéressent. L'utilisation d'un script ne me pose pas de problème, mais je souhaite que l'action effectue tout le travail en une seule passe : itérer les éléments, extraire les données et créer le PDF. Est-ce possible ?
Une façon de répondre à la demande du client serait d'utiliser le menu Fichier > Exporter > Image pour exporter des vues de projet personnalisées en PDF, ou d'appeler Fichier > Imprimer pour imprimer les documents.
Cependant, pour satisfaire l'exigence décrite ci-dessus, une solution AppleScript développée par nos soins s'avère très pratique.
Le script parcourt toutes les tâches du projet et extrait les propriétés de chaque élément. Il vérifie la présence de pièces jointes, en extrait les propriétés correspondantes et écrit un fichier texte AsciiDoc sur le Bureau. Enfin, il appelle Asciidoctor PDF pour créer un PDF à partir d'une feuille de style personnalisée.
Installation du script
- Téléchargez l'archive suivante.
- Décompressez le fichier zip.
- Dans le menu du Finder, sélectionnez Aller > Dossier personnel.
- Déplacez le dossier res-for-script dans le dossier personnel.
- Dans Merlin Project, sélectionnez Fichier > Actions > Afficher le dossier des scripts.

- Ouvrez le dossier nommé net.projectwizards.merlinproject.
- Déplacez le fichier de script Create Project Handbook.scpt dans le dossier des scripts de Merlin Project.
- Double-cliquez sur le script Create Project Handbook. Il s'ouvrira dans l'Éditeur de script.
- Repérez la ligne contenant property pathToAsciidoctorPDF.
- Ouvrez une fenêtre Terminal et exécutez command -v asciidoctor-pdf.
- Modifiez le pathToAsciidoctorPDF si nécessaire.
Si vous devez installer asciidoctor-pdf, suivez les instructions d'installation et modifiez le pathToAsciidoctorPDF si nécessaire.
Création du manuel de projet
Ouvrez un projet quelconque. Appelez le script Create Project Handbook depuis le menu Fichier > Actions > … de Merlin Project.
Attendez que le script crée le fichier AsciiDoc et lance la conversion PDF avec asciidoctor-pdf. Un signal sonore retentit toutes les 75 lignes lors de l'écriture du fichier texte. Le fichier AsciiDoc (.adoc) et le PDF généré apparaîtront tous deux sur le Bureau.
La feuille de style personnalisée affiche une page de titre pour le manuel de projet, incluant la date de création, et prend en charge les emojis Apple. Le fichier PDF comprend une table des matières cliquable.

Les pièces jointes seront listées sous leurs éléments parents.

Vous pouvez ouvrir le fichier .adoc et le modifier si vous souhaitez convertir le PDF dans une seconde étape avec vos propres feuilles de style. Si vous souhaitez utiliser votre propre feuille de style pour le PDF, placez-la simplement dans le dossier res-for-script et renommez la propriété themeName dans le script en conséquence.
Remarque concernant les AppleScripts de ProjectWizards : vous pouvez intégrer ce code exemple de ProjectWizards dans vos programmes sans restriction. Les scripts sont fournis uniquement à titre de démonstration. Nous vous aidons volontiers pour toute question relative aux scripts, mais la responsabilité de leur fonctionnement vous incombe entièrement. Vous êtes expressément autorisé à modifier les scripts et à les redistribuer gratuitement à des tiers. Dans ce cas, veuillez indiquer clairement les modifications apportées et préciser que la base du script provient de ProjectWizards.
Pour modifier cet exemple ou d'autres exemples AppleScript, veuillez consulter le document Scripting Merlin Project. Vous y trouverez divers exemples et extraits de code prêts à l'emploi. Ce document est rédigé en anglais.
Si vous avez des questions sur cet article de blog ou si vous souhaitez en discuter, nous attendons avec impatience votre contribution dans notre forum.