
我们最近收到了如下问题:
我用最新版本的 Merlin Project 在 Mac 上为一位客户创建了一个项目文件。他需要一份可打印、或可在预览或 Acrobat Reader 中阅读的项目手册。该项目手册应在主从接口中列出活动与附件,并导出一组我所关注的预定义属性。即便需要使用脚本我也不介意,但我希望该操作能一气呵成地完成所有工作,也就是遍历各元素、提取数据并生成 PDF。这能实现吗?
实现客户需求的一种方式,当然可以通过菜单 文件 > 导出 > 图像 将自定义项目视图导出为 PDF,或调用 文件 > 打印 来打印文档。
不过,要满足上述需求,更合适的是采用我们开发的一套 AppleScript 解决方案。
该脚本会遍历所有项目活动,并提取每个元素的活动属性。它会检查是否存在附件,提取相应属性,并将一个 AsciiDoc 文本文件写入桌面。最后它会调用 Asciidoctor PDF,使用自定义样式表生成一个 PDF 文件。
脚本的安装
- 请下载以下 压缩包。
- 解压该 Zip 文件。
- 在访达菜单中调用 前往 > 个人文件夹。
- 将文件夹 res-for-script 移动到个人文件夹中。
- 在 Merlin Project 中调用 文件 > 操作 > 显示脚本文件夹。

- 打开名为 net.projectwizards.merlinproject 的文件夹。
- 将脚本文件 Create Project Handbook.scpt 移动到 Merlin Project 的脚本文件夹中。
- 双击脚本 Create Project Handbook。它将在脚本编辑器中打开。
- 找到包含 property pathToAsciidoctorPDF 的那一行。
- 打开一个终端窗口,并调用 command -v asciidoctor-pdf
- 如有必要,请修改 pathToAsciidoctorPDF
如果您需要安装 asciidoctor-pdf,请按照安装说明操作,并在需要时修改 pathToAsciidoctorPDF。
项目手册的生成
打开任意一个项目。从菜单 文件 > 操作 > … 调用脚本 Create Project Handbook。
请等待脚本生成 AsciiDoc 文件,并调用 asciidoctor-pdf 进行 PDF 转换。在写入文本文件时,每写满 75 个项目行会发出一次提示音。AsciiDoc 的 .adoc 文件以及生成的 PDF 都会显示在桌面上。
自定义样式表会为项目手册渲染一个标题页,其中包含创建日期,并使用 Apple Emoji。该 PDF 文件包含一个可点击的目录。

附件 会列在其所属的上级活动之下。

您可以打开 .adoc 文件,并在需要时进行修改,从而在第二步中使用您自己的样式表来转换 PDF。如果您希望为该 PDF 文件使用自己的样式表,只需将其放入文件夹 res-for-script 中,并相应地重命名脚本中的属性 themeName。
关于 ProjectWizards 的 AppleScript 的说明:您可以不受限制地、免费地采用并使用这些 AppleScript 及其他示例。这些脚本始终仅作演示用途提供。我们乐于为您解答有关脚本的问题,但运行的最终责任完全由您承担。明确允许您修改这些脚本并免费转交给第三方。如属此种情况,请清楚说明您所作的修改,以及该脚本的基础来自 ProjectWizards。
若要修改本示例或其他 AppleScript 示例,请阅读文档 Scripting Merlin Project。其中包含您可以使用的各种示例与代码片段。该文档以英文撰写。
如果您对这篇博客文章有任何疑问或希望参与讨论,欢迎您在我们的论坛中发帖。