Можно ли взять файл и распечатать его в PDF, используя только команды терминала? Я предполагаю, что вы каким-то образом воспользуетесь командой lpr, но мне еще предстоит найти правильный синтаксис.
9 ответов
lpr
действительно правильная команда. Там не так много, просто
lpr filename.pdf
должен просто работать, предполагая, что принтер по умолчанию настроен правильно. Если нет, возможно, вам придется сделать
lpr -P printername filename.pdf
Обратите внимание, что есть man-страница - "man lpr", если вам нужно увидеть содержимое. Да, демон печати CUPS, который использует OS X, уже поддерживает PDF.
Я знаю, что видел что-то в просто скрытой системной папке:
/Library/Scripts/Printing Scripts/Convert To PDF.scpt
Я создал новое приложение из AppleScript, но вызов сценария напрямую должен работать.
РЕДАКТИРОВАТЬ: на самом деле вы просто можете позвонить
/System/Library/Printers/Libraries/convert -f file.rtf -o file.pdf -j "application/pdf"
1) Текстовый процессор с открытым исходным кодом, AbiWord, включает опцию преобразования между любыми форматами, которые он знает в командной строке, включая PDF, например,
abiword --to=pdf filename.html
(Он также обрабатывает, например, файлы MS Word .doc, .docx, .odt, .rtf и т.д., Как для ввода, так и для вывода.)
Я знаю, что это доступно для Mac, хотя я никогда не использовал его на Mac.
2) Программа командной строки ebook-convert
от калибра (на Mac вы должны следовать инструкциям здесь, чтобы получить инструменты командной строки) также полезна для многих форматов.
ebook-convert filename.html filename.pdf
Он может обрабатывать ввод .rtf и .odt, а также множество форматов электронных книг, таких как .epub и .mobi.
3) PrinceXML можно использовать в командной строке и очень красиво конвертирует HTML в PDF.
4) Есть wkhtmltopdf, который использует движок webkit для преобразования HTML в PDF из командной строки. Я никогда не пробовал это.
5) Я могу думать о других методах, использующих, например, ConTeXt или pdflatex, но они становятся все более и более вовлеченными.
Вы также можете использовать pandoc с http://johnmacfarlane.net/pandoc/install.html
С помощью этой команды вы конвертируете html-файл в pdf:
pandoc -o output.pdf input.html
Но обратите внимание, что pandoc использует LaTeX для конвертации, поэтому вам необходимо установить систему LaTeX (http://www.tug.org/mactex/).
Pandoc также может конвертировать в другие форматы, такие как .odt, .docx и .epub.
Для простых текстовых файлов вы можете использовать enscript
(поставляется с OS X) для генерации файла postscript.
$ enscript -p ~/Desktop/profile.ps /etc/profile
[ 1 pages * 1 copy ] left in /Users/dharris/Desktop/profile.ps
Приложение предварительного просмотра OS X можно открыть (и конвертировать) в PDF, или вы можете установить ps2pdf (я установил его через macports) и конвертировать в командной строке.
$ ps2pdf ~/Desktop/profile.ps ~/Desktop/profile.pdf
Вы можете добавить драйвер принтера PDF с использованием pdf printer
- сначала установите
pdf printer
из магазина - запустить
pdf printer
перейти к системным настройкам
открытые принтеры и сканеры
нажмите кнопку
+
в списке принтеров выберите
pdf printer
подождите секунду
затем нажмите добавить
установить
pdf printer
качестве принтера по умолчанию, а затем закрыть ...
открыть терминал, затем выполнить команду для печати файла
lp /path/to/your/file/to/print.txt
Для локальных файлов веб-страниц вы можете попробовать использовать URL-адреса для загрузки в качестве действия PDF Automator. Загрузить и установить.
Мне пришлось запустить Automator в 32-битном режиме:
Создание приложения Automator , который автоматически принимает файлы и папки в качестве входных данных, при этом действии , как только один. Сохранить, например, как Save as PDF
.
Откройте диалоговое окно Get Info вашего приложения и отметьте здесь также Open в 32-битном режиме . Дважды щелкните по нему один раз, чтобы убедиться, что Launch Services знает приложение.
Вы можете использовать это приложение из командной строки следующим образом:
osascript -e 'tell application "Save as PDF" to open { POSIX file "/path/to/file.html" as alias }'
Конечно, вы можете обернуть это в хороший AppleScript .scpt
, функцию bash
, скрипт оболочки или что-то еще.
Это решение на самом деле довольно гибкое. Мне удалось преобразовать текстовые файлы и файлы HTML, и действие Automator также несколько настраивается.
Сначала получите имя принтера
lpstat -p
Затем используйте имя принтера (Canon1234 - например)
lp -d Canon1234 PathToDocument.pdf
На самом деле это намного проще, чем это. Вы можете просто набрать в командной строке open *.pdf
и Preview откроет все файлы там. Как ни странно, если вы наберете open *.pdf */*.pdf
вы получите два окна. Затем в каждом из них вам нужно перейти в боковую панель, выбрать один из форматов квадратной формы (если много файлов, которые он открывает по умолчанию в формате списка, который не работает), наберите CMD - A, чтобы выбрать все, затем используйте команда print-selected-pages, чтобы получить их все.