Как я могу использовать символы табуляции в многострочных AcroFields с iText?

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

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

Теперь существует требование, которое требует от меня рендеринга в виде таблицы внутри 1 многострочного акрополя.

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

Monday\tFrom 10:00\tUntil 12:00
Tuesday\tFrom 20:00\tUntil 22:00

Я использовал \ n в полях раньше для перевода строки, это похоже на работу. Однако вкладки не отображаются. Можно ли использовать вкладки в многострочном поле?

Я попытался использовать HTML-сущности / представление Unicode, но это тоже не работает.

1 ответ

Решение

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

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

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

Так, например, если ваши смоделированные столбцы в этом поле будут иметь ширину 15 символов, тогда "Понедельник" будет занимать 6 символов, после чего вы вводите 9 пробелов для перехода к следующему столбцу, поместите туда "С 10:00", введите еще 5 пробелов, добавьте туда "До 12:00", и вы закончили с этим рядом. Следующий будет аккуратно выровнен под ним и так далее.

Другие вопросы по тегам