Макрос печати документов в виде брошюры или книги
Дождались?!
Погоне за названиями
с круглыми цифрами
посвящается…
|
Данный макрос предназначен
для печати буклетов (методических пособий, технической документации) из
MS Word 2000. Печать производится в два прохода: сначала
обратная сторона, затем лицевая. Страницы автоматически компонуются в нужном
порядке на листе и в документе в целом. При необходимости производится
автоматическое масштабирование A4–A5 (т.е. можете распечатывать
документы без изменения формата). Вам нужно только вставить пачку бумаги в
принтер, запустить макрос, затем, после печати одной стороны, вставить эту же
пачку опять в принтер для печати другой стороны. Затем согнуть и сшить. Никакой
перекомпоновки не требуется. Нет ограничений на использование таблиц,
встроенных объектов, методов привязки объектов, размер листа. При браке печати
есть возможность повторно распечатать отдельные страницы (диапазон). Для печати
используется новая возможность MS Word 2000 масштабирования
документов для печати нескольких страниц на одной. Ниже рассмотрены различные
методы печати брошюр, рекомендации по
установке макроса,
использованию и
печати.
Варианты печати брошюр из MS Office
- Составление
таблиц и перенос постранично текста в ячейки таблицы. Этот метод может быть
эффективным при печати только текста без таблиц, графики, привязанной к
листу. Недостатки: для внесения исправлений необходимо редактировать
исходный текст, а затем опять генерировать таблицу. Могут возникнуть проблемы с
графическими объектами, колонтитулами и нумерацией страниц.
- Метод форматирования
страницы. Создаём документ с альбомным форматированием страницы, задаём левый
отступ, включающий в себя собственно левый отступ на одной странице A5 и
ширину страницы A5, т.е. делим альбомную страницу A4
пополам и набираем документ в правой половине.
Затем печатаем все нечётные
страницы до середины документа, переворачиваем листы, печатаем все нечётные
страницы с середины до конца документа. Изменяем левый и правый отступ таким
образом, что пустая страница располагается в правой части листа. Печатаем
сначала вторую половину чётных страниц на лицевой стороне, затем первую
половину чётных страниц на обратной.
Печать чётных страниц производится при включённой опции «печать в
обратном порядке». Сохраняется нумерация страниц, графические объекты,
колонтитулы и номера страниц. Недостатки: Печать в четыре прохода может
вызвать неудобства при компоновке бумаги – чем больше проходов, тем больше
вероятность ошибки. При создании документа необходимо следить за тем, что бы
графические элементы имели привязку к колонке, а не к странице, иначе будет
нарушено расположение текста при изменении левого и правого полей на листе.
- Для печати брошюры можно использовать программы сторонних разработчиков,
например ClickBook фирмы
BlueSquirrel. Данная программа
устанавливается как драйвер принтера и перехватывает вывод на печать, компонует
страницы, масштабирует их и передаёт далее драйверу принтера. Достоинства:
т.к. перехватывается обращение к драйверу принтера, печатать можно из любых
приложений Windows. Присутствует функция предварительного просмотра.
Большой набор предопределённых параметров компоновки брошюр.
Недостатки: эту программу нужно
найти, затем купить через интернет… У неё только английский интерфейс. Пробная
версия не годится для нормальной печати, т.к. печатает также свою информацию. (см.
также http://fineprint.chat.ru/ и
http://www.zeno.com/Products/SuperPrint/Default.asp)
- Очень
хороший модуль масштабирования и компоновки листов при печати встроен в драйвер
для Windows 9x широкого цветного струйного
принтера Hewlett Packard DeskJet 1120C.
Печатает всё. В автоматическом режиме. Отличные подсказки, анимация,
предварительный просмотр, хорошая локализация… Очень похоже на ClickBook,
только доведено до ума,
локализовано и бессбойно (вероятно, из-за жесткой привязки к принтеру и
драйверу). Мне подсказывают, что аналогичной возможностью обладает драйвер для
Windows 9x лазерного принтера фирмы Minolta.
Недостатки: нужно купить принтер :). Кроме того, если замнётся
лист или пользователь вставит бумагу задом наперед при печати второй стороны –
долго будете напрягать воображение для печати ТОЛЬКО испорченных листов.
- Можно использовать MS Office 2000 и макрос, который
описывает данный документ. Вы набираете документ в привычном для вас виде, с
картинками, таблицами, колонтитулами и номерами страниц, привязкой объектов к
странице или колонке. Затем макрос, используя новую функцию MS Word
2000 масштабирования при печати, создаёт комбинации страниц
и посылает их на печать. Масштабирование позволяет выводить на печать как листы
формата A5, так и листы формата A4, т.е. вам не придётся
переделывать готовые документы. Печать происходит в два прохода – сначала
тыльная сторона, затем лицевая. Вам остаётся только согнуть и сшить полученную
брошюру (если она состоит из нескольких блоков, то вам придётся сгибать и
сшивать листы сначала в каждом блоке, затем сшить/склеить блоки вместе).
Недостатки:
количество страниц должно быть кратным четырём. Это обусловлено тем, что на
каждый лист размещается четыре страницы,
причём одновременно берутся страницы,
как с начала, так и с конца документа. Второе ограничение – для поддержки
печати выборочных страниц введена компоновка из списка страниц, что потребовало
создание внутреннего списка номеров, отсюда ограничение – номер первой
страницы должен быть больше нуля, а остальная нумерация страниц во всех
разделах должна быть непрерывной, что собственно, соответствует большинству
документов. Нет режима предварительного просмотра
(в драйвера последних версий
производители помещают специальную
опцию – предварительный просмотр
перед печатью. Просмотрите внимательно
настройки драйвера Вашего принтера,
вероятно, что недостаток макроса будет
компенсирован возможностями драйвера). И главная проблема – ошибки
MS Word (драйвера, Windows)
при масштабировании. Были опробованы Windows 98 и Windows
NT/2000, принтеры как матричный (Epson LQ 1070),
так и струйный (HP DJ 970Cxi) – в каждом случае
наблюдались искажения документа при печати: буквы «плавали» в строке,
подчеркивание, формулы и жирный курсив «падали» на строку ниже. Для
тестирования своей системы/драйвера проведите следующий эксперимент (без
участия макроса): возьмите готовый документ в формате А4, вызовите операцию
печати (Файл/Печать), в диалоге в строке «Страницы/номера:»
укажите через запятую номера любых двух страниц документа, в списке
«Масштаб/число страниц на листе:» выберите «2 страницы», при этом в
настройках принтера должен быть указан формат бумаги А4. Напечатайте. Если
печать прошла без искажений – можете смело использовать макрос для печати любых
документов (А4 и А5) в виде брошюры, если искажения есть, то Вам остаётся лишь
ожидать очередные сервис паки для MS Windows/MS Office/драйвера принтера.
При ручном масштабировании (или создании
нового документа) в формат А5 с
последующей печатью, подобных «глюков»
замечено не было. (v1.2) Эта проблема
описана в технической библиотеке (WD2000:
Using Pages Per Sheet Prints Incorrect Paper Size) на сервере
Microsoft. Решается заданием по умолчанию
одинакового размера листа как в
редакторе, так и в настройках драйвера
принтера. См. также Q245025 - OFF2000 How to Obtain and Install the Microsoft Office 2000 SR-1-SR-1a Update,
Q245021 - OFF2000 List of Fixed Problems in Microsoft Office 2000 Service Release 1-1a (SR-1-SR-1a),
Q276257 - OFF2000 List of Issues Fixed in Office 2000 Service Pack 2.
Для установки макроса скопируйте шаблон Booklet2000.dot
в папку C:\Program Files\Microsoft Office\Office\Startup\
Замечание: в Windows NT и Windows 2000
при установке в раздел с файловой системой NTFS Вы
должны обладать правами администратора.
Наличие шаблона с
макросом можно персонализировать, если использовать путь размещения шаблона
автозагрузки пользователя.
В однопользовательском режиме Windows 9x:
C:\WINDOWS\Application Data\Microsoft\Word\STARTUP
В многопользовательском режиме Windows 9x:
C:\WINDOWS\Profiles\ Имя Пользователя\Application Data\Microsoft\Word\STARTUP
В Windows NT:
C:\WINNT\Profiles\Имя Пользователя\Application Data\Microsoft\Word\STARTUP
В Windows 2000:
C:\Documents and Settings\Имя Пользователя
\Application Data\Microsoft\Word\STARTUP
Если Вы хотите, чтобы у всех вновь регистрируемых
пользователей макрос был установлен автоматически, то скопируйте в папку,
используемую для автоматической настройки профиля нового пользователя и
пользователя «Гость». По умолчанию это папка «Default
User» в папке профилей (с установленным атрибутом «скрытая»), т.е. в выше
указанных шаблонах используйте вместо «Имя Пользователя» «Default
User» без кавычек.
Замечание:
Использованы том и путь, задаваемые по умолчанию при установке системы и MS Office.
Если Вы просматривали код макроса или
редактировали, то перед записью и
использованием его нужно откомпилировать в
среде VBA (Debug/ Compile Project). Настройки
безопасности могут запрещать работу с
макросами (см. Сервис/ Макрос/ Безопасность).
Предупреждение: перед
запуском и копированием шаблона в папку назначения
и открытием руководства обязательно проверьте его
антивирусной программой.
При последующем запуске MS Word появится панелька с кнопкой Booklet 2000 и
пункт меню «Печать буклета…» в меню Файл, при нажатии на
которые будет вызываться диалоговое окно макроса печати. При редком
использовании макроса панель можно скрыть (подвести курсор мыши в область
панели, нажать правую кнопку мыши для отображения локального меню, затем убрать
«галочку» напротив панели Booklet 2000).
Перед использованием макроса желательно подготовить
документ к печати. Документ должен быть вычитан, произведена проверка на
ошибки, не должно быть «висячих» и «жидких» абзацев, отступы страницы не должны
превышать пределы границ печати принтера. Количество страниц должно быть кратным четырём (по
две страницы на лист с каждой стороны). Если страниц не хватает, можно
несколько расширить отступы перед главами, таблицами, графическими объектами,
добавить в конце документа страницу для заметок. Для добавления страницы
поместите курсор в конец документа и нажмите Ctrl+Enter
для вставки разрыва страницы. Это действие можно произвести также с помощью
меню: Вставка/Разрыв/Вставить новую страницу). Если необходимо
уменьшить объём документа на страницу, можно воспользоваться встроенной возможностью
MS Word (см. «Сервис/Настройка/Команды/Сервис/Сократить на страницу»).
Можно сократить на страницу и
вручную: уменьшить межстрочный интервал (множитель
0,8—0,95), уменьшить
отступы вокруг заголовков, таблиц, графических объектов, сократить текст, изложив
смысл более лаконично, также можно уменьшить размер больших объектов.

