Вашему вниманию предоставляется скрипт для печати ps-файлов в формате 'книжечки'. Для меня данная возможность является критической, так как печатаю очень много - до 500 страниц текста в месяц, а данный формат позволяет не только экономить на бумаге и порошке, но и уменьшает вес моего рюкзака.
Раньше для выполнения данной задачи я перезагружался в Win, пользовался программкой FinePrint, а потом перегружался ещё раз в свою любимую ОС. Настало время перемен! После 2-х часов использования Goolge'а, чтения документации и просмотра различных похожих скриптов, я всё-таки сумел написать что-то достаточно простое, работающее с моим устройством (Brother DCP-7010R). Надеюсь, найдутся люди которым данная программка пригодится.
Итак, сам скрипт;
#!/bin/bash
#
# printbook is small utility to duplex print a .ps
# files into A5 booklets.
#
# Tested in Brother DCP-7010R
#
# Copyright © 2007 by Alexey V Nikitin
#
if !((test -f /usr/bin/psbook) && (test -f /usr/bin/pstops)) ; then
echo -e "\nYou need to (re)install the 'psutils' package, " ;
echo -e "Try installing it with 'sudo apt-get install psutils'\n" ;
exit 62;
else
echo -e "psutils package found...\n";
fi;
if [ -z "$1" ] ; then
echo -e "\nUsage: `basename $0` filename.ps\n";
exit 64;
fi;
if [ -f "$1" ] ; then
echo -e "Script `basename $0` started...\n" ;
echo -e "Printing odd pages first...";
psbook $1 | psnup -l -pa4 -2 | psselect -r -o | kprinter;
echo -e "\nNow printing even pages...\n";
psbook $1 | psnup -l -pa4 -2 | psselect -r -e | kprinter;
echo -e "\nDone.\n";
else
echo -e "\nFile '$1' was not found. Program aborted\n";
exit 66;
fi;
exit 0;
Пояснения:
psbook добавляет, если необходимо, пустые страницы так, чтобы их количество стало кратным 4, а так же меняет их нумерацию для печати буклетом
psup размещает по 2 страницы на лист
psselect выбирает чётные/нечётные страницы, а также меняет порядок страниц на обратный (опция -r, необходимо для моего принтера)
kprinter непосредственно печатает.
Использовать так:
printbook path_to_ps_file.ps
Обратная связь приветствуется =)