добавление неограниченной текстовой области в документ PDF

Я пытаюсь добавить блок текста в существующий шаблон PDF.

Я хочу иметь возможность установить левое и правое поля, но объем текста не определен, поэтому мне нужно, чтобы поле расширялось по отношению к вводимому тексту.

Мне удалось расположить текстовую область в шаблоне и вставить текст, но для этого мне нужно явно указать расположение нижней строки текстовой области.

Вот код, который у меня есть до сих пор (pdfStamper предопределен):

BaseFont bf = BaseFont.CreateFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
Font font = new Font(bf, 11, Font.NORMAL);
Phrase unicodes = new Phrase(reports.StringText, font);
PdfContentByte over;
over = pdfstamper.GetOverContent(1);
ColumnText ct = new ColumnText(over);
ct.SetSimpleColumn(unicodes, 19, **80**, 575, 335, 10, Element.ALIGN_LEFT);
ct.Go();

person Community    schedule 31.07.2009    source источник


Ответы (1)


ОК, я попробовал другие решения (которые не работают). Они здесь:

PdfPTable table = new PdfPTable(1);
string text = "blab balba b balbala ";
string finalText = "TestTitle1\r\n\r\n";

for (int i = 0; i < 200; ++i)
{
     finalText += text;
}
table.AddCell(finalText);
table.TotalWidth = 300;
table.WriteSelectedRows(0, -1, 20, 325, pdfstamper.GetUnderContent(1));

Этот вывод помещает стол в нужное место с нужной шириной. Но если на этой странице слишком много текста, я хочу, чтобы он распространился на следующую, а этого нет. Я попытался передать WriteSelectedRows необязательный массив холстов (pdfstamper.GetUnderContent(1) и pdfstamper.GetUnderContent(2)), но это просто вызывает исключение Index was outside the bounds of the array - но даже если это сработает, я не знаю, будет ли это делать то, что я хочу.

Или вот этот:

PdfContentByte over;
over = pdfstamper.GetOverContent(1);
over.BeginText();
over.SetTextMatrix(20, 300);
over.ShowText(report.AutonomyText);
over.EndText();

Но текст просто выходит за пределы страницы.

person Community    schedule 03.08.2009