private static XTextFormatter CreateTextFormatter(XGraphics gfx, XParagraphAlignment alignment = XParagraphAlignment.Left)
 {
     return(new XTextFormatter(gfx)
     {
         Alignment = alignment
     });
 }
        public static void DrawParagraphLine(PagingSetup pagingSetup, PdfDocument document,
                                             XFont font, XParagraphAlignment paragraphAlignment,
                                             double lineHeight, string textDisplay)
        {
            PdfPage page = document.Pages[document.Pages.Count - 1];

            DrawParagraphOffset(pagingSetup, page, font, paragraphAlignment, pagingSetup.CurrentOffset, lineHeight,
                                textDisplay);
            IncreaseLineHeight(pagingSetup, document, lineHeight);
        }
        public void DrawTest()
        {
            var rect = new XRect(0, 0, 10, 40);
            var alignment = new XParagraphAlignment(); 
            string content = "foo"; 
            var target = new Label(alignment, content){Rect = rect};
            PdfDocument pdf = new PdfDocument();
            var page = pdf.AddPage();
            XGraphics gfx = XGraphics.FromPdfPage(page);

            target.Draw(gfx);
            Assert.AreEqual(target.Rect, rect);
        }
Exemple #4
0
        /* END OF OVERLOADS */

        //real konstruktor
        private void ParagraphConstructor(string text, bool IsFixed = false, double x = 0, double y = 0, double height = 0, double width = 0, string font = null, double size = 12, XFontStyle style = XFontStyle.Regular, XParagraphAlignment align = XParagraphAlignment.Left, XStringFormat format = null)
        {
            _text = text;

            if (height > 0)
            {
                this.height = height;
            }
            if (width > 0)
            {
                this.width = width;
            }

            if (IsFixed == true)
            {
                this.IsFixed = true;
            }
            _coords = new XPoint(x, y);

            /*if (font == null || size == 0)
             * {
             *
             *  XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);
             *  if (font == null) { _font = new XFont("Calibri", size, style, options); }
             *  else if (size == 0) { _font = new XFont(font, 12, style, options); }
             *  else { _font = new XFont("Calibri", 12, style, options); }
             *
             * }
             * else
             * {*/

            XPdfFontOptions options = new XPdfFontOptions(PdfFontEncoding.Unicode, PdfFontEmbedding.Always);

            _font = new XFont(font, size, style, options);

            //}

            _align = align;

            if (format == null)
            {
                _format = new XStringFormat
                {
                    Alignment = XStringAlignment.Near
                };
            }
            else
            {
                _format = format;
            }
        }
Exemple #5
0
        /// <summary>
        /// Align center, right, or justify.
        /// </summary>
        void AlignLine(int firstIndex, int lastIndex, double layoutWidth)
        {
            XParagraphAlignment blockAlignment = _blocks[firstIndex].Alignment;

            if (_alignment == XParagraphAlignment.Left || blockAlignment == XParagraphAlignment.Left)
            {
                return;
            }

            int count = lastIndex - firstIndex + 1;

            if (count == 0)
            {
                return;
            }

            double totalWidth = -_spaceWidth;

            for (int idx = firstIndex; idx <= lastIndex; idx++)
            {
                totalWidth += _blocks[idx].Width + _spaceWidth;
            }

            double dx = Math.Max(layoutWidth - totalWidth, 0);

            //Debug.Assert(dx >= 0);
            if (_alignment != XParagraphAlignment.Justify)
            {
                if (_alignment == XParagraphAlignment.Center)
                {
                    dx /= 2;
                }
                for (int idx = firstIndex; idx <= lastIndex; idx++)
                {
                    Block block = _blocks[idx];
                    block.Location += new XSize(dx, 0);
                }
            }
            else if (count > 1) // case: justify
            {
                dx /= count - 1;
                for (int idx = firstIndex + 1, i = 1; idx <= lastIndex; idx++, i++)
                {
                    Block block = _blocks[idx];
                    block.Location += new XSize(dx * i, 0);
                }
            }
        }
        public static void DrawParagraphOffset(PagingSetup pagingSetup, PdfPage page,
                                               XFont font, XParagraphAlignment paragraphAlignment, double offsetTop,
                                               double lineHeight, string textDisplay)
        {
            using (XGraphics gfx = XGraphics.FromPdfPage(page))
            {
                double lineWidth = page.Width - pagingSetup.MarginLeft - pagingSetup.MarginRight;

                var tf = new XTextFormatter(gfx)
                {
                    Alignment = paragraphAlignment
                };
                tf.DrawString(textDisplay, font, XBrushes.Black,
                              new XRect(pagingSetup.MarginLeft, offsetTop, lineWidth, pagingSetup.RegularLineHeight));
            }
        }
