public virtual void CreatePdf(String dest)
        {
            //Initialize PDF document
            PdfDocument pdf       = new PdfDocument(new PdfWriter(dest));
            PdfPage     page      = pdf.AddNewPage();
            PdfCanvas   pdfCanvas = new PdfCanvas(page);
            Rectangle   rectangle = new Rectangle(36, 500, 100, 250);

            pdfCanvas.Rectangle(rectangle);
            pdfCanvas.Stroke();
            iText.Layout.Canvas canvas   = new iText.Layout.Canvas(pdfCanvas, rectangle);
            MyCanvasRenderer    renderer = new MyCanvasRenderer(canvas);

            canvas.SetRenderer(renderer);
            PdfFont   font   = PdfFontFactory.CreateFont(StandardFonts.TIMES_ROMAN);
            PdfFont   bold   = PdfFontFactory.CreateFont(StandardFonts.TIMES_BOLD);
            Text      title  = new Text("The Strange Case of Dr. Jekyll and Mr. Hyde").SetFont(bold);
            Text      author = new Text("Robert Louis Stevenson").SetFont(font);
            Paragraph p      = new Paragraph().Add(title).Add(" by ").Add(author);

            while (!renderer.IsFull())
            {
                canvas.Add(p);
            }
            //Close document
            pdf.Close();
        }
            public virtual void HandleEvent(Event @event)
            {
                PdfDocumentEvent docEvent  = (PdfDocumentEvent)@event;
                PdfDocument      pdf       = docEvent.GetDocument();
                PdfPage          page      = docEvent.GetPage();
                Rectangle        pageSize  = page.GetPageSize();
                PdfCanvas        pdfCanvas = new PdfCanvas(page.NewContentStreamBefore(), page.GetResources(), pdf);

                pdfCanvas.SaveState().SetExtGState(this.gState);
                iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, page.GetPageSize());
                canvas.Add(this.img.ScaleAbsolute(pageSize.GetWidth(), pageSize.GetHeight()));
                pdfCanvas.RestoreState();
                pdfCanvas.Release();
            }
        private static void SingleLimitedCanvasSizeCase(Document document, Paragraph paraOnCanvas, String description
                                                        , float canvasHeight, int pageNum)
        {
            PdfDocument pdfDocument = document.GetPdfDocument();

            document.Add(new Paragraph(description).SetBorder(new SolidBorder(ColorConstants.RED, 1)));
            PdfCanvas pdfCanvas     = new PdfCanvas(pdfDocument.GetPage(pageNum));
            Rectangle effectiveArea = document.GetPageEffectiveArea(pdfDocument.GetDefaultPageSize());
            Rectangle rectangle     = new Rectangle(36, 550, effectiveArea.GetWidth(), canvasHeight + LINES_SPACE_EPS);

            pdfCanvas.SaveState().SetFillColor(ColorConstants.MAGENTA).Rectangle(rectangle).Fill().RestoreState();
            iText.Layout.Canvas canvas = new iText.Layout.Canvas(pdfCanvas, pdfDocument, rectangle);
            canvas.Add(paraOnCanvas);
            canvas.Close();
        }