Как распечатать файл PostScript в Evince с помощью макета брошюры?

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

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

4
задан 8 July 2011 в 11:03

16 ответов

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

Также обратите внимание, что выход man -t не очень хорошо подготовлен для печати буклета - он имеет номера страниц на «правой» стороне, а не на «внешней» стороне, а поля «слева» и «справа» одинаковы, а «внутреннее» поле больше, чем «внешнее», а страницы не классифицируются как "Лево и право". Здесь обсуждается вопрос о том, как настроить выход man -t.

1
ответ дан 25 May 2018 в 19:54

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

Также обратите внимание, что выход man -t не очень хорошо подготовлен для печати буклета - он имеет номера страниц на «правой» стороне, а не на «внешней» стороне, а поля «слева» и «справа» одинаковы, а «внутреннее» поле больше, чем «внешнее», а страницы не классифицируются как "Лево и право". Здесь обсуждается вопрос о том, как настроить выход man -t.

1
ответ дан 25 July 2018 в 21:36

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

Также обратите внимание, что выход man -t не очень хорошо подготовлен для печати буклета - он имеет номера страниц на «правой» стороне, а не на «внешней» стороне, а поля «слева» и «справа» одинаковы, а «внутреннее» поле больше, чем «внешнее», а страницы не классифицируются как "Лево и право". Здесь обсуждается вопрос о том, как настроить выход man -t.

1
ответ дан 2 August 2018 в 03:13

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

Также обратите внимание, что выход man -t не очень хорошо подготовлен для печати буклета - он имеет номера страниц на «правой» стороне, а не на «внешней» стороне, а поля «слева» и «справа» одинаковы, а «внутреннее» поле больше, чем «внешнее», а страницы не классифицируются как "Лево и право". Здесь обсуждается вопрос о том, как настроить выход man -t.

1
ответ дан 4 August 2018 в 19:08

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

Также обратите внимание, что выход man -t не очень хорошо подготовлен для печати буклета - он имеет номера страниц на «правой» стороне, а не на «внешней» стороне, а поля «слева» и «справа» одинаковы, а «внутреннее» поле больше, чем «внешнее», а страницы не классифицируются как "Лево и право". Здесь обсуждается вопрос о том, как настроить выход man -t.

1
ответ дан 6 August 2018 в 03:25

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

Также обратите внимание, что выход man -t не очень хорошо подготовлен для печати буклета - он имеет номера страниц на «правой» стороне, а не на «внешней» стороне, а поля «слева» и «справа» одинаковы, а «внутреннее» поле больше, чем «внешнее», а страницы не классифицируются как "Лево и право". Здесь обсуждается вопрос о том, как настроить выход man -t.

1
ответ дан 7 August 2018 в 21:12

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

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

1
ответ дан 10 August 2018 в 09:30

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

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

1
ответ дан 13 August 2018 в 12:59

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

