public static List <iText.Layout.Element.IElement> ToIText(this CanvasControl control)
        {
            List <iText.Layout.Element.IElement> list = new List <iText.Layout.Element.IElement>();

            if (control is CanvasRichTextBox rtb)
            {
                list.Add(rtb.ToIText());
            }
            else if (control is CanvasImage image)
            {
                list.Add(image.ToIText());
            }
            else if (control.GetType().IsSubclassOf(typeof(CanvasVariable)))
            {
                CanvasVariable cv = control as CanvasVariable;
                list.Add(cv.ToIText());
            }
            else
            {
                Logger.Log(Severity.ERROR, LogCategory.CONTROL,
                           "Conversion from " + control.GetType().ToString() +
                           " to iText element array not implemented.");
            }

            return(list);
        }
        public static iText.Layout.Element.Paragraph ToIText(this CanvasVariable csd)
        {
            var info    = new UIElementInfo(csd.Label, csd.Canvas);
            var textBox = new iText.Layout.Element.Text(csd.Label.Content as string);

            textBox.SetFontSize((float)(csd.Label.FontSize.ToITextPoint()));
            textBox.SetFont(GetFont(csd.Label.FontFamily.Source));
            var paragraph = new iText.Layout.Element.Paragraph(textBox);

            paragraph.SetFixedPosition(info.Left, info.Bottom, iText.Layout.Properties.UnitValue.CreatePercentValue(100));
            return(paragraph);
        }