Мне не удалось заставить NextColumn()
работать с объектом MultiColumnText
, и я не смог найти никаких примеров (в .NET), которые бы это делали.
MultiColumnText
делает создание столбцов в документе относительно простым, но взамен вы отказываетесь от большого контроля над макетом. Вы можете использовать объект ColumnText
, который дает вам большой контроль над расположением столбцов, но требует больше кода.
Вот простой, но полный пример того, что вы пытаетесь сделать с помощью 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();
}
}
Предупреждение. Как я уже говорил, это простой пример, который даже не послужит вам отправной точкой в том, что вы пытаетесь сделать. Вам помогут образцы на сайтах ниже (особенно первый):
http://www.mikesdotnetting.com/Article/89/iTextSharp-Page-Layout-with-Columns http://www.devshed.com/c/a/Java/Adding-Columns-With-iTextSharp
person
Jay Riggs
schedule
01.10.2010