【发布时间】:2023-03-06 07:37:01
【问题描述】:
我正在尝试在命令行上将一堆分类的 iWork 文件(Numbers、Pages、Keynote)批量转换为 PDF。
我一直在尝试 cups-filter,但 iWork 类型没有 MIME 类型的过滤器。然后我研究了使用 qlmanage 生成预览图像并使用它,但这似乎不适用于多文件 Keynote 文档,因为它们生成为 HTML 而不是 PDF。
有什么建议吗?我宁愿不使用 AppleScript。
【问题讨论】:
我正在尝试在命令行上将一堆分类的 iWork 文件(Numbers、Pages、Keynote)批量转换为 PDF。
我一直在尝试 cups-filter,但 iWork 类型没有 MIME 类型的过滤器。然后我研究了使用 qlmanage 生成预览图像并使用它,但这似乎不适用于多文件 Keynote 文档,因为它们生成为 HTML 而不是 PDF。
有什么建议吗?我宁愿不使用 AppleScript。
【问题讨论】:
这是我最终使用的,因为我真的想避免使用 AppleScript。
保存 iWork 文档时,有一个“在文档中包含预览”复选框。选中此项会在 iWork 文档包(实际上是一个 zip 文件)中创建一个“QuickLook/Preview.pdf”。幸运的是,我检查了大多数 zip 文件,所以这只是解压缩到 NSTemporaryDirectory 并获取该文件的情况。
对于那些没有的人,我整理了一个脚本来运行 qlmanage 来创建文档预览。对于一些创建 PDF 的人,对于其他人,它会创建一个 HTML 文件。然后,您可以使用http://code.google.com/p/wkhtmltopdf/ 将此 HTML 转换为 PDF。
【讨论】:
我创建了一个.applescriptscript,它将文件夹中的所有.pages 文件转换为.docx。 .pdf 支持可以轻松添加。在pages2docx.applescript 中,您只需将Microsoft Word 替换为PDF。
【讨论】:
嗯...你需要一些东西
除非你想重新发明 iWork 套件...听起来更简单,只是告诉 iWork 应用你想从它们那里得到什么。
您可以通过Scripting Bridge 进行此操作
我会使用 Applescript,但也许您可以将 Ruby and Python 与脚本桥 to accomplish what you need 一起使用
借助 Scripting Bridge,RubyCocoa 和 PyObjC 脚本可以做 AppleScript 脚本可以做的事情:控制可编写脚本的应用程序并与它们交换数据。
我有一段时间没有使用 Scripting Bridge,但我相信您可以告诉应用程序打印文档。并且任何可以在 OS X 中打印的应用程序都可以将其发送到 PDF。
【讨论】:
这里有几个命令可以帮助那些想不假思索地完成这项工作的人。它适用于我的 ppt 文件。
确保从here获取wkhtmltopdf。
qlmanage -p -o /tmp /path/of/file.ppt
wkhtmltopdf /tmp/file.ppt.qlpreview/Preview.html /output/to/file.pdf
如果您希望原始页面保持一致,您可能需要调整大小,因为我使用以下参数的 ppt 完成了这项工作:
wkhtmltopdf --page-width 200 --page-height 145 Preview.html file.pdf
编辑:我编写了一个 Python 脚本来进行批量转换。希望人们可以做出贡献,使其更加健壮:
【讨论】: