public void FillTable(object _ds)
        {
            if (_ds != null)
            {

                IPdfTableRow _pe = _ds as IPdfTableRow;
                ICollection _icol = _ds as ICollection;

                if (_icol == null || _icol.Count == 0) return;
                if (_pe != null)
                {
                    _pe.Font = font;
                    Rows.Add(_pe.Row);
                }
                foreach (object _o in _icol)
                {
                    IPdfTableRow _ipe = _o as IPdfTableRow;
                    if (_ipe == null) return;
                    _ipe.Font = font;
                    Rows.Add(_ipe.Row);
                    foreach (object _oo in MSCOPdfDecorator.GetChildObjectToFill(_o))
                    {
                        FillTable(_oo);
                    }
                }
            }
        }

Add a code snippet to your website: www.paste.org