private Alignment ExcelAlignmentFromRdlAlignment(Rdl.Engine.Style.TextAlignEnum align) { switch (align) { case Engine.Style.TextAlignEnum.Center: return(Alignment.CENTRE); case Engine.Style.TextAlignEnum.General: return(Alignment.GENERAL); case Engine.Style.TextAlignEnum.Left: return(Alignment.LEFT); case Engine.Style.TextAlignEnum.Right: return(Alignment.RIGHT); } return(Alignment.GENERAL); }
public TextStyle(Rdl.Engine.Style style, Rdl.Runtime.Context context) : base(style, context) { if (style == null) { style = Rdl.Engine.Style.DefaultStyle; } FontStyle = style.FontStyle(context); FontFamily = style.FontFamily(context); FontSize = style.FontSize(context); FontWeight = style.FontWeight(context); Format = style.Format(context); TextDecoration = style.TextDecoration(context); TextAlign = style.TextAlign(context); VerticalAlign = style.VerticalAlign(context); LineHeight = style.LineHeight(context); Direction = style.Direction(context); WritingMode = style.WritingMode(context); Language = style.Language(context); UnicodeBiDi = style.UnicodeBiDi(context); Calendar = style.Calendar(context); NumeralLanguage = style.NumeralLanguage(context); NumeralVariant = style.NumeralVariant(context); }
private void RecursePaintPanel(Graphics g, decimal xMult, decimal yMult, bool print, Rdl.Render.Element elmt, Point destOffset, decimal top, decimal left) { decimal mult = 1; int t = (int)((top + elmt.Top) * yMult) + destOffset.Y; int l = (int)((left + elmt.Left) * xMult) + destOffset.X; int w = (int)(elmt.Width * xMult); int h = (int)(elmt.Height * yMult); Rectangle clipRect = new Rectangle(l, t, w, h); if (elmt is Rdl.Render.TextElement || elmt is Rdl.Render.ImageElement || elmt is Rdl.Render.Container || elmt is Rdl.Render.ChartElement) { if (elmt.Style != null && elmt.Style.BackgroundColor != null) { g.FillRectangle(new SolidBrush(Rdl.Engine.Style.W32Color(elmt.Style.BackgroundColor)), clipRect); } if (elmt.Style != null && elmt.Style.BorderWidth != null) { Rdl.Render.Drawing.DrawBorder(g, new System.Drawing.Rectangle(l, t, w, h), elmt.Style.BorderWidth, elmt.Style.BorderStyle, elmt.Style.BorderColor, xMult, yMult); } } if (elmt.Style != null) { l += (int)(elmt.Style.PaddingLeft.points * xMult); t += (int)(elmt.Style.PaddingTop.points * yMult); w -= (int)((elmt.Style.PaddingLeft.points + elmt.Style.PaddingRight.points) * xMult); h -= (int)((elmt.Style.PaddingTop.points + elmt.Style.PaddingBottom.points) * yMult); } if (elmt is TextElement) { TextElement te = elmt as TextElement; TextStyle ts = te.Style as TextStyle; int width = (int)(elmt.Width * mult); if (te.IsToggle && !print) { if (te.ToggleState == TextElement.ToggleStateEnum.open) { g.DrawImage(Properties.Resources.minus, new Point(l, t)); } else { g.DrawImage(Properties.Resources.plus, new Point(l, t)); } l += Properties.Resources.minus.Width; width -= Properties.Resources.minus.Width; } StringFormat sf = new StringFormat(); Rdl.Engine.Style.TextAlignEnum align = ts.TextAlign; if (align == Rdl.Engine.Style.TextAlignEnum.General) { decimal d; if (decimal.TryParse(te.Text, out d)) { align = Rdl.Engine.Style.TextAlignEnum.Right; } else { align = Rdl.Engine.Style.TextAlignEnum.Left; } } switch (align) { case Rdl.Engine.Style.TextAlignEnum.General: case Rdl.Engine.Style.TextAlignEnum.Left: sf.Alignment = StringAlignment.Near; break; case Rdl.Engine.Style.TextAlignEnum.Center: sf.Alignment = StringAlignment.Center; break; case Rdl.Engine.Style.TextAlignEnum.Right: sf.Alignment = StringAlignment.Far; break; } g.DrawString(te.Text, _fonts[te.StyleIndex], new SolidBrush(Rdl.Engine.Style.W32Color(te.Style.Color)), new Rectangle(l, t, w, h), sf ); } if (elmt._imageIndex >= 0) { g.DrawImage(_report.ImageList[elmt._imageIndex].GetSizedImage(w, h), new Rectangle(l, t, w, h)); } if (elmt is ChartElement) { ChartElement cc = elmt as ChartElement; g.DrawImage(cc.RenderChart(w, h, xMult, yMult), new Rectangle(l, t, w, h)); } if (elmt is Rdl.Render.Container) { foreach (Element child in ((Rdl.Render.Container)elmt).Children) { RecursePaintPanel(g, xMult, yMult, print, child, destOffset, top + elmt.Top, left + elmt.Left); } } }