Exemple #7
0
        //overloady konstruktora

        /// <summary>
        /// Standardowy konstruktor, zawiera wszystkie parametry które można przekazać
        /// </summary>
        /// <param name="text">Tekst</param>
        /// <param name="IsFixed">Czy element ma być absolutnie ustawiony?</param>
        /// <param name="x">Absolutny X</param>
        /// <param name="y">Absolutny Y</param>
        /// <param name="height">Opcjonalna wysokość absolutna</param>
        /// <param name="width">Opcjonalna szerokość absolutna</param>
        /// <param name="font">Obiekt Font dla elementu, domyślnie: Calibri</param>
        /// <param name="size">Wielkość czcionki, domyślnie: 12</param>
        /// <param name="style">Obiekt XFontStyle stylu czcionki</param>
        /// <param name="align">Obiekt XParagraphAlignment dopasowania tekstu do ściany kontenera</param>
        /// <param name="format">Obiekt XStringFormat dopasowania tekstu do ściany dokumentu</param>
        public Paragraph(string text, bool IsFixed = false, double x = 0, double y = 0, double height = 0, double width = 0, string font = null, double size = 12, XFontStyle style = XFontStyle.Regular, XParagraphAlignment align = XParagraphAlignment.Left, XStringFormat format = null)
        {
            ParagraphConstructor(text, IsFixed, x, y, height, width, font, size, style, align, format);
        }
Exemple #8
0
 /// <summary>
 /// Konstruktor z obsługą czcionki i formatowania
 /// </summary>
 /// <param name="text">Tekst</param>
 /// <param name="font">Nazwa czcionki</param>
 /// <param name="fontSize">wielkość czcionki w pointach</param>
 /// <param name="style">Obiekt XFontStyle stylu czcionki</param>
 /// <param name="align">Obiekt XParagraphAlignment dopasowania tekstu do ściany kontenera</param>
 /// <param name="format">Obiekt XStringFormat dopasowania tekstu do ściany dokumentu</param>
 public Paragraph(string text, string font, double fontSize, XFontStyle style, XParagraphAlignment align, XStringFormat format)
 {
     ParagraphConstructor(text, false, 0, 0, 0, 0, font, fontSize, style, align, format);
 }
Exemple #9
0
 /// <summary>
 /// Konstruktor z obsługą wielkości paragrafu w linii oraz czcionki i alignmentu
 /// </summary>
 /// <param name="text"></param>
 /// <param name="width"></param>
 /// <param name="font"></param>
 /// <param name="fontSize"></param>
 /// <param name="style"></param>
 /// <param name="align"></param>
 public Paragraph(string text, double width, string font, double fontSize, XFontStyle style, XParagraphAlignment align)
 {
     ParagraphConstructor(text, false, 0, 0, 0, width, font, fontSize, style, align, null);
 }
Exemple #10
0
 /// <summary>
 /// Konstruktor z obsługą formatowania
 /// </summary>
 /// <param name="text">Tekst</param>
 /// <param name="align">alignment tekstu względem kontenera</param>
 public Paragraph(string text, XParagraphAlignment align)
 {
     ParagraphConstructor(text, false, 0, 0, 0, 0, null, 12, XFontStyle.Regular, align, null);
 }
 private static XTextFormatter CreateTextFormatter(XGraphics gfx, XParagraphAlignment alignment = XParagraphAlignment.Left)
 {
     return new XTextFormatter(gfx) {Alignment = alignment};
 }
Exemple #12
0
 public Label(XParagraphAlignment alignment, string content)
     : this(new XRect(0, 0, DefaultValues.Label.DefaultWidth, DefaultValues.Label.DefaultHeight), content)
 {
     Alignment = alignment;
 }