MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
psutils и печать буклета
12.06.2012
15:05
Раздел: linux - печать

psutils и печать буклета

« : 07 Октябрь 2009, 18:49:46 »

Однажды, когда мне потребовалось распечатать документ в виде буклета, вспомнился FinePrint из периода вендоюзерства. По понятным причинам, использовать сие платное (непонятно, правда, за что) чудо не стал. Таковых аналогов нет, на форуме несколько раз вопрошающие поднимали тему. Покопавшись в http://localhost:631/help/ и psutils, пришел к вот такому решению проблемы.


Дано: foo.pdf

Надо: буклет из листов А4

Решение:

1) устанавливаем poppler-utils и psutils

Код: [Выделить]

sudo aptitude install poppler-utils psutils

2)

Код: [Выделить]

pdftops foo.pdf - | psbook | psnup -l -pa4 -2 | psselect -o -r | lpr

3) переворачиваем "вверх дном" распечатанную стопку листов и вставляем вновь во входной лоток

4)

Код: [Выделить]

pdftops foo.pdf - | psbook | psnup -l -pa4 -2 | psselect -e -r | lpr

5) для счастливых обладателей принтера с дуплексом все упрощается до одного действия

Код: [Выделить]

pdftops foo.pdf - | psbook | psnup -l -pa4 -2 | lpr -o sides=two-sided-short-edge


Если принтеров в системе больше одного, необходимо использовать вместо lpr

Код: [Выделить]

lp -d {имя_принтера} -o sides=two-sided-short-edge

Список доступных принтеров можно получить с помощью

Код: [Выделить]

lpstat -v


Поясню, что мы тут творим.

pdftops - понятно, конвертит pdf в PostScript, "-" - вывод в stdout

далее - psbook - добавляет в документ пустые листы, чтобы общее число страниц стало кратным четырём и раскладывает их для печати буклета.

psnup - размещает на листе А4 2 страницы и формирует альбомный лист.

psselect - выбираем четные и нечетные листы, причем выводим их в реверсивном порядке - чтобы последний лист был напечатан первым, необходимо для того, чтобы после распечатки стопки не перебирать страницы вручную.

lpr - собственно, печатаем.


Все это мероприятие можно обернуть в гуй, но лично мне по душе использовать nautilus-script


Код: [Выделить]

#!/bin/sh

pdftops $1 - | psbook | psnup -l -pa4 -2 | lpr -o sides=two-sided-short-edge;

← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования