Можно ли печатать в PDF с терминала Mac?

19

Можно ли взять файл и распечатать его в PDF, используя только команды терминала? Я предполагаю, что вы каким-то образом воспользуетесь командой lpr, но мне еще предстоит найти правильный синтаксис.

tambler
источник
Что за файл? простой текст?
Даг Харрис
1
@ Даниэль, мне следовало бы быть более ясным в своем вопросе: что за исходный файл? - Мой ответ ниже будет работать для простых текстовых файлов, но не для изображений.
Даг Харрис
@ Я извиняюсь, на самом деле я неправильно понял вопрос.
Даниэль Бек
1
@Daniel - Я действительно стремлюсь к чему-то более графическому, скажем, к HTML-страницам. Это возможно?
Тамблер
1
Ваша основная проблема, вероятно, заключается в том, что приложение Viewer зависит от формата файла. Решите, какой формат вы хотите, и вы получите конкретные ответы.
Даниэль Бек

Ответы:

11

lprдействительно правильная команда. Там не так много, просто

lpr filename.pdf

должен просто работать, предполагая, что принтер по умолчанию настроен правильно. Если нет, возможно, вам придется сделать

lpr -P printername filename.pdf

Обратите внимание, что есть man-страница - "man lpr", если вам нужно увидеть содержимое. Да, демон печати CUPS, который использует OS X, уже поддерживает PDF.

грушевый сидр
источник
Предоставленное решение дает pdf нулевого размера на Yosemite. Есть идеи как это решить?
Станислав Мехоношин
Извините за дублирование. При условии, что решение дает pdf нулевого размера на Yosemite, когда я пытаюсь распечатать документ .pages. RTF или TXT напечатаны хорошо. Есть идеи как это исправить?
Станислав Мехоношин
lpr не создает pdf-файлы, поэтому я не уверен, что понимаю комментарий. Вы не можете создавать PDF-файлы с помощью lpr.
Перри
4
Это не отвечает на первоначальный вопрос, так как было «печатать в PDF», а не печатать PDF.
Дориен
5

Я знаю, что видел что-то в просто скрытой системной папке:

/Library/Scripts/Printing Scripts/Convert To PDF.scpt

Я создал новое приложение из AppleScript, но вызов сценария напрямую должен работать.

РЕДАКТИРОВАТЬ: на самом деле вы просто можете позвонить

/System/Library/Printers/Libraries/convert -f file.rtf -o file.pdf -j "application/pdf"

источник
6
Этот ответ устарел. Протестировано в OS X 10.9.5.
4ae1e1
@ 4ae1e1 Нет, это не так. Просто этого «новообращенного» не существует. Это символическая ссылка на / usr / sbin / cupsfilter, и cupsfilter будет работать так же даже на 10.13.6.
CDE
3

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, но они становятся все более и более вовлеченными.

радостный
источник
1
NB: AbiWord не работает на Mac на базе Intel,
инспектор
2

Для простых текстовых файлов вы можете использовать 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
Даг Харрис
источник
Что если бы я хотел сделать что-то более графически интенсивное? Скажем, преобразование HTML-страницы в PDF из терминала?
Tambler
Я знаю, что это старо, но PhantomJS может сделать это, и это делает это очень хорошо.
Брэд
2

Вы также можете использовать 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.

NNN
источник
1

Сначала получите имя принтера

lpstat -p

Затем используйте имя принтера (Canon1234 - например)

lp -d Canon1234 PathToDocument.pdf
Теджус Кришна
источник
Оператор хочет напечатать произвольный файл в PDF-документ, а не печатать PDF на реальном принтере.
CDE
0

Для локальных файлов веб-страниц вы можете попытаться использовать 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 также можно настраивать.

Даниэль Бек
источник
0

На самом деле это намного проще, чем это. Вы можете просто ввести в командной строке, open *.pdfи предварительный просмотр откроется со всеми файлами там. Как ни странно, если вы напечатаете, open *.pdf */*.pdfвы получите два окна. Затем в каждом из них вам нужно перейти в боковую панель, выбрать один из форматов квадратной формы (если по умолчанию существует много файлов, которые он открывает в формате списка, который не работает) CMD- Aвыбрать все, затем использовать команду print- команда selected-pages, чтобы получить их все.

Джоанна Брайсон
источник
0

Вы можете добавить драйвер принтера PDF с помощью pdf printer

  • первая установка pdf printer из магазина потом
  • Начало pdf printer
  • перейти к системным настройкам

  • открытые принтеры и сканеры

  • нажмите +кнопку

  • в списке принтеров выберите pdf printer

  • подождите секунду

  • затем нажмите добавить

  • установить в pdf printerкачестве принтера по умолчанию, затем закрыть ...

открыть терминал, затем выполнить команду для печати файла

lp /path/to/your/file/to/print.txt
NuOne
источник