Как мне перенести текст в следующее поле в iTextSharp? - PullRequest
0 голосов
/ 02 ноября 2011

как мне получить текст для переноса из одного акрополя в другое? У меня есть Adobe PDF, наш клиент дал нам. Он имеет поля acro один поверх другого (все с тем же именем). Они хотят, чтобы текст переносился от одного к другому, когда он достигает конца строки. Все остальные примеры, которые я вижу там, не имеют отношения к заполнению полей acro, которые переносятся. Пожалуйста, помогите!

                // loop through disabilities and display them
                foreach (var disability in formNature.Disabilities)
                {
                    fields.SetField("EVALUATION", disability.PrimaryDisabilityName + "; ");
                }

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

1 Ответ

0 голосов
/ 02 ноября 2011

К сожалению, это не полный ответ.

Во-первых, когда вы звоните SetField(), вы стираете текущее содержимое поля и заменяете его новым значением. Когда это сделано в цикле, тогда будет сохранено только последнее значение. Что вам нужно сделать, так это перебрать каждое значение и объединить его в одну большую строку.

string buf = '';
foreach (var disability in formNature.Disabilities)
{
    buf += disability.PrimaryDisabilityName + "; ";
}
buf = buf.Trim();

Во-вторых, насколько мне известно, стандарт PDF не поддерживает цепочку полей для переполнения, что вы и ищете. Единственный известный мне способ выполнить то, что вы пытаетесь, - это измерить строки, сравнить их с шириной полей и урезать их при необходимости. Для этого вам нужно найти шрифт, используемый для данного поля, создать из него BaseFont и использовать его для измерения строки. Затем сравните это с прямоугольником поля и используйте только те символы, которые «вписываются» в это поле. Повторите при необходимости.

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

...