gifts2017

Заметка о некоторых приемах форматирования макета в MS Word при разработке печатной формы

Опубликовал Антон Сергеев (sergeevcorp) в раздел Программирование - Практика программирования

При разработке печатной формы с макетом в Word дьявол кроется в деталях. Если требуется точно воспроизвести богатое внешнее оформление документа, это может стать серьезной проблемой и причиной потери большого количества времени. В статье описываю несколько вариантов форматирования макета, которые могут помочь сэкономить время.

Довелось потратить кучу времени на разработку нескольких печатных форм. Макет решил делать в MS Word, чтобы сохранить нюансы форматирования предоставленного образца, т.к. заказчик наставивал на соблюдении всех деталей фирменного стиля. В процессе разработки столкнулся с разными проблемами, в том числе связанными с оформлением макета. Вариантами решения некоторых проблем захотелось поделиться, чтобы сохранить кому-нибудь время и нервы.

Регулируем высоту колонтитулов с помощью размеров шрифта

Возникла проблема с тем, что в итоговой форме размер пустого колонтитула упорно отличался от того, что был задан в макете. Вышел из ситуации путем добавления белой точки в колонтитул макета. У точки установил размер шрифта, чтобы достигнуть подходящего размера колонтитула.

Вариант оформления подписей с помощью таблицы

Довелось видеть разные подходы к оформлению подписей сторон в договорах, обычно сделано это аляповато. Мой вариант оформления не претендует на оригинальность, но помогает сохранить презентабельный внешний вид документу.

Итак, задача: настроить вывод подписей сторон, включая должность, горизонтальную черту под подпись и ФИО ответственного лица. Подписи должны располагаться на одном уровне независимо от длины должности и ФИО.

Вариант реализации:

  • Создать таблицу. Пример:
  • Настроить форматирование таблицы
    • Установить фиксированную ширину столбцов
    • Выбрать выравнивание элементов в ячейках таблицы. Например, должность выравниваем по правому краю, а ФИО по левому, «м.п.» выравниваем по центру. ФИО и должность дополнительно выравниваем по нижнему краю ячейки.
    • Настроить отображение границ в зависимости от требований. Пример: используем вариант «Нет границ», а затем добавляем нижнюю границу в ячейке, где требуется горизонтальная черта для подписи.
  • Если подписи сторон нужны на каждой странице, помещаем таблицу в колонтитул.

Не показываем колонтитул на последней странице с помощью выражений

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

Решил подписи сторон поместить в колонтитул, но в Word не нашел настройки, которые бы позволяли управлять отображением колонтитулов на последней странице, поэтому поступил следующим образом:

  • Настроил форматирование нижнего колонтитула в виде таблицы без границ.
  • Добавил вывод номера страницы – с этим все просто, т.к. номер страницы выводится на всех листах
  • Для удаления горизонтальной черты под подпись и слов «Поставщик» и «Покупатель» на последней странице использовал выражения для описания вывода полей в MS Word. Пример:
    • { IF { PAGE   \* MERGEFORMAT } = { NUMPAGES   \* MERGEFORMAT } "" "Поставщик" \* MERGEFORMAT } , т.е. если страница последняя, то "Поставщик" заменяем на "".
    • На всякий случай:
      • Переключаем режим отображения поля (значение поля/выражение) с помощью ALT+F9  
      • Вставляем поле с помощью CTRL+F9. Поле всегда обрамляется скобками: { и } 
      • Тут написано об управлении нумерацией страниц с помощью выражений: https://support.microsoft.com/en-us/kb/95886 

Фиксируем ширину столбцов

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

Используем разрывы страниц внутри областей

Помним, для того, чтобы начать текст с новой страницы, необходимо разрыв страницы вставить внутри выводимых областей. Вставлять его между областями смысла не имеет))

Выравниваем рисунки в макете

Если в макете необходимо разместить рисунки, например, элементы фирменного стиля в строго определенных местах макета, то следует воспользоваться настройками выравнивания рисунка в Word. В моем случае потребовалось разместить изображение продукции в правом нижнем углу первого листа.

Вариант реализации:

  • Вставить рисунок в макет Word
  • Открыть в контекстном меню рисунка форму «Размер и положение»
  • Обтекание текстом выбрать «Перед текстом»
  • Установить настройки положения. Например: Горизонтальное выравнивание = по правому краю относительно поля, Вертикальное выравнивание = по нижнему краю относительно поля. Если требуется разместить рисунок ниже нижнего колонтитула, то придется задать положение ниже относительно поля. 

