PDF is a Page Description Language. Every page is an autonomous set of objects. The content is stored in one or more streams. There is no such thing as a paragraph or a table etc in a PDF. It's just a sequence of lines, shapes and glyphs drawn on a page.
When you add content to a document using the
Add() method, this content is converted into PDF syntax that is appended to the content stream of a page. As soon as the page is full, this content stream and the corresponding page dictionary are written to the output stream and flushed.
Several objects, such as fonts, the cross-reference table, Form XObjects,... are kept into memory, because they can change during the document creation process.
Take a note, that in iText 7
Document class has a constructor with
Document(PdfDocument pdfDoc, PageSize pageSize, boolean immediateFlush). This parameter is
true by default. If you don’t want to write pages and page-related instructions to the
PdfDocument as soon as possible, set the
false and call
doc.flush() when it is necessary.
Click When is the content flushed to a PDF File by iTextSharp? if you want to see how to answer this question in iText 5.