private void Render(IVisio.Page page, BL.BoxLayout layout)
        {
            layout.PerformLayout();
            var doc = page.Document;
            var fonts = doc.Fonts;
            var default_font = fonts[this.Font];
            int default_font_id = default_font.ID;
            // Perform Rendering
            var domshapescol = new VA.DOM.ShapeList();
            foreach (var n in layout.Nodes)
            {
                if (n.Data != null)
                {
                    var r = n.Rectangle;
                    var n_data = (RenderItem) n.Data;
                    var s = domshapescol.DrawRectangle(r);

                    // Set Text
                    if (n_data.ShapeText != null)
                    {
                        s.Text = new VA.Text.Markup.TextElement(this.ToUpper ? n_data.ShapeText.ToUpper() : n_data.ShapeText);
                    }

                    // Set Cells
                    if (n_data.Cells != null)
                    {
                        s.Cells = n_data.Cells;
                    }

                    // draw Underline
                    if (n_data.Underline)
                    {
                        var u = domshapescol.DrawLine(r.LowerLeft, r.LowerRight);
                    }

                    n_data.Cells.CharFont = default_font_id;
                }
            }
            domshapescol.Render(page);
        }