Ejemplo n.º 1
0
        /// <summary>
        /// Add paragraph of text at the current page's vertical position
        /// </summary>
        /// <param name="text"></param>
        /// <param name="options"></param>
        public void AddParagraph(string text, ParagraphOptions options = null)
        {
            this.checkBuilderState();

            if (options == null)
            {
                options = new ParagraphOptions()
                {
                    FontOptions = this.documentOptions.ParagraphFontOptions
                };
            }

            // convert TextAlignment to TextBoxJustify
            var texBoxJustify = Helpers.Convert.ToTextBoxJustify(options.TextAlignment);

            this.pagePosition.X = this.documentOptions.MarginLeft;
            double width = this.pageDimensions.Width - (this.documentOptions.MarginLeft + this.documentOptions.MarginRight);

            var     pdfFont = this.getPdfFont(options.FontOptions);
            TextBox textBox = new TextBox(width, 0, 0.5);

            textBox.AddText(pdfFont, options.FontOptions.FontSize, DrawStyle.Normal, options.FontOptions.FontColor, text, (AnnotAction)null);

            // initial Y position
            double positionY = this.pagePosition.Y + (options.FontOptions.FontSize / this.document.ScaleFactor);

            this.contents.DrawText(this.documentOptions.MarginLeft, ref positionY, this.documentOptions.MarginBottom, 0, 0.15, 0, texBoxJustify, textBox);

            this.pagePosition.Y = positionY;
            this.NewLine();
        }
        /// <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);
        }