Как распечатать файл PostScript в Evince, используя макет брошюры?

У меня есть вывод PostScript с man-страницы, созданной man -t ssh > man_ssh.ps, Он открывается для просмотра в Evince. Я хочу напечатать его на принтере, который поддерживает двустороннюю печать. Итак, я хотел бы напечатать его в режиме "брошюры" - то есть, когда четыре страницы документа печатаются на двухстороннем одном листе, поэтому, когда листы сложены пополам сразу, нумерация страниц документ как в буклете. Как я могу напечатать документ таким образом в Evince?

UPD: есть еще один вопрос, как сделать man -t выходные данные соответствуют макету страницы буклета - то есть более широкие внутренние поля, что делает страницы "левыми" и "правыми"?

2 ответа

Решение

Похоже, в настоящее время нет способа печатать страницы в режиме брошюры (буклета) ни в Evince, ни в Xpdf. Есть полу-решение для использования psbook утилита из pstools пакет, который будет переставлять и выводить страницы в файле postscript, чтобы они работали как в режиме буклета. Пожалуйста, обратите внимание -s вариант psbook который контролирует количество оригинальных страниц, которые помещаются в один буклет. Это полезно, когда вы хотите напечатать большое количество страниц, которые не будут сгибаться сразу, а складываться в несколько вложенных буклетов. Например, 120-страничный документ по умолчанию помещается в брошюру на 30 листов, которую трудно сложить. С использованием psbook -s 24 составят 120/24=5 брошюр по 6 листов каждая, которые легко сложить, а затем объединить.

Также обратите внимание, что man -t вывод плохо подготовлен для печати буклета - он имеет номера страниц на "правой", а не на "внешней" стороне, а "левые" и "правые" поля страницы одинаковы вместо "внутреннего" поля больше, чем " external ", а страницы не классифицируются как" left "и" right ". Обсуждение о том, как настроить man -t выход идет здесь.

Я нашел способ настроить CUPS, чтобы он вызывал pdfbook для меня. Процесс сводится к следующему:

  1. На вашем сервере CUPS (например, http://localhost:631), создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюр. Назовем новый принтер "Принт-буклет".

  2. редактировать /etc/cups/ppd/Print-booklet.ppd как корень. Добавьте следующую строку, например, перед *cupsFilter запись: *cupsPreFilter: "application/pdf 0 booklettopdf",

  3. (Этот шаг немного грязный, возможно, это можно сделать более чистым способом.) В /usr/lib/cups/filterсоздать скрипт booklettopdf (как корень):

    #!/bin/sh
    for e in "$@"; do echo DEBUG: $0: $e 1>&2; done
    TMPFILE=$(mktemp)
    echo DEBUG: $0: $TMPFILE 1>&2
    if [ "$6" = "" ]; then
        cat
    else
        cat "$6"
    fi | pdfbook --scale 0.97 --outfile $TMPFILE && cat $TMPFILE && rm $TMPFILE
    
  4. Сделайте скрипт исполняемым: chmod +x booklettopdf,

  5. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер "Print-booklet".

cupsPreFilter является расширением CUPS PPD, и кажется, что application/pdf Формат всегда будет появляться в цепочке фильтров (Ubuntu 12.10, может быть, раньше?).

Я бы проголосовал за интеграцию этой функциональности в CUPS.

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