Как печатать только четные или нечетные страницы (HP LaserJet 1018)

Иногда я печатаю двухсторонние документы. Поэтому сначала я печатаю нечетные страницы, а затем использую ту же бумагу в обратном порядке для печати четных страниц (я просто проверяю обратное при печати).

Я делаю эту операцию вручную, это означает, что я сам ввожу номера страниц, например: 1,3,5,7,9 для нечетных страниц, затем 2,4,6,8,10 для четных страниц.

Проблема в том, что когда я хочу напечатать большое количество страниц, это трудно сделать. Представь себе 100 страниц. Кроме того, я могу сделать некоторые ошибки между ними.

Есть ли способ определить нечетные страницы в общем диалоге печати ubuntu?

Я использую Ubuntu 12.10 с hplib по умолчанию для печати. ​​

5
задан 15 April 2013 в 11:25

3 ответа

Если вы пытаетесь печатать из libreoffice, есть возможность печатать только левую или правую страницы.

Откройте диалоговое окно печати, затем выберите вкладку «Макет» и выберите соответствующий параметр в раскрывающемся списке сторон страницы.

Если вы печатаете PDF, программа просмотра документов имеет аналогичную опцию на вкладке настройки страницы диалогового окна печати. ​​

0
ответ дан 15 April 2013 в 11:25

Вы также можете сделать это из командной строки, используя команду lp:

$ PDF_NAME='my_document.pdf'
$ NUMBER_PAGES=15

# print odd pages
$ lp "${PDF_NAME}" -P $(seq -s ',' 1 2 "${NUMBER_PAGES}")

# print even pages:
$ lp "${PDF_NAME}" -P $(seq -s ',' 2 2 "${NUMBER_PAGES}") -o outputorder=reverse
# may have to add '-o orientation-requested=6' to rotate by 180°

команды seq просто выводят разделенный запятыми список страниц, необходимый для lp команда:

$ NUMBER_PAGES=15
$ seq -s ',' 1 2 "${NUMBER_PAGES}"  # -> 1,3,5,7,9,11,13,15
$ seq -s ',' 2 2 "${NUMBER_PAGES}"  # -> 2,4,6,8,10,12,14

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

# find the available printers and the default printer:
$ lpstat -p -d
# printer my_printer is idle. enabled since ...

# direct lp to use the desired printer
$ lp -d my_printer ...

, если вам нужно автоматически получить количество страниц (возможно, есть лучший способ сделать это), который вы можете использовать pdfinfo из пакета poppler-utils:

$ NUMBER_PAGES=$(pdfinfo "${PDF_BOOK}" | grep 'Pages:' | cut -d ':' -f 2 | xargs)
0
ответ дан 15 April 2013 в 11:25

Основываясь на ответе главного героя хиро, я пытаюсь спасти всех, кто прорабатывает детали, чтобы сделать из этого функцию.

Запустите lpstat -p -d, чтобы найти имя принтера и заменить printer_nameименем принтера в следующих сценариях.

Как только следующие функции сохранены в ~/.bashrcили ~/.zshrcили подобном, они могут быть вызваны как команда из оболочки, например:

printOdd

printEven

function printOdd() {
  NUMBER_PAGES=$(pdfinfo $1 | grep 'Pages:' | cut -d ':' -f 2 | xargs)
  lp "$1" -P $(seq -s ',' 1 2 "${NUMBER_PAGES}") -d printer_name
}

function printEven() {
  NUMBER_PAGES=$(pdfinfo $1 | grep 'Pages:' | cut -d ':' -f 2 | xargs)
  lp "$1" -P $(seq -s ',' 2 2 "${NUMBER_PAGES}") -d printer_name
}

PS: Вам нужно установить pdfinfoв вашей системе

1
ответ дан 25 December 2021 в 09:52

Другие вопросы по тегам:

Похожие вопросы: