Форматы полей в формах Adobe Acrobat

Статус
Закрыто для дальнейших ответов.

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Прошу помощи в создании пользовательских форматов в полях форм.
Надо чтобы при вводе текста строчными буквами в поле текст отображался:
- ЗАГЛАВНЫМИ и жирным шрифтом
- каждое слово с Заглавной буквы
Заранее благодарю за помощь.
 

George

I wish I was a monster you think I am
15 лет на форуме
Сообщения
17 329
Реакции
7 870
К сожалению в Acrobat Pro доступны только размер кегля, цвет и выбор самого шрифта (appearance в свойствах поля формы).
Если у Вас Акробат ниже 11-й версии, то посмотрите свойства поля формы в Adobe LiveCycle Designer - может там больше настроек. У меня уже везде 11-й, посмотреть не смогу.
 
  • Спасибо
Реакции: bsi

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Жирный шрифт можно выбрать в формате поля. А для того, чтобы все слова заглавными делать, придется маленький скриптик писать и вешать его на событие или редактирования или смены фокуса поля. Чтобы по этому событию первая буква в каждом слове заглавной делалась.
 
  • Спасибо
Реакции: bsi

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Жирный шрифт можно выбрать в формате поля. А для того, чтобы все слова заглавными делать, придется маленький скриптик писать и вешать его на событие или редактирования или смены фокуса поля. Чтобы по этому событию первая буква в каждом слове заглавной делалась.

Спасибо за подсказку, я так и предполагал в Excel делал, а вот в Acrobat впервые в Java ноль. Если есть возможность примерчик прислать?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Сходу пример придумать не могу, поскольку ничего подобного не делал. Однако, если вы найдете и скачаете JavaScript™ for Acrobat® API Reference, то там похожие вещи, IMHO, описываются. В частности, я там явно видел валидацию и приведение к верхнему регистру.
 
  • Спасибо
Реакции: bsi

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Properties->Format->Select Format Category-Custom->Custom Format Script
Код:
str = event.target.value;event.value = str.replace(/(^|\s|[\-\,\.])\w/g,function(cWrd){return cWrd.toUpperCase()});

Большое спасибо за участие.
Не сочтите за труд продемонстрировать это в мой форме. В файле описано, что я делаю, но с Acrobat_ом столкнулся впервые, а сделать надо. У меня Acrobat XI.
Еще раз спасибо.
 

Вложения

  • Форма ФИО.pdf
    123.8 КБ · Просм.: 743

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
Не сочтите за труд продемонстрировать это в мой форме.
Конечно, мне не трудно продемонстрировать. Мне только не понятно почему вы забрались во вкладку "Действия/Actions" и принялись настраивать мышку, когда я вам английским
по белому написал зайти во вкладку Format/Формат и что там нужно делать.

Свойства-Формат-Выбрать категорию формата-Произвольный-Вставить скрипт в поле "произвольный формат скрипта". У меня сейчас нет доступа к русскому интерфейсу, поэтому перевод вольно-дословный.

Шрифт, его размер, начертание, цвет настраиваются непосредственно в свойствах поля, закладка Appearance/Оформление.

Все ПРОПИСНЫЕ настраиваются по тому же алгоритму. Необходимая строка выглядит так

Код:
event.change = event.change.toUpperCase();

Попробуйте. Это займет не более минуты на оба варианта. Ну, а, если, вдруг, что — пишите.
 
  • Спасибо
Реакции: bsi

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Если что, в понедельник буду в пределах доступности русского XI и уточню как там точно перевели наши горе-локализаторы.
 
  • Спасибо
Реакции: bsi

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Конечно, мне не трудно продемонстрировать. Мне только не понятно почему вы забрались во вкладку "Действия/Actions" и принялись настраивать мышку, когда я вам английским
по белому написал зайти во вкладку Format/Формат и что там нужно делать.

Свойства-Формат-Выбрать категорию формата-Произвольный-Вставить скрипт в поле "произвольный формат скрипта". У меня сейчас нет доступа к русскому интерфейсу, поэтому перевод вольно-дословный.

Шрифт, его размер, начертание, цвет настраиваются непосредственно в свойствах поля, закладка Appearance/Оформление.

Все ПРОПИСНЫЕ настраиваются по тому же алгоритму. Необходимая строка выглядит так

Код:
event.change = event.change.toUpperCase();

Попробуйте. Это займет не более минуты на оба варианта. Ну, а, если, вдруг, что — пишите.


Возможно я Вас утомил, но не работает. Со свойствами полей все ясно, а вот с переводом в верхний регистр не получается. Вхожу в Свойства-Формат-Категория форма вбираю (настройка)-сценарий заказного формата- кнопка изменить-окно создание и редактирование JavaScript-вставляю event.change = event.change.toUpperCase();- жму ОК-предварительный просмотр-ввожу текст в поле, перевожу фокус на другое поле и все остается в нижнем регистре.

Смысл кода мне понятен event- класс, change событие после смены фокуса, toUpperCase()-перевод в верхний регистр, но не работает.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
У вас JavaScript в настройках включен?
 
  • Спасибо
Реакции: bsi

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
Возможно я Вас утомил, но не работает.
Нет, не утомили. Все делаете правильно.

У вас JavaScript в настройках включен?
Похоже на то.

Акробат-Настройки (Ctrl+K)-слева в колонке выбрать JavaScript-справа вверху включить JavaScript
 
  • Спасибо
Реакции: bsi

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Нет, не утомили. Все делаете правильно.


Похоже на то.

Акробат-Настройки (Ctrl+K)-слева в колонке выбрать JavaScript-справа вверху включить JavaScript


Активировать Акробат JavaScript галочка стоит.
Я вчера нашел скрипт вывода сегодняшней даты, вставил в окно скрипта, все работает, а вот с этой проблемой ступор. Всем спасибо. Может когда-нибудь и получится.
 

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
Активировать Акробат JavaScript галочка стоит.
Первый вариант с прописными первыми буквами как оказалось не работает с кириллицей. Работает вот этот скрипт, только вставить его нужно в том же меню, но в нижнее окошко "Custom Keystroke Script":
Код:
if (event.value!=null && event.value!="") {
event.value = event.value.substr(0,1).toUpperCase() + event.value.substr(1);
}

Второй вариант с ПРОПИСНЫМИ работает корректно, но я по ошибке указал не то место вставки. Его нужно поместить туда же: "Custom Keystroke Script".
 
  • Спасибо
Реакции: bsi

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Первый вариант с прописными первыми буквами как оказалось не работает с кириллицей. Работает вот этот скрипт, только вставить его нужно в том же меню, но в нижнее окошко "Custom Keystroke Script":
Код:
if (event.value!=null && event.value!="") {
event.value = event.value.substr(0,1).toUpperCase() + event.value.substr(1);
}

Второй вариант с ПРОПИСНЫМИ работает корректно, но я по ошибке указал не то место вставки. Его нужно поместить туда же: "Custom Keystroke Script".


Работает, но немного не то, ввожу иванов иван иванович, выводит Иванов иван иванович, надо Иванов Иван Иванович, и втрой вариант ввожу иванов иван иванович, должно получиться ИВАНОВ ИВАН ИВАНОВИЧ. Нужен хотя бы Иванов Иван Иванович, в идеале конечно и ИВАНОВ ИВАН ИВАНОВИЧ.
Попутно вопрос. Возможно ли в форме сделать так чтобы ввести в одно поле данные и они автоматом появились еще в нескольких полях этой же формы? Если да, тогда буду искать варианты как это сделать.
Еще раз спасибо за сотрудничество.
 

imma

15 лет на форуме
Сообщения
3 089
Реакции
2 185
втрой вариант ввожу иванов иван иванович, должно получиться ИВАНОВ ИВАН ИВАНОВИЧ
Так должно или получается?

Возможно ли в форме сделать так чтобы ввести в одно поле данные и они автоматом появились еще в нескольких полях этой же формы?
Можно. Просто сделайте копию готового поля. Настройки можно менять, главное, чтобы имена полей совпадали.

С остальным уже завтра.
 
  • Спасибо
Реакции: bsi

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Мда, проверил сам, к сожалению, даже в локализованной версии акробата метод replace с кириллицей работает анально. Жора, это, кстати, тебе на заметку, как адобовскому багрепортеру. Чтож, попробуем переписать replace сами:
Код:
{
var a="";
var b=event.value;
var f=true;
for (var i=0;i<b.length;i++)
{
var c=b.charAt(i);
if (f)
{
a=a+c.toUpperCase();
} else
{
a=a+c;
}
f=(c==" ");
}
event.value = a;
}
Этот вариант и на кириллице правильно работает. Вариант без replace (все буквы большие) работает и такой:
Код:
event.value=event.value.toUpperCase();
 
  • Спасибо
Реакции: bsi и imma

bsi

Участник
Топикстартер
Сообщения
60
Реакции
6
Мда, проверил сам, к сожалению, даже в локализованной версии акробата метод replace с кириллицей работает анально. Жора, это, кстати, тебе на заметку, как адобовскому багрепортеру. Чтож, попробуем переписать replace сами:

ОГРОМНОЕ спасибо. Напряг я вас наверное? Все работает. Только не понял "главное, чтобы имена полей совпадали." Имена полей должны же быть уникальные или я что-то не так уразумел?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 231
Реакции
10 852
Только не понял "главное, чтобы имена полей совпадали." Имена полей должны же быть уникальные или я что-то не так уразумел?
Это если вы хотите несколько одинаковых полей сделать.
 
  • Спасибо
Реакции: bsi
Статус
Закрыто для дальнейших ответов.