Наверх

Сокрытие незаполненных полей в формах Word 2007/2010

Архив
Время чтения: 3 минуты
15
Сокрытие незаполненных полей в формах Word 2007/2010

Сокрытие незаполненных полей в формах Word 2007/2010

Отвечаю, как и обещал на вопрос Алексея:

Мне надо, чтобы сделанные мною в документе поля заполнялись сотрудником не все, а по выбору. Но при этом распечатываются слова - "Выберите элемент" или "Место для ввода текста".

Можно ли как то скрыть "пустые" поля при печати?

Собственно, идею данного решения я позаимствовал у Cindy Meister в Setting Empty Placeholder Text for a Content Control, и она довольно проста: для того чтобы показывать подстановочный текст (например, для той же фразы "Место для ввода текста"), Word использует специальный стиль, поэтому для сокрытия текста при печати, необходимо установить параметры данного стиля.

Теперь тоже самое, но по шагам:

1. Создадим простейший документ-форму, как это было описано в статье Электронные формы в Microsoft Word 2007 (у меня данный документ не сохранился, поэтому я создам еще более простой).

Попытка распечатать документ приведет вот к такому результату:

Т.е. замещающий текст остался на месте

2. Откроем полный список стилей Word.

Для этого нажать в Ribbon на кнопку:

А затем в окне стилей:

3. В открывшемся списке нужно найти стиль "Placeholder Text" (в русской версии "Замещающий текст"), выделить его и нажать кнопку "Modify..." (следите также чтобы правки были сделаны именно для текущего документа - переключатель "Only in this document" внизу окна):

4. В окне настроек стиля выбрать настройку шрифта:

и указать, что шрифт будет скрытым:

5. Наконец перейти в настройки Word

И на закладке Dispaly установить настройку показа скрытого текста, и проверить, что отключена печать скрытого текста.

В результате при вводе документ будет выглядеть вот так:

а на печати так:

P.S.: Кстати, я был не прав, говоря, что данный способ оставляет незаполненные пространства под поля. При печати поля именно "схлапываются" будто на этом месте ничего нет.

Чтобы прочитать эту статью до конца,
или зарегистрируйтесь

Комментарии 15

Алексей Б. 18 июля 2012

Спасибо Михаил. Простое и красивое решение проблемы. Все получилось.

Только встает вопрос - все это будет работать только на одном ком-ре. Или эти изменения сохранятся в теле документа и на другом ком-ре надо только проверить, что отключена печать скрытого текста (по умолчанию это так и есть, только дисплей выключен). Или такую процедуру надо производить на всех ком-ах пользователей, использующих этот документ?

Отредактировано 26 октября 2014
Всегда пожалуйста, Алексей.
Что касается вашего вопроса
Или такую процедуру надо производить на всех ком-ах пользователей, использующих этот документ?

то ответ таков:

1. Пункты по изменению стиля (с 1 по 4) вы делаете для самого документа. Я не даром заострил внимание на 3-м шаге, как это сделать.

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

