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); }
/* 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; } }
/// <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)); } }
//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); }
/// <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); }
/// <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); }
/// <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}; }
public Label(XParagraphAlignment alignment, string content) : this(new XRect(0, 0, DefaultValues.Label.DefaultWidth, DefaultValues.Label.DefaultHeight), content) { Alignment = alignment; }