Макрос вызывается нажатием на кнопку с изображением брошюры.
Теперь рассмотрим элементы управления диалогового
окна (формы макроса):

В заголовке формы указывается имя
печатаемого документа и текущий принтер.
Если имя документа слишком велико, эта же
информация выводится при наведении курсора
мыши на кнопку «Печать».
Левый столбец:
- Заставка программы.
- Информация о количестве страниц/листов/блоков
- Замечание/совет/предупреждение при изменении настроек
Правый столбец:
- Кнопка «Установить формат А5» – меняет формат страницы для всего документа на A5, отступы
1,5х1,5х1,5х1,5 см.
- Кнопка «Параметры страниц» вызывает стандартное диалоговое окно параметров страницы
для просмотра/изменения параметров.
- Группа «Компоновка листов»:
- «Печатать брошюру одним
блоком» – наиболее применяемый режим печати, используемый для вывода небольших
методических пособий, инструкций, руководств и т.д.
-
«Печать блоками в
количестве…» – режим, при котором Вы заранее определяете количество блоков,
предназначенных для последующего соединения вместе. Применяется, когда заранее
определено количество блоков и необходимо подобрать равномерное количество
листов в каждом из них.
- «Печать блоков с количеством
листов» – практически идентичен предыдущему режиму с той лишь разницей, что Вы
не лимитируете количество блоков, а ограничиваете количество страниц в блоке.
Ограничение может выть связано с имеющимся в наличии стэплером для скрепления
листов.
- «Разобрать по блокам» –
режим (включен по умолчанию), при включении которого происходит печать каждого
блока целиком независимо от остальных блоков. Т.е. выдаётся запрос на вставку
бумаги, печатается одна сторона листов блока, затем запрос – и другая сторона
блока, опять запрос, уже для печати следующего блока, а Вы пока сшиваете листы
предыдущего блока. При отключенной опции производится печать одной стороны
листа для всех блоков (с запросом на вставку бумаги), затем другой стороны для
всех блоков, затем Вам предстоит разделить документ на блоки вручную, но Вам не
придётся вставлять бумагу для каждого блока отдельно. Выбирайте для себя более
удобный режим сами.
- «Считать документ
непрерывным» – заблокировано и включено по умолчанию. Предполагается ввести
возможность печати документов, имеющих блоки с непоследовательной нумерацией
страниц в разделах. Пока такая необходимость не возникала и в макросе данная
возможность не реализована.
- Группа «Параметры печати»:
- «Печать всего документа в
автоматическом режиме» – соответственно выводит весь документ на печать. Перед
печатью оборотной и лицевой сторон выводится предложение для вставки бумаги.
- «Печать лицевой стороны» –
выводит на печать только лицевую сторону документа.
- «Печать обратной стороны» –
выводит на печать оборотную сторону документа.
- «Печать листов с номерами
страниц» – выводит на печать сплошным потоком листы, содержащие указанные
номера страниц вне зависимости на какой стороне они находятся в буклете – на
лицевой или оборотной. На листе печатаются сразу страница с указанным номером,
и её соседка в брошюре, даже если номера соседки нет в списке. Если номера
обеих страниц, расположенных на одной стороне листа присутствуют в списке, то
производится печать только единожды для обоих номеров сразу, т.е. наличие
номеров соседних страниц не вызовет печать дубля. Для указания списка можно
использовать диапазоны и номера отдельных страниц. В качестве разделяющих
символов могут использоваться «минус», «запятая» и «точка с запятой». Пример:
«1,6-8,12». Порядок диапазонов и страниц не играет роли. При разборке списка
производится заполнение массива, каждый элемент которого указывает, нужно ли
печатать соответствующую страницу. После окончательной разборки списка
производится печать страниц в порядке следования в массиве. Режим печати с
указанием номеров страниц обычно используется для перепечатки бракованных
листов. Если Вам необходимо перепечатать весь лист, т.е. и лицевую и оборотную
стороны, то сначала укажите макросу листы с номерами одной стороны, поместите
отпечатанное в принтер, и запустите макрос с указанием номеров страниц,
расположенных на обратной стороне листа.
- «Разобрать по копиям» – режим
(включен по умолчанию), при котором производится печать отдельно каждой копии
документа. Это наиболее удобный режим, т.к. не требует дальнейших манипуляций с
листами – «просто согни и сшей». Если этот режим отключен и задана печать
нескольких копий документа, то будет производиться печать сразу всех копий
одного листа, затем другого и т.д. Этот режим может быть полезен при печати на
лазерном принтере (особенно чужом) большого количества копий документов,
содержащий сложные и ёмкие объекты на страницах. При этом режиме передача
содержимого листа в буфер принтера производится единожды с указанием количества
копий, что позволяет значительно сократить время печати. Минусом является
необходимость последующей разборки листов вручную по брошюрам, при которой могут
возникнуть ошибки компоновки.
- «Количество копий» –
указывается количество копий документа, которые необходимо напечатать.
- «Печатать в файл» – режим,
при котором данные будут выводиться не в порт принтера, а будут записаны в
файл, имя которого указано в поле ввода. Файл может быть использован для
последующего тиражирования даже без наличия электронной копии самого документа
или редактора. Замечание: печать в дальнейшем должна производиться на принтере,
совместимом с драйвером, который формирует данные, записываемые в файл. Печать
в файл может быть задана также в настройках принтера.
- «Лист выдаётся в лоток наружу печатаемой
стороной» – режим, используемый при
автоматической печати всего документа
(игнорируется при печати отдельно
лицевой, обратной сторон и при печати
отдельных страниц), включает печать
сначала обратной стороны, затем
лицевой. Обычно используется для
матричных и струйных принтеров,
которые выдают лист напечатанной
стороной наружу относительно
собираемой в лотке пачки бумаги. Также
может быть использован для некоторых
лазерных принтеров, работающих в таком
же режиме. Например, у лазерного
принтера HP LJ1100, одного из самых
распространённых офисных принтеров,
есть режим выдачи бумаги не в верхний
лоток, а вниз, минимально сгибая бумагу,
что может быть использовано для печати
на плотной бумаге. Настройка этого
режима сохраняется в реестре для
каждого принтера.
- «Лист выдаётся в лоток внутрь печатаемой
стороной» – режим, используемый при
автоматической печати всего документа
(игнорируется при печати отдельно
лицевой, обратной сторон и при печати
отдельных страниц), включает печать
сначала лицевой стороны, затем
обратной. Обычно используется для
лазерных принтеров, которые выдают
лист напечатанной стороной внутрь, к
пачке бумаги, собираемой в лотке.
Настройка этого режима сохраняется в
реестре для каждого принтера.
- «Двусторонняя печать» – (в
данной версии отключено и в макросе отсутствует) режим, позволяющий производить
печать сразу на обеих сторонах листа на тех принтерах, которые поддерживают
такую возможность. Плюсом является уменьшение вероятности ошибки, минусом –
затраты дополнительного времени на просушку листа струйными принтерами при
двусторонней печати.
- Кнопка
«Настройка печати» – вызывает стандартный диалог редактора для настройки печати.
- Кнопка
«Печать» – выполняет печать с указанными настройками.
- Кнопка
«Отмена» – закрывает диалоговое окно без выполнения печати.
- Кнопка
«Справка» – вызов справочной системы.
- Кнопка
«Домашняя страница» – запуск URL домашней страницы.
- Кнопка
«Электронная почта» – Отправка письма автору макроса.
При использовании принтеров с точной подачей документа (лазерных и
струйных) обычно не возникает каких-либо проблем при печати. Следует помнить,
что у некоторых принтеров минимальный не пропечатываемый отступ в конце листа
1,3—1,8 см. Поэтому наружный отступ (поля) при разметке страницы документа
для таких принтеров рекомендуется устанавливать 2 см. Такой отступ необходим еще и для того, чтобы
обрезать края «гильотиной» (типографским ножом для резки бумаги). Если брошюра
получается довольно толстая, то после сшивания, листы, расположенные ближе к
центру, выступают за края обложки, и их необходимо обрезать для того, чтобы
придать брошюре презентабельный вид. Внутренний отступ страницы можно
устанавливать около 1 см. Если нет желания вымерять и высчитывать внутренний
и наружный край – установите все отступы в
1,5 см.
При печати на матричном принтере может возникнуть проблема
позиционирования листа. Эта ситуация возникает из-за того, что многие матричные
принтеры загружают бумагу не встык к головке, а с некоторым прогоном, чтобы
часть (~1 см) бумаги была уже под печатающей головкой для предотвращения
замятия бумаги при движении печатающей головки. В этом случае возни с печатью
будет несколько больше. Установите левый отступ на сантиметр (или подобранное
экспериментально значение) меньше, а правый соответственно больше, а затем уже
можно начинать печать. Для точной установки размера сдвига отступа можно
воспользоваться следующим методом: создайте документ с размером листа A5 из
четырёх страниц. Затем включите опцию «Сервис/ Параметры/ Вид/ Границы текста»
для отображения границ. Установите отступы
1,5х1,5х1,5х1,5 см. В режиме рисования на
каждой странице создайте прямоугольник, края которого должны совпадать с
границами отступов. Произведите двустороннюю печать. При просмотре на просвет
измеряется разница в сдвиге прямоугольников на разных сторонах листа. Половина
этого расстояния – искомая величина.
Было замечено, что при интенсивной нагрузке машины (редактирование
графики, обработка звука, работа с большими объёмами текста, игры) печать может
происходить с ошибками (смещение текста внутри таблиц, печать разреженным
шрифтом, смещение символов в формулах…). Для того, чтобы избежать подобных
ситуаций, перед выводом документов на печать рекомендуется перегрузить систему.
Хочу напомнить, что при изменении масштаба страниц A5
à A4
применяется коэффициент 1,4 (140%,
),
соответственно стандартный для A5 10 размер шрифта
заменяется 14 размером (стандартный для документов в формате A4),
объекты увеличиваются до размера 140%. При обратном масштабировании следует
применять коэффициент 0,7 (70%,
).
Подготовка документа при установленном по умолчанию драйвере принтера
одного типа с последующей печатью на другой машине и/или с использованием
другого драйвера может вызвать проблемы – текст может «поплыть». Для
предотвращения проблем такого типа окончательную вёрстку/правку необходимо
производить, когда по умолчанию установлен драйвер того принтера, на который
будет производиться вывод. Т.е. перед распечаткой документа обязательно
пролистайте его и убедитесь, что все объекты и абзацы находятся на своих
местах, особенно если в документе применяются символы разрыва страниц, колонок
и разделов.
Следование ряду несложных правил поможет Вам сэкономить много времени,
нервов, тонера, бумаги и денег.
С появлением компьютеров и компьютерной документации возникла необходимость её распечатки. Первоначально тексты (чаще всего) печатались форматом A4, а затем сшивались в тома. Со временем возникла необходимость в создании аккуратных брошюр, благо техника совершенствовалась, и появлялись программы для компоновки листов. Наиболее полно подобные программы были представлены электронным бюллетенем "Софтпанорама", выходящего синхронно с проведением одноимённой конференции, которая проходила в Киеве и Москве, и объединяла (известных, ведущих, талантливых, любознательных, продвинутых J) системных программистов Советского Союза. Лидером редакторов для DOS (в текстовом режиме экрана) был
MultiEdit, который обладает возможностями программирования (встроены Си-подобный и Паскаль-подобный макроязыки)
С появлением редакторов для Windows, позволяющих работать с текстами в графическом режиме, продолжились попытки создания удобного инструмента двусторонней печати документов. Существует большое количество специализированных пакетов для вёрстки документов, но в офисах, учебных и научных заведениях чаще всего используют MS
Word, тем более, что при сборке компьютеров для учреждений, фирмы устанавливают на них OEM версии Windows и
Office.
Сейчас можно найти некоторое количество макросов печати в интернете, но чаще всего они обладают рядом недостатков - платные, без исходных кодов, не локализованы, не реализованы необходимые в работе возможности (и настройки). Увидев лежащую на поверхности (в настройках печати MS
Word) функцию масштабирования и печати нескольких листов на одном (может, и в предыдущих версиях было, но хорошо запрятано), подумалось - а чем мы хуже? Вот так и родился этот продукт.
В версии 1.1 добавлена поддержка помощника и проведены косметические доработки.
В версии 1.2 исправлены некоторые ошибки,
добавлено сохранение некоторых настроек в
реестре, возможность автоматической сборки
брошюры при печати на принтерах с различной
подачей документов (печатаемая страница
выдаётся к или от стопки бумаги в
лотке-приёмнике), оптимизирован алгоритм,
добавлены комментарии и ссылки на
документацию.
Замечания: этот макрос не подвержен
проблеме 2000 года J. (когда
это было L...)
Не содержит деструктивных команд для операционной системы, приложений и
документов. Не производит запись на диск. Единственная кнопка, самостоятельно
изменяющая документ – «Установить формат A5».
Макрос тестировался в работе с MS Office 2000 (расширенный) и той же версией с установленным
сервис паком (9.0.3821 SR1). Наверняка он будет
работать еще лучше со следующей версией MS Office
(если понадобится и версия подобного макроса не будет включена в него штатно).
J
Макрос поставляется «как есть», причём
совершенно свободно в случае дальнейшего личного использования и бесплатного
распространения. Макрос также может
свободно (бесплатно) использоваться в
государственных учебных, научных и
медицинских учреждениях, организациях
инвалидов. Использование макроса в
остальных учреждениях возможен только при
согласовании с автором.
Если вдруг при работе макроса возникли какие-либо проблемы,
эти проблемы остаются Вашими проблемами. Ответственность за них никто не
несёт. Никто также не несёт ответственности, если этот шаблон не соответствует
Ваши требованиям и не выполняет все нужные Вам функции. Если Вам не понравится
работа макроса или Вы не согласны с изложенными выше замечаниями – удалите этот
шаблон.
Проект VBA НЕ ЗАЩИЩЁН от просмотра и изменения.
Кроме того, проект VBA максимально комментирован для изучения. (Для просмотра
кода необходимо загрузить проект как обычный документ)
Автор не возражает против помощи по качественному
переводу документации и проекта на другие языки.
При возникновении предложений с революционными изменениями макроса,
а также благодарностей –
пишите письма.
Борис Зулин

Сайт создан в системе
uCoz