4

我正在尝试在命令行上将一堆分类的 iWork 文件(Numbers、Pages、Keynote)批量转换为 PDF。

我一直在尝试 cups-filter 但 iWork 类型没有 MIME 类型的过滤器。然后我研究了使用 qlmanage 生成预览图像并使用它,但这似乎不适用于多文件 Keynote 文档,因为它们生成为 HTML 而不是 PDF。

有什么建议么?我宁愿不求助于 AppleScript。

4

4 回答 4

3

这就是我最终要使用的,因为我真的想避免使用 AppleScript。

保存 iWork 文档时,有一个“在文档中包含预览”复选框。选中此项会在 iWork 文档包(实际上是一个 zip 文件)中创建一个“QuickLook/Preview.pdf”。幸运的是,我检查了大多数 zip 文件,所以这只是解压缩到 NSTemporaryDirectory 并抓取该文件的情况。

对于那些没有的人,我整理了一个脚本来运行 qlmanage 来创建文档预览。对于一些创建 PDF 的人,对于其他人,它会创建一个 HTML 文件。然后,您可以使用http://code.google.com/p/wkhtmltopdf/将此 HTML 转换为 PDF。

于 2012-04-06T08:44:15.673 回答
3

我创建了一个.applescript 脚本,将.pages文件夹中的所有文件转换为.docx. .pdf可以轻松添加支持。在pages2docx.applescript你只需要替换Microsoft WordPDF.

于 2017-05-23T12:19:50.573 回答
2

嗯...你需要的东西

  1. 了解 iWork 文件格式,
  2. 可以渲染文档然后创建 PDF。

除非你想重新发明 iWork 套件……听起来更简单,只是告诉 iWork 应用你想从它们那里得到什么。

您可以通过Scripting Bridge做到这一点

我会使用 Applescript,但也许您可以将Ruby 和 Python与 Scripting Bridge一起使用来完成您需要的工作

借助 Scripting Bridge,RubyCocoa 和 PyObjC 脚本可以做 AppleScript 脚本可以做的事情:控制可编写脚本的应用程序并与它们交换数据。

我有一段时间没有使用 Scripting Bridge,但我相信您可以告诉应用程序打印文档。任何可以在 OS X 中打印的应用程序都可以将其发送到 PDF。

于 2012-04-04T17:42:58.057 回答
2

这里有几个命令可以帮助那些想不假思索地让它工作的人。它适用于我的 ppt 文件。

确保从这里获取 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 脚本来进行批量转换。希望人们可以做出贡献,使其更加强大:

https://github.com/matthewfitch23/DocToPdf

于 2014-12-13T16:35:38.493 回答