/// <summary>
        /// Return a TableCellOptions with parameters to set specific properties
        /// </summary>
        /// <param name="FontFamily"></param>
        /// <param name="FontStyle"></param>
        /// <param name="FontWeight"></param>
        /// <param name="FontSize"></param>
        /// <param name="FontColor"></param>
        /// <param name="TextAlignment"></param>
        /// <param name="BackgroundColor"></param>
        /// <param name="CellPadding"></param>
        /// <returns></returns>
        public static TableCellOptions Set(
            TextFontFamily FontFamily   = null,
            TextFontStyle?FontStyle     = null,
            TextFontWeight?FontWeight   = null,
            double?FontSize             = null,
            Color?FontColor             = null,
            TextAlignment?TextAlignment = null,
            Color?BackgroundColor       = null,
            double?CellPadding          = null
            )
        {
            var value = new TableCellOptions();

            if (FontFamily != null)
            {
                value.FontOptions.FontFamily = FontFamily;
            }

            if (FontStyle.HasValue)
            {
                value.FontOptions.FontStyle = FontStyle.Value;
            }

            if (FontWeight.HasValue)
            {
                value.FontOptions.FontWeight = FontWeight.Value;
            }

            if (FontSize.HasValue)
            {
                value.FontOptions.FontSize = FontSize.Value;
            }

            if (FontColor.HasValue)
            {
                value.FontOptions.FontColor = FontColor.Value;
            }

            if (TextAlignment.HasValue)
            {
                value.TextAlignment = TextAlignment.Value;
            }

            if (BackgroundColor.HasValue)
            {
                value.BackgroundColor = BackgroundColor.Value;
            }

            if (CellPadding.HasValue)
            {
                value.CellPadding = CellPadding.Value;
            }

            return(value);
        }
        /// <summary>
        /// Return a ParagraphOptions with parameters to set specific properties
        /// </summary>
        /// <param name="FontFamily"></param>
        /// <param name="FontStyle"></param>
        /// <param name="FontWeight"></param>
        /// <param name="FontSize"></param>
        /// <param name="FontColor"></param>
        /// <param name="TextAlignment"></param>
        /// <returns></returns>
        public static ParagraphOptions Set(
            TextFontFamily FontFamily   = null,
            TextFontStyle?FontStyle     = null,
            TextFontWeight?FontWeight   = null,
            double?FontSize             = null,
            Color?FontColor             = null,
            TextAlignment?TextAlignment = null
            )
        {
            var value = new ParagraphOptions();

            if (FontFamily != null)
            {
                value.FontOptions.FontFamily = FontFamily;
            }

            if (FontStyle.HasValue)
            {
                value.FontOptions.FontStyle = FontStyle.Value;
            }

            if (FontWeight.HasValue)
            {
                value.FontOptions.FontWeight = FontWeight.Value;
            }

            if (FontSize.HasValue)
            {
                value.FontOptions.FontSize = FontSize.Value;
            }

            if (FontColor.HasValue)
            {
                value.FontOptions.FontColor = FontColor.Value;
            }

            if (TextAlignment.HasValue)
            {
                value.TextAlignment = TextAlignment.Value;
            }

            return(value);
        }
        /// <summary>
        /// Return a TableOptions with parameters to set specific properties
        /// </summary>
        /// <param name="DefaultFontFamily"></param>
        /// <param name="BorderHeaderWidth"></param>
        /// <param name="BorderHeaderColor"></param>
        /// <param name="BorderTopWidth"></param>
        /// <param name="BorderTopColor"></param>
        /// <param name="BorderBottomWidth"></param>
        /// <param name="BorderBottomColor"></param>
        /// <param name="BorderHorizontalWidth"></param>
        /// <param name="BorderHorizontalColor"></param>
        /// <param name="BorderVerticalWidth"></param>
        /// <param name="BorderVerticalColor"></param>
        /// <param name="ColumnWidths"></param>
        /// <returns></returns>
        public static TableOptions Set(

            TextFontFamily DefaultFontFamily = null,

            double?BorderHeaderWidth = null,
            Color?BorderHeaderColor  = null,

            double?BorderTopWidth = null,
            Color?BorderTopColor  = null,

            double?BorderBottomWidth = null,
            Color?BorderBottomColor  = null,

            double?BorderHorizontalWidth = null,
            Color?BorderHorizontalColor  = null,

            double?BorderVerticalWidth = null,
            Color?BorderVerticalColor  = null,

            List <double> ColumnWidths = null
            )
        {
            var value = new TableOptions();

            if (DefaultFontFamily != null)
            {
                value.DefaultFontFamily = DefaultFontFamily;
            }

            if (BorderHeaderWidth.HasValue)
            {
                value.BorderHeader.BorderWidth = BorderHeaderWidth.Value;
            }

            if (BorderHeaderColor.HasValue)
            {
                value.BorderHeader.BorderColor = BorderHeaderColor.Value;
            }


            if (BorderTopWidth.HasValue)
            {
                value.BorderTop.BorderWidth = BorderTopWidth.Value;
            }

            if (BorderTopColor.HasValue)
            {
                value.BorderTop.BorderColor = BorderTopColor.Value;
            }


            if (BorderBottomWidth.HasValue)
            {
                value.BorderBottom.BorderWidth = BorderBottomWidth.Value;
            }

            if (BorderBottomColor.HasValue)
            {
                value.BorderBottom.BorderColor = BorderBottomColor.Value;
            }


            if (BorderHorizontalWidth.HasValue)
            {
                value.BorderHorizontal.BorderWidth = BorderHorizontalWidth.Value;
            }

            if (BorderHorizontalColor.HasValue)
            {
                value.BorderHorizontal.BorderColor = BorderHorizontalColor.Value;
            }


            if (BorderVerticalWidth.HasValue)
            {
                value.BorderVertical.BorderWidth = BorderVerticalWidth.Value;
            }

            if (BorderVerticalColor.HasValue)
            {
                value.BorderVertical.BorderColor = BorderVerticalColor.Value;
            }


            if (ColumnWidths != null)
            {
                value.ColumnWidths = ColumnWidths;
            }

            return(value);
        }