Мне не удалось найти сообщения о переполнении, касающиеся изменения размера или корректировки текстового поля iTextSharp на основе входного содержимого пользователя, которое у них есть на C#. Я надеялся, что кто-нибудь может помочь мне здесь, поскольку это оказалось для меня довольно сложным.Определить размер текстового поля iTextSharp на основе того, сколько контента пользователь вводит в C#
Вот что я хочу достичь. Основываясь на количестве ввода текста пользователя, я хочу иметь возможность изменять размер текстового поля iTextSharp без добавления текстового содержимого или изменения размера шрифта в конце текстового поля.
Вот блок кода, который у меня есть для текстового поля до сих пор:
using iTextSharp.text.pdf;
string bodyText = "This is the text that the user inputs. I want the textfield to resize ";
bodyText += "based on how much text content there is here. I do not want the ";
bodyText += "text to wrap around or shrink text size at the end of the textfield.";
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(strPDFpath, FileMode.Create));
PdfContentByte cb = writer.DirectContent;
TextField _subject = new TextField(writer, new Rectangle(103f, 485f, 503, 499f), "tfSubject");
//I want this Rectangle size to be readjustable based on the text content but
//I'm not sure how to do that.
_subject.FontSize = 10f;
_subject.Alignment = Element.ALIGN_LEFT;
_subject.Text = bodyText;
writer.AddAnnotation(_subject.GetTextField());
cb = writer.DirectContent;
Мало того, что, после того, как TextField был изменен, я хочу, чтобы иметь возможность добавить статический текст прямо под измененным размером текстовое поле. Это оказывается довольно сложным, поскольку текстовое поле устанавливается в абсолютном позиционировании.
Любая помощь будет очень признательна.
Ваш вопрос непонятен. В названии вы утверждаете, что хотите * re * размер текстового поля, что означает, что у вас есть существующий PDF-файл с существующим текстовым полем. В теле вопроса вы создаете текстовое поле, как будто вы создаете документ с нуля. Что вам нужно? Вы хотите * re * размер существующего текстового поля или определить размер нового текстового поля? –
Я хочу определить размер нового текстового поля на основе строкового содержимого, которое будет вводить пользователь. –
В конечном итоге вы хотите [измерить строку на основе заданного шрифта и размера, справа] (http://stackoverflow.com/a/5092566/231316)? Эта ссылка должна вам больше всего понравиться, вам просто нужно учитывать заполнение виджета, зависящее от приложения, но вы можете вымачивать некоторые цифры, которые, вероятно, работают в большинстве мест. –