【问题标题】:Batch convert Mac iWork files to PDF on the command line在命令行上将 Mac iWork 文件批量转换为 PDF
【发布时间】:2023-03-06 07:37:01
【问题描述】:

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

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

有什么建议吗?我宁愿不使用 AppleScript。

【问题讨论】:

    标签: macos pdf cups iwork


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我创建了一个.applescriptscript,它将文件夹中的所有.pages 文件转换为.docx.pdf 支持可以轻松添加。在pages2docx.applescript 中,您只需将Microsoft Word 替换为PDF

      【讨论】:

        【解决方案3】:

        嗯...你需要一些东西

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

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

        您可以通过Scripting Bridge 进行此操作

        我会使用 Applescript,但也许您可以将 Ruby and Python 与脚本桥 to accomplish what you need 一起使用

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

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

        【讨论】:

          【解决方案4】:

          这里有几个命令可以帮助那些想不假思索地完成这项工作的人。它适用于我的 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 脚本来进行批量转换。希望人们可以做出贡献,使其更加健壮:

          https://github.com/matthewfitch23/DocToPdf

          【讨论】:

            猜你喜欢
            • 2015-10-18
            • 1970-01-01
            • 2014-04-02
            • 2019-07-14
            • 2012-06-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多