protected override void OnRender(PrintableElement element, PdfPage page) { using (var gfx = XGraphics.FromPdfPage(page)) { var img = XImage.FromFile(element.Value.ToString()); gfx.DrawImage(img, element.AsXRect()); } }
protected override void OnRender(PrintableElement element, PdfPage page) { using (var gfx = XGraphics.FromPdfPage(page)) { var rect = element.AsXRect(); gfx.DrawRectangle(null, XBrushes.Black, rect); } }
protected override void OnRender(PrintableElement element, PdfPage page) { using (var gfx = XGraphics.FromPdfPage(page)) { var rect = element.AsXRect(); gfx.DrawLine(XPens.Black, rect.Left, rect.Center.Y, rect.Right, rect.Center.Y); } }
private void RenderDebug(PrintableElement element, PdfPage page) { using (var gfx = XGraphics.FromPdfPage(page)) { var rect = element.AsXRect(); gfx.DrawRectangle(XPens.Silver, rect); var font = new XFont("Arial Narrow", 4, XFontStyle.Regular); var tf = new XTextFormatter(gfx) { Alignment = XParagraphAlignment.Right }; var width = rect.Width > 18 ? 18: 9; var height = rect.Width > 18 ? 5 : 10; var dbgStr = $"{element.ElementType} ({XUnit.FromPoint(rect.X).Millimeter:F0},{XUnit.FromPoint(rect.Y).Millimeter:F0})"; gfx.DrawRectangle(new XSolidBrush(XColor.FromArgb(128 + 64, 240, 240, 240)), rect.TopRight.X - width, rect.Y, width, height); tf.DrawString(dbgStr, font, XBrushes.Navy, element.AsXRect()); } }
protected override void OnRender(PrintableElement element, PdfPage context) { using (var gfx = XGraphics.FromPdfPage(context)) { var tf = new XTextFormatter(gfx); var value = element.Value.ToString(); XStringFormat format = new XStringFormat(); format.LineAlignment = XLineAlignment.Near; format.Alignment = XStringAlignment.Near; if (element.Value is string || element.Value is DateTime) { tf.Alignment = XParagraphAlignment.Left; } else { if (element.HasProperty(PrintableElementProperty.Precision)) { var prec = element.Properties[PrintableElementProperty.Precision]; value = Convert.ToDecimal(element.Value).ToString("F" + prec); } tf.Alignment = XParagraphAlignment.Right; } var labelFont = this.ApplyStyle(element, tf); var rect = element.AsXRect(); if (element.HasProperty(PrintableElementProperty.Rotate)) { var state = gfx.Save(); var angle = Convert.ToDouble(element.Properties[PrintableElementProperty.Rotate]); gfx.RotateAtTransform(angle, rect.TopLeft); tf.DrawString(value, labelFont, XBrushes.Black, rect, format); gfx.Restore(state); } else { tf.DrawString(value, labelFont, XBrushes.Black, rect, format); } } }