using System; using System.Collections.Generic; using System.Drawing; using FastReport.Utils; namespace FastReport.Barcode { public partial class BarcodeObject { #if DOTNET_4 /// /// /// public override bool IsHaveToConvert(object sender) { if (AsBitmap) return false; if ( (sender is Export.Html.HTMLExport) && ((sender as Export.Html.HTMLExport).EnableVectorObjects && (sender as Export.Html.HTMLExport).Layers) || (sender is Export.Pdf.PDFExport) && !((sender as Export.Pdf.PDFExport).SvgAsPicture) ) return true; return base.IsHaveToConvert(sender); } /// /// /// public override IEnumerable GetConvertedObjects() { SVG.SVGObject svgObject = new SVG.SVGObject(); svgObject.SetReport(Report); svgObject.Assign(this); svgObject.SetParentCore(this.Parent); svgObject.Left = Left; svgObject.Top = Top; svgObject.Padding = Padding; if (svgObject.Width == 0) svgObject.Width = 1; if (svgObject.Height == 0) svgObject.Height = 1; using (XmlDocument document = new XmlDocument()) { using (SvgGraphics g = new SvgGraphics(document)) { bool error = false; string errorText = ""; if (String.IsNullOrEmpty(Text)) { error = true; errorText = NoDataText; } else try { UpdateAutoSize(); } catch (Exception ex) { error = true; errorText = ex.Message; } g.ViewPort = new RectangleF(0, 0, Width, Height); if (!error) barcode.DrawBarcode(g, new RectangleF(0, 0, Width, Height)); else { g.DrawString(errorText, DrawUtils.DefaultReportFont, Brushes.Red, new RectangleF(0, 0, Width, Height)); } } svgObject.SetSVGByContent(document.ToString()); } // Fill for HTML & Pdf if (this.Fill != null && !this.Fill.IsTransparent) { TextObject fill = new TextObject(); fill.Fill = this.Fill.Clone(); fill.Left = this.Left; fill.Top = this.Top; fill.Width = this.Width; fill.Height = this.Height; fill.Parent = this.Parent; //fill.Font = null; yield return fill; } yield return svgObject; } #endif } }