Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: psutils и печать буклета  (Прочитано 3452 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zilog82

  • Автор темы
  • Активист
  • *
  • Сообщений: 420
  • Hello, World!!!
    • Просмотр профиля
psutils и печать буклета
« : 07 Октября 2009, 16:49:46 »
Однажды, когда мне потребовалось распечатать документ в виде буклета, вспомнился FinePrint из периода вендоюзерства. По понятным причинам, использовать сие платное (непонятно, правда, за что) чудо не стал. Таковых аналогов нет, на форуме несколько раз вопрошающие поднимали тему.  Покопавшись в http://localhost:631/help/ и psutils, пришел к вот такому решению проблемы.

Дано: foo.pdf
Надо: буклет из листов А4
Решение:
1) устанавливаем poppler-utils и psutils
sudo aptitude install poppler-utils psutils2) pdftops foo.pdf - | psbook | psnup -l -pa4 -2 | psselect -o -r | lpr3) переворачиваем "вверх дном" распечатанную стопку листов и вставляем вновь во входной лоток
4) pdftops foo.pdf - | psbook | psnup -l -pa4 -2 | psselect -e -r | lpr5) для счастливых обладателей принтера с дуплексом все упрощается до одного действия
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;

Скрипт помещаем в ~/.gnome2/nautilus-scripts/ и делаем его исполняемым. Теперь с помощью правой кнопки делаем буклет из любой pdf-ки.
Естественно, если имеется уже готовый .ps файл, действие 2 выполнять не надо.

ЗЫ. Все же я воспользовался после этого FinPrint-ом, чтобы узнать кто работает быстрее. Итог - пдфка 3 МБ из 200 страниц обработалась psutils где-то за 2 секунды, FinePrint рожал минуты три...

 

Страница сгенерирована за 0.041 секунд. Запросов: 22.