2011-06-15 4 views
2

J'ai 2 objets de paragraphe qui occupent environ 2/3 de la page. Quand je le vois dans le pdf le début du 2ème paragraphe commence sur la 2ème page. Y a-t-il un moyen de commencer à la 1ère page après le 1er paragraphe?itext conserve les paragraphes

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; 

Répondre

3

J'ai utilisé PdfPTable.SplitLate = false

1

Le problème n'est pas avec vos paragraphes mais avec votre table. iTextSharp essaie de ne pas casser le contenu entre les cellules de la table et votre mise en page actuelle semble le faire. Avez-vous besoin d'une table? Les paragraphes réguliers se cassent juste quand une ligne disparaît de la zone visible. Si vous avez besoin de tables, vous devrez ajuster la largeur de la table si vous le pouvez (rs1.WidthPercentage = 100;) et éventuellement tout padding que vous avez configuré.