我想创建一个简单的应用程序,在“另存为 pdf”组合框中创建一个新的系统范围条目。该应用程序的结果可能是“将 pdf 保存到 dropbox 发票”菜单条目。
工作原理:将示例流程从 /Library/PDF Services
复制粘贴到 ~/Library/PDF Services
中,并编辑包的内容(工作流程包含几项)。
对于我的应用程序,我希望在我的 bundle 中包含此工作流程的模板,并动态编辑新工作流程,然后将其导出到 ~/Library/PDF Services
文件夹。
这样,我就可以实现新菜单条目的本地化,以及其他优点。
那么,创建这样一个“工作流程”包的最佳方法是什么,包括 info.plist、一些本地化、...复制/编辑现有的包,还是有更神奇的方法? 最后,我认为我需要的是动态创建一个新的应用程序。
最佳答案
工作流程(包括您所询问的打印插件)通常是使用/Applications/Automator.app 创建的。你熟悉吗?
您的工作流程可以引用“变量”。基于文本模板的变量可以有一个初始值。该值存储在定义工作流的 .wflow 文件(位于 .workflow 包内)中。我想您可以在复制工作流程后编辑该初始值以对其进行自定义。这似乎有些脆弱,因为 .wflow 文件的格式没有记录。
除了 Automator 工作流程之外,您还可以将文件夹、应用程序、命令行工具和 AppleScript 文件或其中任何文件的别名放入 PDF 服务目录中。如果您发现使用其中之一更容易,请这样做。脚本文件可能是最容易动态创建和自定义的。
有关更多信息,请参阅Providing PDF Workflow Options in the Print Dialog .
关于cocoa - 如何从 Cocoa 应用程序创建 "print utility"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10462804/