// ===========================================================================
public virtual void Write(Stream stream)
{
// step 1
using (Document document = new Document())
{
// step 2
PdfWriter writer = PdfWriter.GetInstance(document, stream);
// step 3
document.Open();
// step 4
IEnumerable<Movie> movies = PojoFactory.GetMovies();
ColumnText ct = new ColumnText(writer.DirectContent);
foreach (Movie movie in movies)
{
ct.AddText(CreateMovieInformation(movie));
ct.AddText(Chunk.NEWLINE);
}
ct.Alignment = Element.ALIGN_JUSTIFIED;
ct.ExtraParagraphSpace = 6;
ct.SetLeading(0, 1.2f);
ct.FollowingIndent = 27;
int linesWritten = 0;
int column = 0;
// iText-ONLY, 'Initial value of the status' => 0
// iTextSharp **DOES NOT** include this member variable
// int status = ColumnText.START_COLUMN;
int status = 0;
while (ColumnText.HasMoreText(status))
{
ct.SetSimpleColumn(
COLUMNS[column][0], COLUMNS[column][1],
COLUMNS[column][2], COLUMNS[column][3]
);
ct.YLine = COLUMNS[column][3];
status = ct.Go();
linesWritten += ct.LinesWritten;
column = Math.Abs(column - 1);
if (column == 0) document.NewPage();
}
ct.AddText(new Phrase("Lines written: " + linesWritten));
ct.Go();
}
}