Печатаем книги-брошюры в *nix

    Наверняка у многих из тех, кто читает этот пост, возникало желание распечатать некую книгу на бумаге и сделать это так, чтобы книга была по удобству близка к типографской. Конечно, в роли книги может выступать как какой-нибудь pdf-документ, так и какая-нибудь tex'овая научная работа.

    Ну а что же такое брошюра? По сути — это такая тетрадка, каждый лист которой является половиной большого листа, а общее количество страниц легко рассчитать по формуле <кол-во «больших» листов>*2<сколько «маленьких листов» на «большом»>*2<два оборота у листа=2 страницы>.

    Конспект по матану, каталог avon — это брошюра. Большая часть книг представляет из себя несколько брошюр, наверняка вы встречались с ситуацией, когда из старых потрёпанных книг выпадает одновременно несколько страниц, сложенных «в тетрадку»; так же часто такие тетрадки специально вырываются из учебников, чтобы использовать в качестве шпаргалок, но это не тема нашей беседы.

    В этой статье я постараюсь объяснить как просто и быстро распечатать любой документ в виде брошюры.


    Получаем PostScript документ


    Итак, у нас имеется некий документ. Первым делом, откройте его в каком-нибудь просмотрщике (н-р в evince) и "распечатайте в файл". На выходе мы должны получить PostScript файл, с которым мы и будем далее работать.
    Назовём этот файл, например, book.ps.

    Обрабатываем PostScript файл


    Итак, определимся с целью: на выходе мы должны получить файл, распечатав который, мы получим брошюру.

    1)psbook book.ps 1.ps
    Эта команда дополнит документ пустыми страницами в нужных местах для того, чтобы количество страниц стало кратным 4м.

    2)Теперь нам необходимо «склеить» каждые 2 страницы A4 в одну страницу A4, иными словами, мы должны получить документ, на каждой странице которого будет по 2 страницы A5.
    psnup -la4 -2 1.ps > result.ps

    3)Теперь удалим рудементарный файл 1.ps
    rm 1.ps
    и приступим к печати получившейся брошюры

    В качестве альтернативы, все три шага можно объеденить в один, используя конвейры: psbook book.ps | psnup -la4 -2 > result.ps

    Распечатываем брошюру


    Самый интересный момент, с которым мне пришлось повозиться из-за моей природной лени.

    1) Откройте получившийся файл result.ps в просмотрщике и распечатайте нечётные страницы.
    2) Теперь пересортируйте листы так, чтобы первая страница стала последней, а последняя — угадайте — первой. Вставьте отсортированные листы в принтер так, чтобы печать проводилась с обратной стороны конца распечатанной страницы.
    На моём HP Photosmart последний шаг делается простой вставкой страниц «как есть», то есть после сортировки, не переворачивая страницы, вставляем в лоток листы так, чтобы верх распечатанных до этого страниц был спереди и видим.
    3) А теперь распечатайте чётные страницы.
    4)После распечатки достаточно сложить распечатанные страницы слева направо

    Hints

    1) Не следует использовать «обратный порядок печати» в совокупности с указанием чётности/нечётности страниц, с целью пропустить шаг с пересортировкой страниц. Это не допустит неверного порядка распечатки и неверных страниц для распечатки.
    2)Если бумага — тонкая, то следует перед первой печатью «перелестать» листы. Пересортировка перед второй печатью (см. пункт выше) так же поможет не допустить слипания страниц.

    Скрепление страниц


    Нам потребуется иголка/шило, скобки от степлера, ручка/карандаш, 2 скрепки.
    1)Распечатанные листы укладываем ровной стопкой, закрепляем верхний левый и правый нижний углы скрепками, теперь складываем листы слева направо.
    2)В центре намечаем 2 точки: на сантиметр ниже верха и на сантиметр выше низа. Берём скобку и прикладываем в первой точке верхом, отмечаем точку в месте, где скобка кончается. Аналогично прикладываем к нижней точке низом скобки и ставим точку в месте, где скобка начинается.
    Давайте опустим, что скобки не имеют ни ничала ни конца :)
    3)В намеченных точках делаем шилом/иголкой дырки и вставляем в них скобки, закрывая их с внутренней стороны пальцем/чем нибудь твёрдым.
    4)Убираем скрепки, радуемся :)

    Я не художник, но попытался


    Мои художественные способности ниже плинтуса, но я таки попытался руками на бумаге зарисовать как нужно ложить бумагу и расписал основные шаги: img148.imageshack.us/img148/4875/brove.jpg

    Ссылки по теме


    *) Использование psutils — пакета для работы с PostScript файлами
    *) Making booklets with psbook and psnup (гугло-кеш)

    P.S.Отлично понимаю что статья описывает достаточно тривиальную задачу, но я уверен тем, кто хочет распечатать статью брошюркой, не сделав при этом 3-4 «корявые» распечатки, она поможет.
    P.S.S.Метался между блогом «принтеры» и «Linux для всех», перенёс в последний, думаю, так правильней.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 64
    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Да, по нему тоже вполне можно печатать, но в результате получается не брошюра, а именно «2 страницы на лист», такие распечатки стоит скреплять где-нибудь в левом верхнем углу степлером. Многие распечатки у меня именно в таком виде, но брошюрка всё-же приятнее как минимум тем, что её можно листать слево направо, а не переворачивая страницу и потом перекладывая её назад :)

        К слову, благодаря именно этому посту набрёл на описание psbook.
        • НЛО прилетело и опубликовало эту надпись здесь
        +1
        Спасибо. А то под Win пользовался удобным макросом для Word. А для *nix способа не знал.
          0
          Подробнее про макрос для Word, пожалуйста.
            +1
            Макрос называется «Верстка Текста Книжкой 5.11». Вот ссылка на сайт автора. Работает в Word97/2000/XP/2003 (в 2007 не проверял). Много настроек возможность печати нескольких «тетрадок» для последующего переплета.
              0
              А в 2007 есть разметка страницы с зеркальными полями для книжек.
          0
          для винды кстати полно GUI-решений для этого (самые лучшие — fineprint и preprinter), а под линух что-то ничего удобного нет :(
            +2
            Реализовать гуй (юзабельный) под это — часа 2 работы, с другой стороны если всё итак делается проще, зачем делать гуй? Хотя да, он поможет сделать «одним кликом», но тогда человек его использующий несовсем будет понимать что он делает :)
              –1
              Под Линукс есть ТеХ. Для печати научной и околонаучной литературы (с формулами) ничего мощнее ещё не придумали.
                0
                Причем здесь TeX?
                Как Вы с его помощью брошюру из PDF или любого текстового документа распечатаете??
              • НЛО прилетело и опубликовало эту надпись здесь
                  0
                  да, но того стоят, пока на линух не перешел — активно пользовался ими.
                  А под линух ни бесплатных, ни платных аналогов нет :(
                +2
                на 2 шаге кстати опечатка вроде, должно быть так наверное:
                psnup -la4 -2 1.ps > result.ps
                  0
                  Правда, спасибо, исправляю.
                  0
                  чет у меня правые поля нулевые получаются. буквы впритык к странице
                    0
                    Если в исходном файле были такие поля, то и на итоговом они же и будут, стоит учитывать, ч то поля уменьшаются как минимум в 2 раза.
                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      по-моему, проще сделать pdf-ку, открыть с помощью acrobat reader, и уже в нем есть функция печати брошюры… естественно, работает как в windows, так и в linux… пользуюсь этой возможностью уже давно.
                        +1
                        Ничем не проще — перегон в ps доступен из большего кол-ва приложений (причина-ниже), да и существует аналогичный набор скриптов для pdf.
                        Тут дело вкуса, но опять таки, если хочется всё по максимуму автоматизировать, то взяв lpr в руки + разбив файл result.ps на два — с чётными и нечётными страницами (psutils это позволяет), то можно написать простенький скриптик, который вообще говоря будет работать без участия каких-либо gui-утилит:
                        1)печатаем нечётные
                        2)издаём сигнал пиииии, ждём N сек(или ждём нажатия на кнопочку) /в этот момент человек быстренько перекладывает листочки/
                        3)печатаем чётные

                        Вообще говоря, ps — более подходящий формат для подготовки документов для печати, а pdf — это такой «проапгрейденный» ps, так что пользы _в данном аспекте_ от последнего не много, в конечном итоге, документ, отправленный на печать, всё равно будет сконвертирован в ps…

                        Хотя ваш способ тоже имеет право быть и является более простым, хотя и заставляет использовать некий коммерческий (я не сказал платный) софт.
                        P.S.У многих linux-пользователей акробат не стоит, у меня, например, не стоит.
                          0
                          > Хотя ваш способ тоже имеет право быть и является более простым, хотя и заставляет использовать некий
                          > коммерческий (я не сказал платный) софт.

                          не является ли это (случайно) доказательством превосходства коммерческого софта в данном случае? ;-)

                          > P.S.У многих linux-пользователей акробат не стоит, у меня, например, не стоит.

                          Поставьте? По теме — я использую вот это: web.mac.com/vogelbusch/Site/Programs/Programs.html — работает ровно в один шаг из абсолютно любой программы которая умеет печатать ;-)
                            0
                            Зачем мне ставить софт, без которого я отлично могу жить, не ущемляя себя в правах ?)
                              0
                              и возможностях
                        0
                        В OpenOffice при печати документа присутствует такая опция — Печатать брошюрой. Регулярно пользуюсь.
                          0
                          Спасибо, полезно +
                          • НЛО прилетело и опубликовало эту надпись здесь
                              –3
                              тормозной опенофис к сожалению.
                              MS Office под Wine намного комфортнее летает :(
                              • НЛО прилетело и опубликовало эту надпись здесь
                                  0
                                  а Вы сами пробовали?
                                  к сожалению, и на современных процессорах очень заметно. и не только по времени загрузки.
                                  • НЛО прилетело и опубликовало эту надпись здесь
                                      0
                                      OpenOffice написан на С++. На java там только интерфейс к плагинам
                                  +2
                                  Честно говоря давно уже не понимаю людей, которые говорят «тормозной опенофис» — на двух разных машинках (на одной вообще 256 мб оперативки), после запуска, опенофис тормозит только при работе с большими doc'овскими документами, наполненными потоком сознания огромными картинками, уменьшенными внутри самого офиса (всё равно что в аватаре на твиттере отдавался полноразмерный файл, который уменьшался при показе атрибутами тега img).

                                  Может это я такой особенный, но проблем с производительностью ОО не испытаваю, а вот последний билд явы меня разочаровывает — открыв нетбинс/эклипс и опеноффис можно угадывать кто из двух упадёт… На предыдущем билде явы такого замечено не было…
                                    0
                                    ну Вы попробуйте мс офис под вайном таки запустить )
                                    я сам в шоке был )
                                    Проц AMD Turion x64 1.8Ghz, память 4гига…
                                    Разница в работе очень ощутимая, и при запуске, и в процессе работы.
                                      0
                                      Пару лет назад пытался 2003 запустить, при запуске выдавал ошибку и падал.
                                      С тех пор у использую только ОО и за эти 2 года желание ставить m$ office пропало, уж извините :)
                                        0
                                        ну сейчас wine допилили уже немного, 2007й нормально работает…
                                        2010й пока не ставится %)
                                        У меня в опенофисе кстати часто при открытии документа, сверстанного в мс оффисе (даже в открытом вроде бы формате docx), ползет форматирование (листов становится больше чем было, ну и так по мелочам еще проблемы бывают), так что все равно для совместимости приходится мс офис держать еще :(
                                          +1
                                          пытался поразбираться в этом вашем открытом формате, odf хотябы читаем, жда и понятно что разработчки oo явно не бросились реализовывать *x форматы, сделали «чтобы было», ровно как и m$ сделало с odf, или я не прав насчёт последнего?)
                                          Просто я рассматриваю OO не как «аналог» майкрософтовского офиса, а как вполне себе нормальный продукт, который идёт своей дорогой и считаю, что реализация работы с «неродными» форматами — не более чем приятная мелочь.

                                          P.S.Давайте не будем ударяться в холивары, ок?)
                                          • НЛО прилетело и опубликовало эту надпись здесь
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Не понимаю к чему вы это, разводить холивар из-за одной строчки-примера? нененене :)
                                    +1
                                    Давно делаю книжки для себя по примерно такой технологии — with-love-from-siberia.blogspot.com/2009/05/blog-post.html. Кстати, 3-я миниатюра из 10 показывает примерные настройки одного из принтеров для создания брошюр. Именно брошюр. Полагаю, что в ваших принтерах это тоже можно настроить.
                                      0
                                      Спасибо, очень наглядно.
                                        0
                                        а это разве не виндовый драйвер там?
                                        под CUPS-ом ничего похожего и близко нет…
                                          0
                                          Собственно замените пункт с распечатыванием на первые части этой статьи и всё встанет на свои места
                                            0
                                            По-Вашему — это очень удобно переключаться из GUI-приложения в консоль чтобы собрать и распечатать брошюру?
                                              0
                                              я выше описал вариант, когда вообще ниодно gui приложение не нужно. Лично я не имею никаких предубеждений относительно миксов gui/консоль — если есть удобные инструменты, то почему бы их не использовать по-максимуму?

                                              Я вот тут рельсы учу и смотрю скринкасты: автор постоянно переходит из консоли в textMate и меня это никак не
                                                0
                                                … никак не тревожит, хотя конечно это пример нескольо отличается от того о чём мы говорим, но думаю суть понятна
                                                  0
                                                  ну далеко не все в TeX верстают, и далеко не всегда это удобно и оправдано )
                                          0
                                          Для PDF есть еще такой сайт bookletcreator.com — платформонезависимый вариант :)
                                            0
                                            К сожалению, оффлайновая версия очень даже платформозависима… хоть и дот нет
                                            0
                                            Подскажите, существует ли у данного способа возможность разбить большую брошюру на подброшюры листа по четыре напрмер. Т.к. сгибать и читать брошюру листов в двести ой как неудобно. К слову сказать такая функция присутствует в Fineprint.
                                            И ещё: man psnup говорит, что формат бумаги задаёт опция -p, а не -l.
                                            Тем не менее пасибо за статью!
                                              0
                                              1)Цитата из того же мана:
                                              «The -l option should be used for pages which are in landscape orientation (rotated 90 degrees anticlockwise). The -r option should be used for pages which are in seascape orientation (rotated 90 degrees clockwise)»

                                              А теперь пару римеров для прояснения ситуации
                                              psnup -la4 -2 1.ps > rx.ps
                                              psnup -l -pa4 -2 1.ps > rx2.ps

                                              rx.ps и rx2.ps будут отличаться друг от друга на десяток байт, но «содержимое» будет 1:1, т.о.
                                              psnup -la4 -2 1.ps
                                              в нашем случае просто короче :)

                                              2)
                                              >Подскажите, существует ли у данного способа возможность разбить большую брошюру на подброшюры листа по четыре напрмер

                                              Да, конечно: необходимо разбить исходный документ на несколько частей, а потом с каждой проделать то, что описано в статье. В разбивании поможет psselect.

                                              Про разбивку достаточно хорошо описано здесь (на русском): www.opennet.ru/base/sys/psutils.txt.html

                                                0
                                                1) Опцию -la4 у меня не принимает (Ubuntu 9.10, psutil из репов):
                                                ~$ psnup -la4 -2 1.ps > result.ps
                                                psnup: invalid option — 'a'
                                                psnup release 1 patchlevel 17

                                                2) Если я правильно понял, то мне придётся для документа из 200 страниц при восьмистраничных тетрадках запустить psselect 50 раз или написать скрипт. Потом все эти файлы тетрадок собрать в один файл или распечатывать по отдельности. Не слишком удобно получается.

                                                  0
                                                  1)Странно, у меня принимает, ну значит пишите так как я выше в примере написал :)

                                                  2)А как вы хотели ?) вы вполне можете упростить себе работу:
                                                  разбейте на части
                                                  в каждой части сделайте всё по статье
                                                  разбейте каждую часть на чётные и нечётные страницы
                                                  склейте все чётные, аналогично нечётные.{*тут нужно подумать с порядком, возможно придётся где-то реверс сделать*}
                                                  распечатайте нечётные, переверните, распечатайте чётные. Осталос только разбить получившееся добро на части и собрать в брошюрки.
                                                    0
                                                    *т.е если подумать, то можно свести всё дело также к 2м печатям
                                                      0
                                                      Отлично! Мы не ищем лёгких путей :)
                                                      Спасибо!
                                                        0
                                                        :)Ну это только звучит страшно %) А вообще, когда я сам разбирался, натыкался на набор скриптов, в которых уже реализовано всё что возможно для печати буклетов — погуглите и думаю вы тоже это найдёте)
                                                      0
                                                      Можно 50 раз запускать, а можно воспользоваться ключом «-s» для psbook. Например, чтобы делать тетрадки по 4 листа (16 страниц), можно задать такую команду:

                                                      psbook -s16 in.ps out.ps

                                                      При необходимости пустые страницы автоматически будут добавлены в конец последней тетрадки.
                                                      0
                                                      psnup -c -4 original.ps | psbook | psnup -l -pa4 -b27 -m10 -d -2 > out.ps

                                                      Проверено на Ubuntu 7.10… 9.10
                                                      параметры -m10 и -b27 подобраны вручную для полей между страницами
                                                      0
                                                      Можно разбивать при помощи ключа «-s» утилиты psbook. См. мой комментарий, который я в этой ветке не туда по ошибке влепил.
                                                      0
                                                      Для сшивания удобно использовать дырокол и нейлоновые стяжки.

                                                        0
                                                        Надо же, как все просто! Линукс — оно и правда… для всех )))
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                            0
                                                            Я для себя написал скрипт, переупорядочивающий страницы PDF-документа для печати. Если вдруг кому понадобится — broshure.py. Написан на Python, почти не тестировался (пользовался один раз, самому давно ничего не приходилось печатать), использует программку stapler (наверняка можно было заюзать более распространённый pdftk). Использование коротко описано в комментариях перед кодом.
                                                              0
                                                              Возможно уже проскакивало в коментариях, но осмелюсь заметить. По линку на описание работы утилит набрел на правильную строку конвертации.
                                                              Если пользоватся командой
                                                              psbook book.ps | psnup -la4 -2 > result.ps
                                                              на выходе получаем документ у которого верхний колонтитул больше нижнего, и распечатать как брошуру невозможно из-за смещения.
                                                              В статье на опеннете приводится другой вариант:
                                                              psbook book.ps | psnup -l -pa4 -2 > result.ps
                                                              В результате получаем одинаковые верхний и нижний колонтитул. Брошура печатаем без смещения.

                                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                              Самое читаемое