Печать брошюр и книг с помощью psutils

On: 29 июня 2011 г.

Давно обходил вопрос о печати брошюр на дистрибутивах GNU/Linux. На Windows (и не только включая и тот самый GNU/Linux) существует прекрасный Adobe Reader, который собственно и решает проблему с печатью брошюр. Но вот без его установки и на линуксе добиться желаемого как то руки не поднимались. Да и печатал на старой работе через MS Windows. Потому когда поменял работу, а на лето брат презентовал мне МФУ Samsung SCX-4300 (да и драйвера между делом ставьте на Archlinux-е сразу из AUR иначе будут у вас проблемы с udev-ом) я задумался а не расширить ли мне круг моих познаний. Первые результаты поиска показали то что эта тема простая, но зачастую описана вскользь либо слишком объемно. Встречайте мой вариант этого простого рецепта.
Оригинал и более новую версию статьи Вы найдете здесь.

Получаем ps-файл (PostScript файл) из исходного документа (Статья и так получилась больше чем хотелось потому из разнообразия инструментов для этого подскажу только pdf2ps). Назовем его 1.ps.
Используем psbook для сортировки страниц по тетрадям. Ключ к psbook указывает на количество страниц в тетраде. Например если у Вас 18 страниц и Вы хотите тетради по 8 страниц то psbook отсортирует страницы для тетрадей и добавит пустые страницы для того что бы значение было кратно четырем. Это сделано для того что бы не нарушить размер тетради. psbook дополняет документ пустыми страницами до ближайшего большего числа которое кратно четырем.

$ psbook -s 8 1.ps 2.ps

Результатом выполнения этой команды станет файл 2.ps который будет содержать отсортированные страницы в тетради по 8 страниц.
Для печати брошюры или книги зачастую используются листы бумаги горизонтального расположения. Следующим шагом будет перенос отсортированных страниц по парно на листы горизонтального расположения с масштабированием. Для этого будем использовать psnup. Его параметры рассмотрим позже, а пока что пример:

$ psnup -2 -pa4 2.ps > 3.ps

Первый параметр этой утилиты это количество страниц исходного документа на странице результирующего файла. Второй параметр не обязателен потому что он указывает формат страниц результирующего файла, а по умолчанию это А4 для нашей локализации.
Для указания формата страниц входя файла можно использовать тот же ключ только с заглавной латинской буквой "п" (-Pa4). Допустимыми размерами (форматами) могут быть: a3, a4, a5, b5, letter, legal, tabloid, statement, executive, folio, quarto, 10x14. Если использовать ключ -l это будет означать вертикальное размещение листа.
На этом можно было бы и ставить точку, но в реальности не все так красиво. Полученные страницы вроде бы и отсортированы и расположены правильно, но если Вы пробовали использовать увеличение размера страниц при их расположении то результат мягко скажем удивит вас. В настройках локализации, как я говорил раньше указан определенный формат потому что бы Вы не делали физически размер страницы обрезается до этого формата. Для того что бы все таки "насладиться" большими форматами необходимо исходные документы перевести в другой формат с помощью psresize. Ее параметры идентичны с параметрами psnup (я имею введу указание формата страницы). Пример:

$ psresize -pa3 1.ps 11.ps

Преобразует любой формат страниц файла 1.ps в страницы формата А3. Я пробовал использовать psresize в конвейере, речь о котором пойдет позже, но у меня ничего не получилось. Просьба поправьте меня если у вас все работает нормально.
И так как и говорил ранее я составил конвейер для уменьшения количества промежуточных файлов и ради еще одного примера:

$ psbook -s8 1.ps | psnup -2 -p a4 2.ps > 3.ps

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

Думаю такая заметка не будет лишней: для печати брошюры состоящей из одной тетради необходимо утилите psbook указать количество страниц вашего документа если они кратны четырем либо число большое вашего количества страниц но кратное четырем.


В написании статьи материал был взят с posix.ru

На создание статьи меня подтолкнула вот такая статья

Спасибо авторам исходных материалов.

1 коммент. on "Печать брошюр и книг с помощью psutils"

Анонимный комментирует...

Спасибо! Всё получилось :)
Только, наверное, в последнем конвейере "2.ps" - лишнее; у меня вот так работает:
psbook -s8 input.ps | psnup -2 -pa4 > output.ps