Напоследок…

Если бы заранее знал, насколько трудоемко добиться четкого следования оформлению образца, то вместо 20 часов, запланированных на создание четырех форм, включая вникание в задачу, беседы с заказчиком, программирование и отладку, отвел бы часов 50.

А еще надо было до оценки работ подготовить макеты с параметрами и описать источники данных для параметров. Это помогло бы выявить неучтенные моменты:

  • Источники данных для некоторых параметров отсутствовали в базе заказчика. Пришлось добавлять доп.реквизиты и согласовывать их с заказчиком.
  • ФИО и должности надо склонять, а это может стать проблемой в некоторых конфигурациях.
  • Документ, оформленный вручную, и документ, сгенерированный программно, – это не одно и тоже. Во втором случае могут понадобиться компромиссы в оформлении, которые хорошо бы согласовать предварительно.

PS. Предлагаю в комментариях поделиться опытом решения конкретных задач при настройке макетов в Word или кинуть ссылки на на эту тему, которые могут оказаться полезными при разработке.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Сергей Ожерельев (Поручик) 29.04.16 11:53
Сам полтора года назад парился с упоротой печатной формой в Word. Это был мрак с различной ориентацией разделов, генерацией таблиц, графиков и статичных изображений.
2. Максим Супрун (smaximaa) 29.04.16 15:55
впервые узнал о возможности формирования макета в ворде, обычно ваял их в 1с или в экселе
3. Михаил (Оберон) 04.05.16 10:25
здорово! давайте еще и инструкции по Ворду писать.
жаль что "антилайк" сделать нельзя
4. Вячеслав Алпатов (DonAlPatino) 04.05.16 10:34
(3) Оберон, ну посоветуйте тогда решение. Ибо требование "хочу в ворде с подчеркиваниями, курсивами, болдами, шестью видами шрифтов,15 картинками и прочим..." выдвигается постоянно. И каждый раз приходится нудно и долго пилить индивидуальные формы.
5. Яков Коган (Yashazz) 04.05.16 17:34
Плюс за героизм. С этой хренью можно и больше 50 часов прокопаться без внятного результата.
6. Роберт В е р т и н с к и й (v3rter) 04.05.16 17:49
Вариант оформления подписей с помощью таблицы

А чем плоха табуляция с настроенным подчеркиванием?
7. Антон Сергеев (sergeevcorp) 04.05.16 22:31
(6) v3rter, а можно поподробнее? Или пример? Что-то понять не могу, как вы предлагаете сделать.
8. Роберт В е р т и н с к и й (v3rter) 05.05.16 09:48
Есть в ворде такая штука - табуляция с заполнением. Правая кнопка мыши - абзац - табуляции. Если ее совместить с выравниванием табуляции по правому краю, а после нее вписать фамилию, получается "резиновый" нижний прочерк.
Табуляции есть во всех самоучителях по ворду, навскидку http://www.taurion.ru/word/13/11 из http://www.taurion.ru/word/13

Единственный минус - при выходе строки за пределы доступного места текст сдвигается вправо,в отличии от таблицы, поэтому способ с табуляциями хорош только при дополнительном контроле/ограничении длины данных.

Не показываем колонтитул на последней странице

Есть альтернативный вариант - перед последней страницей вставить разрыв раздела (панель разметка страницы - разрывы - разрывы разделов: следующая страница), зайти в колонтитул на предпоследней странице, скопировать его в буфер, отжать кнопку "как в предыдущем разделе" (на панели колонтитулов). Если колонтитул пропадет (бывает) - вставить из буфера или из резервной копии. Важный момент - параметры страниц разных разделов не связаны между собой .
teflon; Оберон; +2 Ответить 2
9. Антон Сергеев (sergeevcorp) 08.05.16 14:08
(8) v3rter, спасибо! Почитал о возможностях табуляции. И спасибо за альтернативный вариант вывода колонтитула. Как-нибудь попробую.
10. Андрей Крутских (K_A_O) 18.05.16 16:54
(8) >Есть альтернативный вариант - перед последней страницей вставить разрыв раздела
1C не анализирует разделы. В итоговом документе либо не будет колонитула, либо будет один на всех станицах.
11. Роберт В е р т и н с к и й (v3rter) 18.05.16 17:02
(10) K_A_O, Если разрыв со всеми настройками сделан непосредственно в шаблоне, то всё должно быть ОК, 1С только вставит данные.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа