Itext держать параграфы вместе - PullRequest
2 голосов
/ 15 июня 2011

У меня есть 2 объекта абзаца, которые занимают около 2/3 страницы.Когда я просматриваю это в pdf, начало второго абзаца начинается со второй страницы.Есть ли способ запустить его на 1-й странице после 1-го абзаца?

    PdfPTable rs1 = new PdfPTable(1);            

    PdfPCell c = new PdfPCell();
    c.MinimumHeight = 36f;

    Paragraph p = new Paragraph(
        "some text to align\n" +
        "..." +
        "some text to align\n" 
    );

    c.AddElement(p);

    rs1.AddCell(c);

    PdfPCell c2 = new PdfPCell();
    c.MinimumHeight = 36f;

    Paragraph p2 = new Paragraph(
        "some text to align\n" +
        "..." +
        "some text to align\n" +
        "some text to align\n"
    );
    p2.KeepTogether = false;
    c2.AddElement(p2);
    c2.VerticalAlignment = Element.ALIGN_TOP;

    rs1.AddCell(c2);

    return rs1;

Ответы [ 2 ]

3 голосов
/ 22 июня 2011

Я использовал PdfPTable.SplitLate = false

1 голос
/ 15 июня 2011

Проблема не в ваших параграфах, а в вашей таблице. iTextSharp пытается не разбивать содержимое по ячейкам таблицы, и ваш текущий макет, кажется, делает это. Вам нужен стол? Обычные абзацы просто ломаются, когда линия выходит за пределы видимой области. Если вам нужны таблицы, вам нужно будет отрегулировать ширину таблицы, если вы можете (rs1.WidthPercentage = 100;) и, возможно, любой заданный вами отступ.

...