Je ne pouvais pas NextColumn()
travailler wih un objet MultiColumnText
et je ne pouvais pas trouver des échantillons (.NET) qui le font. Un MultiColumnText
permet de créer des colonnes dans un document relativement facilement, mais en échange, vous perdez beaucoup de contrôle sur la mise en page. Vous pouvez utiliser l'objet ColumnText
qui vous donne beaucoup de contrôle sur la disposition des colonnes mais nécessite plus de code.
Voici un exemple simple mais complète de ce que vous essayez de faire en utilisant ColumnText
:
private void TestColumnText() {
using (FileStream fs = new FileStream("ColumnTest.pdf", FileMode.Create)) {
Document doc = new Document();
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
PdfContentByte cb = writer.DirectContent;
ColumnText ct = new ColumnText(cb);
float columnWidth = 200f;
float[] left1 = { doc.Left + 90f, doc.Top - 80f, doc.Left + 90f, doc.Top - 170f, doc.Left, doc.Top - 170f, doc.Left, doc.Bottom };
float[] right1 = { doc.Left + columnWidth, doc.Top - 80f, doc.Left + columnWidth, doc.Bottom };
float[] left2 = { doc.Right - columnWidth, doc.Top - 80f, doc.Right - columnWidth, doc.Bottom };
float[] right2 = { doc.Right, doc.Top - 80f, doc.Right, doc.Bottom };
// Add content for left column.
ct.SetColumns(left1, right1);
ct.AddText(new Paragraph("Para 1"));
ct.Go();
// Add content for right column.
ct.SetColumns(left2, right2);
ct.AddText(new Paragraph("Para 2"));
ct.Go();
doc.Close();
}
}
Attention: Comme je l'ai mentionné, ceci est un exemple simple et servira même pas comme départ point pour vous dans ce que vous essayez de faire. Les échantillons sur les sites ci-dessous (en particulier le premier) vous aidera à:
http://www.mikesdotnetting.com/Article/89/iTextSharp-Page-Layout-with-Columns http://www.devshed.com/c/a/Java/Adding-Columns-With-iTextSharp