добавление безграничной текстовой области в документ PDF - PullRequest
0 голосов
/ 31 июля 2009

Я пытаюсь добавить блок текста в существующий шаблон 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();

1 Ответ

0 голосов
/ 03 августа 2009

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

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();

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

...