Well I tought this was gonna be more difficult, but no. The Silverlight community is great and there are tons of
of code out there.
So I found a great project in codeplex called obviously http://silverlightbarcode.codeplex.com/
And printing barcode with that library is a peace of cake.
Just do something like this:
private void button1_Click(object sender, RoutedEventArgs e) { var p = new PrintDocument(); p.PrintPage += new EventHandler<PrintPageEventArgs>(p_PrintPage); p.Print("NuevoDocument"); } void p_PrintPage(object sender, PrintPageEventArgs e) { Canvas canvasBarCode = new Canvas(); canvasBarCode.Width = 200; canvasBarCode.Height = 200; Me.BarcodeSoftware.Barcode.Barcodes barcode = new Me.BarcodeSoftware.Barcode.Barcodes(); barcode.BarcodeType = Me.BarcodeSoftware.Barcode.Barcodes.BarcodeEnum.Code39; barcode.Data = "123456"; barcode.encode(); string encodedData = barcode.EncodedData; //if you want to put the barcode number // add a label to canvas and set text to barcode.HumanText; int encodedLength = 0; for (int x = 0; x < encodedData.Length; x++) { if (encodedData[x] == 't') encodedLength++; else if (encodedData[x] == 'w') encodedLength = encodedLength + 3; } float barWidth = (float)(canvasBarCode.Width / encodedLength); if (barWidth < 1) barWidth = 1; float thickWidth = barWidth * 3; double incrementWidth = 0; int swing = 0; for (int x = 0; x < encodedData.Length; x++) { Brush brush; if (swing == 0) brush = new SolidColorBrush(Colors.Black); else brush = new SolidColorBrush(Colors.White); if (encodedData[x] == 't') { Rectangle r = new Rectangle(); r.Fill = brush; r.Width = barWidth; r.Height = canvasBarCode.Height; r.SetValue(Canvas.LeftProperty, incrementWidth); r.SetValue(Canvas.TopProperty, 0.0); canvasBarCode.Children.Add(r); incrementWidth = incrementWidth + ((barWidth)); } else if (encodedData[x] == 'w') { Rectangle r = new Rectangle(); r.Fill = brush; r.Width = 3 * barWidth; r.Height = canvasBarCode.Height; r.SetValue(Canvas.LeftProperty, incrementWidth); r.SetValue(Canvas.TopProperty, 0.0); canvasBarCode.Children.Add(r); incrementWidth = incrementWidth + (3 * (barWidth)); } if (swing == 0) swing = 1; else swing = 0; } e.PageVisual = canvasBarCode; e.HasMorePages = false; }
Source: http://blogs.artinsoft.net/Mrojas/archive/2012/01/19/Printing-BarCodes-in-Silverlight.aspx
how to make a forum how to make forums how to make a signature for forums how to make your own forums how to program a forum how to program forum rock band forums are forum how to find email addresses how to email large files
ليست هناك تعليقات:
إرسال تعليق