Причем, по-умолчанию настройки Word таковы: скрытй текст не печатается, но и не показывается - ваши пользователи просто не увидят полей :(.

Проблему можно нивелировать если вы работаете в сети предприятия и у вас используется Active Directory. В этом случае параметры офиса можно задать с помощью групповых политик. Более подробно смотрите статью на MSDN Обзор групповой политики для Office 2010, а скачать шаблоны для этих политик можно тут Office 2010 Administrative Template files (ADM, ADMX/ADML) and Office Customization Tool download

Надеюсь, это поможет.

Отредактировано 26 октября 2014
Алексей Б. 18 июля 2012

Так и предполагал, вопрос задал, чтобы все это знали во избежании недоразумений. Проверил на портабельной версии - да по умолчанию просто не видно.

Это ерунда - Включить одну галочку в параметрах Word (Экран - Всегда показывать эти знаки форматирования на экране - Скрытый текст) по силам любому. У вас инглиш версия, поэтому продублировал.

Такие подробные инструкции как ваша - очень сильно способствуют внедрению электронных форм в жизнь офиса. Доступно всем!!!

Отредактировано 26 октября 2014
Алексей Б. 18 июля 2012

Еще хочу добавить, что при создании поля - Место для ввода текста, надо использовать - Вставить элемент управления "обычный текст". Так как использование Вставить элемент управления "форматированный текст" (RTF) приводит к его скрытию (набранного текста) при печати.

Отредактировано 26 октября 2014
"форматированный текст" (RTF) приводит к его скрытию (набранного текста) при печати
Хм... Вот это странно.
Спасибо, попробую при случае поэкспериментировать.
Но вообще, для форм скорее нужен текст без форматирования (форматирование задается стилем самого поля).
Отредактировано 26 октября 2014
Алексей Б. 18 июля 2012

Сам удивился. Это как раз произошло после сокрытия полей по этой методике. Перевел на "обычный текст" и все получилось как написано в вашей публикации.

В принципе "форматированный" текст и не нужен. Иконки стоят рядом (Aa и Aa), видимо случайно выбрал, а потом разбирался куда теряются поля при печати. Может кто то с этим столкнется.

Отредактировано 26 октября 2014
Михаил Романов 6 февраля 2013
Большое спасибо за решение. Применяем.
Очень приятно!
Спасибо, что оставили отзыв - когда твои статьи кому-то полезны, это очень мотивирует писать новые!
Отредактировано 26 октября 2014
Михаил Романов 26 октября 2014

Наталья, здравствуйте.

Но что делать, если в стилях нет "замещающего текста"?

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

  • стиль есть, просто не попадается на глаза в списке. Попробуйте поставить для списка сортировку по алфавиту и снять галочку "Show recomended styles only". В таком списке искать проще.
  • в новой версии Word русское название поменялось. Тут с ходу помочь не смогу, нужно искать русскую версию Office - отпишусь, как найду.
  • вы пользуетесь нелокализованной версией или документ был как-то хитро создан в нелокализованном Office. Поищите английское название, т.е. "Placeholder Text"

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

Наталья, попробуйте перечисленные мною варианты. Если они не возимеют место - напишите мне в личную переписку (на сайте есть такая функция для зарегистрированных пользователей), как можно с вами связаться - попробуем решить проблему.

Жду вашего ответа.

Отредактировано 26 октября 2014
Алексей Шлапаков 01 марта 2016 11:27
Можно просто поменять шрифт строки приглашения в режиме конструктора, включив атрибут "скрытый текст"

Да, тоже вариант. Единственное, надо иметь в виду:

  • Меняется поведение только 1 контрола (а не всех сразу)
  • Если сначала ввести в такое поле текст, а потом удалить, то вновь отображаемый замещающий текст не будет иметь атрибута "скрытый" - его придется ставить заново.

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

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

Но возникла проблема, если сотрудник копирует текст с какого-либо источника, и вставляет его в документ (в поля ввода)

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

Михаил Романов 7 сентября 2018

Анастасия, добрый день.

Навскидку предложу 2 варианта:

  • Скорее всего, для вставки текста вы использовали Rich Text Content Control (он как раз стоит первым в списке контролов). Попробуйте заменить его на  Plain Text Content Control (он стоит следующим) - только поставьте в настройках вставленного контрола возможность переноса строк.
  • Если не поможет или не подойдет по каким-то параметрам первый вариант, попробуйте делать вставку текста через вариант вставки Keep Text Only (ну и коллег придется к нему приучить).

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

Илья Лихонин 19 декабря 2018

Добрый день, Михаил.

Отличная статья, очень помогла. Подскажите, а как изменить сам текст "Место для ввода текста" , который является скрытым текстом?

Спасибо.

Михаил Романов 19 декабря 2018

Илья, добрый день.

Поменять текст можно, например, используя методику, описанную в статье Modify Content Control Placeholder Text.

Если в 2-х словах, то идея в следующем: если мы попытаемся изменить placeholder text находясь в обычном режиме управления content controls, то ничего не выйдет - как только мы начинаем набирать текст в этом поле, контрол переходит в режим "всавка реального текста" и весь placeholder теряется. Чтобы этого не происходило, нужно переключиться в Design Mode (не уверен, но в русской версии это кажется называется Режим дизайна).

В общем:

  • Переходим в Ribbon на закладку Developer.
  • Нажимаем кнопку Design Mode (она рядом с панелью самих content controls)
  • Ставим курсор в центр placeholder text (не важно куда именно, главное между буквами, а не с краю) 
  • Набираем свой текст
  • Удаляем старый текст слева и справа от нашего
  • Выходим из режима дизайна.

Если поле у вас "выпадающий список", то нужно будет на такой же текст заменить первый элемент списка

P.S. Попробовал записать видео. Надеюсь, что наглядно

Илья Лихонин 20 декабря 2018

Михаил, спасибо большое. Все получилось!

Яна Слабкая 17 января 2022

Михаил, здравствуйте! Спасибо Вам за такую замечательную статью! Хотела спросить, можно ли как-то сделать чтобы при печати места ввода не «Схлопывались»?

Чтобы прокомментировать, или зарегистрируйтесь