Скажем, у меня есть несколько файлов Word в папке. Есть ли способ создать пакет PDF-файлов из этих файлов?
5 ответов
Если у вас установлено приложение MS Word (или любое другое приложение, которое может открывать файлы MS Word), вы можете использовать Automator. Вот пошаговое руководство о том, как настроить его для ваших нужд: http://aseriesoftubes.com/articles/how-to-batch-convert-doc-files-to-pdf-format-using-mac-osx -automator/
Краткий обзор всего процесса:
- Открыть Автоматор
- Создать новый рабочий процесс
- На панели
library
слева выберите «Files & Folders
затем дважды щелкните «Get Specified Finder Items
- Добавьте все файлы для конвертации
- На панели
library
выберите «Documents
, затем дважды щелкните «Convert Format of Word Documents
- В раскрывающемся меню выберите «
Portable Document Format (PDF)
- Наконец, нажмите кнопку «
Run
, и она преобразует все файлы и сохраняет их в той же папке, где находятся исходные файлы Word.
Одним из вариантов использования командной строки было бы использование pandoc (который требует LaTeX для генерации PDF).
- Установите Pandoc и LaTeX. Поскольку LaTeX очень большой, я установил BasicTeX, как рекомендовано в документации Pandoc. С Homebrew и Homebrew Cask:
brew install pandoc && brew cask install basictex
- Убедитесь, что файлы Word имеют формат .docx. Если они в формате .doc, вы можете преобразовать их с помощью встроенного в OS X
textutil
:textutil -convert docx *.doc
- В El Capitan вы должны добавить утилиты texbin в вашу PATH:
export PATH=/Library/TeX/texbin:"$PATH"
- Конвертировать:
pandoc -o myfile.pdf myfile.docx
Поскольку ваш вопрос касался пакетного преобразования нескольких файлов, вы можете легко поместить это в цикл:
#! /bin/bash
for file in *.doc; do
textutil -convert docx "$file"
# Account for the new `x` in `docx`
pandoc -o "${file%doc}pdf" "${file}x"
done
Похоже, решение Automator больше не работает.
Так что есть простой.
Установите модуль CUPS-PDF для OS X. Это виртуальный принтер PDF, который выглядит как "настоящий" принтер для системы, но создает файл PDF при отправке на него документа.
https://bitbucket.org/codepoet/cups-pdf-for-mac-os-x/wiki/Home
Если вы сделаете его своим принтером по умолчанию, тогда вам просто нужно будет выбрать все ваши файлы и нажать "Command" + "P" (ярлык). Mac OSX откроет все файлы, отправит их на печать в формате pdf, затем закроет их = Simple и все работает (на моем Mac OS X 10.8.2 Montain Lion)
другой совет:
«После установки виртуального принтера с использованием CUPS-PDF существует более простой и мощный способ пакетного преобразования любого набора документов в файлы PDF.
Используйте утилиту настройки принтера, чтобы создать значок настольного принтера для виртуального принтера. После того, как это создано, я помещаю это в свой Док для легкого доступа.
В Finder перетащите значки файлов на значок виртуального принтера. Для документов Microsoft Word, Microsoft Word будет открыт и получит инструкцию распечатать каждый документ на этом принтере.
В отличие от метода макроса Microsoft Word, вы можете сделать это для любого другого документа, созданного любой другой программой. При необходимости Finder откроет соответствующее приложение и попросит его распечатать на виртуальном принтере.
У этого общего метода есть два умеренных ограничения.
(1) Файлы, которые вы перетаскиваете на значок принтера, должны быть теми, с которыми Mac знает, что делать (т.е. вы можете дважды щелкнуть, чтобы открыть его в какой-то программе на вашем Mac).
(2) Стандартное приложение документа "Открыть с помощью" должно поддерживать команду AppleScript для печати. Все хорошо работающие программы MacOS X делают это. Например, NeoOffice этого не делает, и, следовательно, пакетное преобразование собственных документов NeoOffice не работает для этого метода значков принтера ».
Источник (пропустите часть макроса):http://hints.macworld.com/article.php?story=20070315023808642
Если вы устанавливаете AbiWord с открытым исходным кодом, вы можете выполнить пакетное преобразование из командной строки терминала, например:
for FILE in "*.doc" ; do abiword --to=pdf "$FILE" ; done
Вот предыдущий ответ, который должен работать для этой цели;