public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string)) { BarcodeBase code = value as BarcodeBase; if (code == null) { return(""); } return(code.Name); } return(base.ConvertTo(context, culture, value, destinationType)); }
public System.IO.Stream GetBarcode(RequestSettings settings) { BarcodeBase b = GetBarcode(settings.BarcodeFormat); if (!b.IsValidData(settings.Data)) { throw new ArgumentException("The data is not valid for the requested barcode"); } BarcodeSettings bs = b.DefaultSettings.Copy(); bs.Size = settings.Size; bs.Scale = settings.Scale; bs.LeftMargin = settings.LeftMargin; bs.TopMargin = settings.TopMargin; bs.RightMargin = settings.RightMargin; bs.BottomMargin = settings.BottomMargin; System.Drawing.Bitmap result = b.Generate(settings.Data, bs); System.IO.MemoryStream resultstrm = new System.IO.MemoryStream(); result.Save(resultstrm, settings.Format); return(resultstrm); }
///<summary> /// Render the control on a canvas ///</summary> /// <param name="canvas">Canvas formular</param> /// <param name="formular">Formular</param> /// <param name="command">Command instance</param> /// <param name="relative">Relative position</param> /// <param name="dpi">DPI</param> public override void Render(Canvas canvas, EPLFormular formular, EPLCommand command, Tuple <double, double> relative, int dpiX, int dpiY) { EPL.BarcodeCommand cmd = (EPL.BarcodeCommand)command; BarcodeBase barcode = null; switch (cmd.P4) { case "3": barcode = new RadBarcode39(); break; case "1A": barcode = new RadBarcode128A(); break; case "B": barcode = new RadBarcode128B(); break; case "C": barcode = new RadBarcode128C(); break; case "E80": case "E82": case "E85": barcode = new RadBarcodeEAN8(); break; case "E30": case "E32": case "E35": barcode = new RadBarcodeEAN8(); break; case "UA0": barcode = new RadBarcodeUPCA(); break; case "UE0": barcode = new RadBarcodeUPCA(); break; case "1": default: barcode = new RadBarcode128(); break; } if (barcode != null) { barcode.ToolTip = cmd.CommandName; string displayText = cmd.Data ?? "--null--"; barcode.FontFamily = new FontFamily("Consolas"); if (displayText.StartsWith("\"")) { displayText = displayText.Remove(0, 1); } if (displayText.EndsWith("\"")) { displayText = displayText.Remove(displayText.Length - 1, 1); } barcode.Text = displayText; // Set coordinates int _x = 0; int _y = 0; if (int.TryParse(cmd.P1, out _x) && int.TryParse(cmd.P2, out _y)) { var coord = UnitHelper.DotToPixel(8, _x, _y, dpiX, dpiY); if (relative != null) { Canvas.SetLeft(barcode, coord.Item1 + relative.Item1); Canvas.SetTop(barcode, coord.Item2 + relative.Item2); } else { Canvas.SetLeft(barcode, coord.Item1); Canvas.SetTop(barcode, coord.Item2); } } // Set height, default will be 70 dots double bHeight = 70; double.TryParse(cmd.P7, out bHeight); barcode.Height = UnitHelper.DotToPixel(8, bHeight, dpiY) + 5; switch (cmd.P3) { case "1": barcode.LayoutTransform = new RotateTransform(90); break; case "2": barcode.LayoutTransform = new RotateTransform(180); break; case "3": barcode.LayoutTransform = new RotateTransform(270); break; } //block.FontSize = PointsToPixels(12); barcode.ShowText = true; canvas.Children.Add(barcode); barcode.Background = new SolidColorBrush(Colors.WhiteSmoke); canvas.UpdateLayout(); barcode.UpdateLayout(); int narrowBarWide = 1; if (int.TryParse(cmd.P5, out narrowBarWide)) { barcode.Width = barcode.ActualWidth * narrowBarWide; } // Must be under the width calculation, because otherwise it did not work... if (cmd.P8 != "B") { barcode.ShowText = false; } barcode.ShowChecksum = false; } }
/// <summary> /// WXY扩展-设置二维码对象-指定条码类型 /// </summary> /// <param name="report"></param> /// <param name="key"></param> /// <param name="value"></param> /// <param name="borcodetype"></param> public static BarcodeObject SetBarcodeObject_Text(this Report report, string key, string value, BarcodeBase borcodetype) { BarcodeObject barcode = null; var obj = report.FindObject(key); if (obj != null) { if (obj is BarcodeObject) { barcode = obj as BarcodeObject; barcode.Barcode = borcodetype; barcode.Text = value; } } return(barcode); }