コード例 #1
0
 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());
     }
 }
コード例 #2
0
ファイル: PdfRectangle.cs プロジェクト: sbc77/templator
        protected override void OnRender(PrintableElement element, PdfPage page)
        {
            using (var gfx = XGraphics.FromPdfPage(page))
            {
                var rect = element.AsXRect();

                gfx.DrawRectangle(null, XBrushes.Black, rect);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
        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());
            }
        }
コード例 #5
0
ファイル: PdfText.cs プロジェクト: sbc77/templator
        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);
                }
            }
        }