Как распечатать определенные страницы из командной строки?


8

Есть ли способ отправить PDF-файл (или файлы) на принтер через командную строку, но печатать только, скажем, нечетные страницы? Например, lpr -{some option} *.pdfИли возможно {some command to get odd-numbered pages} *.pdf | lpr. Это было бы быстрее, чем открывать каждый файл, открывать диалоговое окно «Печать» и указывать ему печатать страницы 1, 3, 5, 7, 9 ... Идея состоит в том, чтобы печатать все нечетные страницы, тогда я могу печатать четные страницы на другая сторона бумаги.

Ответы:


10

Пытаться

lpr -o page-set=odd <file>
lpr -o page-set=even <file>

Вы можете найти документацию по этому и другим параметрам lpr в документации по чашкам .


@ fschmitt: Спасибо, это сработало отлично! (Извините, я не могу понять, как комментировать, вместо того, чтобы оставлять полный ответ.)
Wolf

Есть ли man-страница, которая собирает все возможные lprварианты?
Джеремия

4

Альтернативой решению cups от fschmitt - например, если у вас есть только несколько доступных lpr - является команда psselect .

Например, для ручной двусторонней печати на принтере без модуля двусторонней печати:

$ psselect -e -r < foo.ps | lpr
$ # manually rotate pages by 180 degrees and reinsert
$ psselect -o < foo.ps | lpr

Ну, работает, только если ваш принтер имеет механизм транспортировки твердой бумаги ...

-e выбирает только четные страницы, -o нечетные и -r отменяет выбор


2

Если вы решите предварительно обработать PDF (например, потому что ваша среда печати не CUPS и не поддерживает выбор страницы), вы можете сделать это с помощью pdftk .

pdftk A=foo.pdf cat Aodd output - | lpr
# take out the sheets and feed them back in
pdftk A=foo.pdf cat Bend-1even output - | lpr

В зависимости от того, насколько дешев ваш принтер, вам может потребоваться распечатать нечетные страницы в обратном порядке и четные страницы по порядку: перейдите end-1к другой команде. Если документ содержит нечетное количество страниц, выньте последнюю страницу из стопки и не возвращайте ее во второй раз.


Хм, насчет сжигания бумаги - дуплексные модели принтеров HP, с которыми я сталкивался, всегда делали автоматическую повторную вставку страницы для печати на обратной стороне, они не печатали обе стороны одновременно.
maxschlepzig

@maxschlepzig: Да, вы правы, я переоценил правильную точку зрения. Печать на обратной стороне листа, который был рядом и на котором скопились некоторые плохие материалы (пятна грязи, струйные чернила, небольшие разрывы и т. Д.), Может повредить бумагу или принтер, но переустановить бумагу, когда она выходит из принтера для Первый раз в порядке.
Жиль "ТАК - перестань быть злым"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.