На вашем сервере CUPS (например, http://localhost:631) создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюры. Назовем новый принтер «Print-booklet». Измените /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью *cupsFilter: *cupsPreFilter: "application/pdf 0 booklettopdf". (Этот шаг немного беспорядочен, возможно, это может быть сделано более чистым способом.) В /usr/lib/cups/filter создайте скрипт booklettopdf (как root):
#!/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
Сделайте исполняемый файл сценария: chmod +x booklettopdf. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 25 May 2018 в 19:54
  • 1
    В вашем скрипте, если вы используете /bin/bash, все после первой строки можно заменить следующим: cat "${6:-/dev/stdin}" | pdfbook --scale 0.97 --outfile /dev/stdout. Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине у меня возникли проблемы с использованием pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, скажем, evince. – krlmlr 2 March 2013 в 05:55

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

На вашем сервере CUPS (например, http://localhost:631) создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюры. Назовем новый принтер «Print-booklet». Измените /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью *cupsFilter: *cupsPreFilter: "application/pdf 0 booklettopdf". (Этот шаг немного беспорядочен, возможно, это может быть сделано более чистым способом.) В /usr/lib/cups/filter создайте скрипт booklettopdf (как root): #!/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 Сделайте исполняемый файл сценария: chmod +x booklettopdf. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 25 July 2018 в 21:36
  • 1
    В вашем скрипте, если вы используете /bin/bash, все после первой строки можно заменить следующим: cat "${6:-/dev/stdin}" | pdfbook --scale 0.97 --outfile /dev/stdout. Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине у меня возникли проблемы с использованием pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, скажем, evince. – krlmlr 2 March 2013 в 05:55

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

На вашем сервере CUPS (например, http://localhost:631) создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюры. Назовем новый принтер «Print-booklet». Измените /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью *cupsFilter: *cupsPreFilter: "application/pdf 0 booklettopdf". (Этот шаг немного беспорядочен, возможно, это может быть сделано более чистым способом.) В /usr/lib/cups/filter создайте скрипт booklettopdf (как root): #!/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 Сделайте исполняемый файл сценария: chmod +x booklettopdf. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 2 August 2018 в 03:13
  • 1
    В вашем скрипте, если вы используете /bin/bash, все после первой строки можно заменить следующим: cat "${6:-/dev/stdin}" | pdfbook --scale 0.97 --outfile /dev/stdout. Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине у меня возникли проблемы с использованием pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, скажем, evince. – krlmlr 2 March 2013 в 05:55

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

На вашем сервере CUPS (например, http://localhost:631) создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюры. Назовем новый принтер «Print-booklet». Измените /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью *cupsFilter: *cupsPreFilter: "application/pdf 0 booklettopdf". (Этот шаг немного беспорядочен, возможно, это может быть сделано более чистым способом.) В /usr/lib/cups/filter создайте скрипт booklettopdf (как root): #!/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 Сделайте исполняемый файл сценария: chmod +x booklettopdf. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 4 August 2018 в 19:08
  • 1
    В вашем скрипте, если вы используете /bin/bash, все после первой строки можно заменить следующим: cat "${6:-/dev/stdin}" | pdfbook --scale 0.97 --outfile /dev/stdout. Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине у меня возникли проблемы с использованием pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, скажем, evince. – krlmlr 2 March 2013 в 05:55

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

На вашем сервере CUPS (например, http://localhost:631) создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюры. Назовем новый принтер «Print-booklet». Измените /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью *cupsFilter: *cupsPreFilter: "application/pdf 0 booklettopdf". (Этот шаг немного беспорядочен, возможно, это может быть сделано более чистым способом.) В /usr/lib/cups/filter создайте скрипт booklettopdf (как root): #!/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 Сделайте исполняемый файл сценария: chmod +x booklettopdf. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 6 August 2018 в 03:25
  • 1
    В вашем скрипте, если вы используете /bin/bash, все после первой строки можно заменить следующим: cat "${6:-/dev/stdin}" | pdfbook --scale 0.97 --outfile /dev/stdout. Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине у меня возникли проблемы с использованием pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, скажем, evince. – krlmlr 2 March 2013 в 05:55

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

На вашем сервере CUPS (например, http://localhost:631) создайте копию конфигурации для принтера, для которого вы хотите включить печать брошюры. Назовем новый принтер «Print-booklet». Измените /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью *cupsFilter: *cupsPreFilter: "application/pdf 0 booklettopdf". (Этот шаг немного беспорядочен, возможно, это может быть сделано более чистым способом.) В /usr/lib/cups/filter создайте скрипт booklettopdf (как root): #!/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 Сделайте исполняемый файл сценария: chmod +x booklettopdf. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 7 August 2018 в 21:12
  • 1
    В вашем скрипте, если вы используете /bin/bash, все после первой строки можно заменить следующим: cat "${6:-/dev/stdin}" | pdfbook --scale 0.97 --outfile /dev/stdout. Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине у меня возникли проблемы с использованием pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, скажем, evince. – krlmlr 2 March 2013 в 05:55

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

  1. На вашем сервере CUPS (например, http: // localhost: 631 ) создайте копию конфигурации для принтера вы хотите включить печать брошюры. Давайте назовем новый принтер «Print-booklet».
  2. Отредактируйте /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью * cupsFilter : * cupsPreFilter: «application / pdf 0 booklettopdf» .
  3. (Этот шаг является бит беспорядочный, возможно, это может быть сделано более чистым способом.) В / usr / lib / cups / filter создайте скрипт booklettopdf (как root): #! / bin / sh для e в "$ @"; do echo DEBUG: $ 0: $ e 1 & amp; 2; done TMPFILE = $ (mktemp) echo DEBUG: $ 0: $ TMPFILE 1 & gt; & amp; 2, если ["$ 6" = ""]; затем кот еще кошка «$ 6» fi | pdfbook --scale 0.97 --outfile $ TMPFILE & amp; & amp; & amp; cat $ TMPFILE & amp; & amp; rm $ TMPFILE
  4. Сделайте исполняемый файл сценария: chmod + x booklettopdf .
  5. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 10 August 2018 в 09:30

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

  1. На вашем сервере CUPS (например, http: // localhost: 631 ) создайте копию конфигурации для принтера вы хотите включить печать брошюры. Давайте назовем новый принтер «Print-booklet».
  2. Отредактируйте /etc/cups/ppd/Print-booklet.ppd как root. Добавьте следующую строку, например, перед записью * cupsFilter : * cupsPreFilter: «application / pdf 0 booklettopdf» .
  3. (Этот шаг является бит беспорядочный, возможно, это может быть сделано более чистым способом.) В / usr / lib / cups / filter создайте скрипт booklettopdf (как root): #! / bin / sh для e в "$ @"; do echo DEBUG: $ 0: $ e 1 & amp; 2; done TMPFILE = $ (mktemp) echo DEBUG: $ 0: $ TMPFILE 1 & gt; & amp; 2, если ["$ 6" = ""]; затем кот еще кошка «$ 6» fi | pdfbook --scale 0.97 --outfile $ TMPFILE & amp; & amp; & amp; cat $ TMPFILE & amp; & amp; rm $ TMPFILE
  4. Сделайте исполняемый файл сценария: chmod + x booklettopdf .
  5. Распечатайте тестовую страницу.

Теперь, когда вы хотите распечатать в формате буклета, выберите новый принтер «Бумага для печати».

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

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

2
ответ дан 13 August 2018 в 12:59
  • 1
    В вашем скрипте, если вы используете / bin / bash , все после первой строки можно заменить следующим: cat & quot; $ {6: - / dev / stdin} & quot; | pdfbook --scale 0.97 --outfile / dev / stdout . Тогда вам не нужен временный файл. – Stefan Seidel 2 March 2013 в 04:58
  • 2
    @StefanSeidel: По какой-то причине мне не удалось использовать pdfbook для печати на stdout в контексте фильтра. Однако не помню деталей. Ваш код работает на вас? - Обратите внимание, что печать тестовой страницы отличается от печати, например, evince . – krlmlr 2 March 2013 в 05:55

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

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