public override void OnStartPage(PdfWriter writer, Document document)
            {
                PdfContentByte canvas = writer.DirectContentUnder;

                Rectangle   rect     = document.PageSize;
                PdfTemplate template = canvas.CreateTemplate(20, 16);
                Image       total    = null;

                try {
                    total = Image.GetInstance(template);
                } catch (BadElementException e) {
                }
                total.SetAccessibleAttribute(PdfName.ALT, new PdfString("Total"));
                templates.Add(template);

                PdfPTable table = CreateTable(writer.PageNumber, total);

                if (table != null)
                {
                    canvas.OpenMCBlock(headerTable);
                    canvas.OpenMCBlock(headerTable.GetBody());
                    table.WriteSelectedRows(0, -1, document.LeftMargin,
                                            rect.GetTop(marginTop), canvas);
                    canvas.CloseMCBlock(headerTable.GetBody());
                    canvas.CloseMCBlock(headerTable);
                }
            }