When is the content flushed to a PDF File by iTextSharp?
Posted on StackOverflow on Feb 18, 2014 by sameer
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.
Not sooner!
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 immediateFlush
parameter: 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 immediateFlush
to 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.