我有一个方法可以将XtraReport作为参数。它应该在报告获得的所有页面上打印信息区。我怎样才能实现这一目标?它必须打印在DetailBand上,LabelText才能得到Angle,所以我不能使用PageInfo Control。
实际上问题是:如何在XtraReport对象的所有ReportPages上打印XRLabel。 我试过这个但没有成功:
XRLabel druckinfo = new XRLabel();
druckinfo.Angle = 90F;
druckinfo.Padding = new PaddingInfo(2, 2, 0, 0, 96F);
druckinfo.SizeF = new SizeF(29.16666F, 500F);
druckinfo.Font = new Font(StyleVerwaltung.Instance.Schriftart,
StyleVerwaltung.Instance.SchriftgroesseDruckInfo);
druckinfo.Text = text;
druckinfo.LocationF = new PointF(0F, 500F);
foreach (Band band in _Report.Bands)
{
if (band is DetailBand)
{
band.Controls.Add(druckinfo);
}
}
答案 0 :(得分:1)
DevExpress支持向我展示了解决问题的方法:
Image img = new Bitmap(300, 300);
Graphics g = Graphics.FromImage(img);
Font schriftart = new Font(StyleVerwaltung.Instance.Schriftart,
StyleVerwaltung.Instance.SchriftgroesseDruckInfo);
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
_Report.Watermark.ImageAlign = ContentAlignment.BottomLeft;
_Report.Watermark.ImageViewMode = ImageViewMode.Clip;
g.SmoothingMode = SmoothingMode.AntiAlias;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.TranslateTransform(0, g.VisibleClipBounds.Size.Height);
g.RotateTransform(270f);
g.DrawString(text, schriftart, Brushes.Black,
new Rectangle(0, 0, (int)g.VisibleClipBounds.Size.Width,
(int)g.VisibleClipBounds.Height),
format);
g.ResetTransform();
g.Flush();
_Report.Watermark.Image = img;
_Report.Watermark.ShowBehind = true;
它使用水印来完成此任务。它只是在你不在其他环境中使用Watermark时才有效,但是为了我的目标,它可以按预期工作。