2012-04-04 4 views
3

Я пытаюсь преобразовать в файл PDF в командной строке кучу отсортированных файлов iWork (Numbers, Pages, Keynote).Пакетное преобразование файлов Mac iWork в PDF в командной строке

Я пробовал фильтр чашек, но для типов iWork не существует фильтра типа MIME. Затем я изучил использование qlmanage для создания изображения предварительного просмотра и его использования, но это не похоже на работу с несколькими файлами Keynote, поскольку они генерируются как HTML, а не PDF.

Любые предложения? Я бы предпочел не прибегать к AppleScript.

ответ

2

Ну ... вам нужно что-то, что

  1. понимает форматы файлов iWork,
  2. может сделать документы, а затем создать PDF.

Если вы не хотите изобретать комплект iWork ... Звучит просто, просто скажите приложениям iWork, что вы хотите от них.

Вы бы сделать это с помощью Scripting Bridge

Я хотел бы использовать Applescript, но, возможно, вы можете использовать Ruby and Python с Scripting Bridge to accomplish what you need

С Scripting Bridge, RubyCocoa и скрипты PyObjC могут делать то, что сценарии AppleScript может выполнять: управлять приложениями с возможностью сценариев и обмениваться данными с ними.

Я не использовал скриптовый мост через некоторое время, но я считаю, что вы можете сообщить приложениям о печати документов. И любое приложение, которое может печатать в OS X, может отправить его в PDF вместо этого.

3

Вот что я в итоге начал с того, что я действительно хотел избежать, AppleScript.

При сохранении документа iWork имеется флажок «Включить предварительный просмотр в документе». Проверка этого создает «QuickLook/Preview.pdf» внутри пакета документов iWork (который фактически является zip-файлом). К счастью, я проверил это для большинства zip-файлов, так что это просто случай распаковки в NSTemporaryDirectory и захват этого файла.

Для тех, кто не создал сценарий для запуска qlmanage, чтобы создать предварительный просмотр документа. Для некоторых, которые создают PDF-файл, для других он создает HTML-файл. Затем вы можете использовать http://code.google.com/p/wkhtmltopdf/, чтобы преобразовать этот HTML-код в PDF-файл.

2

Вот несколько команд, которые помогут тем, кто хочет получить эту работу, не задумываясь. Он работал для меня с ppt-файлом.

Обязательно получите wkhtmltopdf от here.

qlmanage -p -o /tmp /path/of/file.ppt 
wkhtmltopdf /tmp/file.ppt.qlpreview/Preview.html /output/to/file.pdf 

Вы, возможно, придется возиться с размерами, если вы хотите оригинальные страницы, чтобы оставаться последовательным, для РРТ я использовал следующие параметры сделали работу:

wkhtmltopdf --page-width 200 --page-height 145 Preview.html file.pdf 

Edit: я написал Python для пакетного преобразования.Надеюсь, люди могут внести свой вклад, чтобы сделать его более устойчивым:

https://github.com/matthewfitch23/DocToPdf

1

Я создал .applescriptscript, который преобразует все .pages файлы в папке для .docx. .pdf Поддержка может быть легко добавлена. В pages2docx.applescript вам просто нужно заменить Microsoft Word на PDF.

Смежные вопросы