} // DoVisitText

        protected override void DoVisitImage(IRtfVisualImage visualImage)
        {
            if (!EnterVisual(visualImage))
            {
                return;
            }

            switch (visualImage.Alignment)
            {
            case RtfTextAlignment.Left:
                //Writer.AddStyleAttribute( HtmlTextWriterStyle.TextAlign, "left" );
                break;

            case RtfTextAlignment.Center:
                Writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
                break;

            case RtfTextAlignment.Right:
                Writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "right");
                break;

            case RtfTextAlignment.Justify:
                Writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "justify");
                break;
            }

            BeginParagraph();

            var imageIndex = DocumentImages.Count + 1;
            var fileName   = Settings.GetImageUrl(imageIndex, visualImage.Format);
            var width      = Settings.ImageAdapter.CalcImageWidth(visualImage.Format, visualImage.Width,
                                                                  visualImage.DesiredWidth, visualImage.ScaleWidthPercent);
            var height = Settings.ImageAdapter.CalcImageHeight(visualImage.Format, visualImage.Height,
                                                               visualImage.DesiredHeight, visualImage.ScaleHeightPercent);

            Writer.AddAttribute(HtmlTextWriterAttribute.Width, width.ToString(CultureInfo.InvariantCulture));
            Writer.AddAttribute(HtmlTextWriterAttribute.Height, height.ToString(CultureInfo.InvariantCulture));
            var htmlFileName = HttpUtility.HtmlEncode(fileName);

            Writer.AddAttribute(HtmlTextWriterAttribute.Src, htmlFileName, false);
            RenderImgTag();
            RenderEndTag();

            DocumentImages.Add(new RtfConvertedImageInfo(
                                   htmlFileName,
                                   Settings.ImageAdapter.TargetFormat,
                                   new Size(width, height)));

            LeaveVisual(visualImage);
        } // DoVisitImage
        } // RtfHtmlConverter

        public string Convert()
        {
            string html;

            DocumentImages.Clear();

            using (var stringWriter = new StringWriter())
            {
                using (Writer = new HtmlTextWriter(stringWriter))
                {
                    RenderDocumentSection();
                    RenderHtmlSection();
                }

                html = stringWriter.ToString();
            }

            if (ElementPath.Count != 0)
            {
                //logger.Error( "unbalanced element structure" );
            }

            return(html);
        } // Convert